`twisted.conch.ssh._kex`

module documentation`twisted.conch.ssh`

View Source
SSH key exchange handling.

Function | getKex | Get a description of a named key exchange algorithm. |

Function | isEllipticCurve | Returns `True` if `kexAlgorithm` is an elliptic
curve. |

Function | isFixedGroup | Returns `True` if `kexAlgorithm` has a fixed prime
/ generator group. |

Function | getHashProcessor | Get the hash algorithm callable to use in key exchange. |

Function | getDHGeneratorAndPrime | Get the generator and the prime to use in key exchange. |

Function | getSupportedKeyExchanges | Get a list of supported key exchange algorithm names in order of preference. |

Interface | _IKexAlgorithm | An `_IKexAlgorithm`
describes a key exchange algorithm. |

Interface | _IFixedGroupKexAlgorithm | An `_IFixedGroupKexAlgorithm`
describes a key exchange algorithm with a fixed prime / generator
group. |

Interface | _IEllipticCurveExchangeKexAlgorithm | An `_IEllipticCurveExchangeKexAlgorithm`
describes a key exchange algorithm that uses an elliptic curve exchange
between the client and server. |

Interface | _IGroupExchangeKexAlgorithm | An `_IGroupExchangeKexAlgorithm`
describes a key exchange algorithm that uses group exchange between the
client and server. |

Class | _ECDH256 | Elliptic Curve Key Exchange with SHA-256 as HASH. Defined in RFC 5656. |

Class | _ECDH384 | Elliptic Curve Key Exchange with SHA-384 as HASH. Defined in RFC 5656. |

Class | _ECDH512 | Elliptic Curve Key Exchange with SHA-512 as HASH. Defined in RFC 5656. |

Class | _DHGroupExchangeSHA256 | Diffie-Hellman Group and Key Exchange with SHA-256 as HASH. Defined in RFC 4419, 4.2. |

Class | _DHGroupExchangeSHA1 | Diffie-Hellman Group and Key Exchange with SHA-1 as HASH. Defined in RFC 4419, 4.1. |

Class | _DHGroup14SHA1 | Diffie-Hellman key exchange with SHA-1 as HASH and Oakley Group 14 (2048-bit MODP Group). Defined in RFC 4253, 8.2. |

def
getKex(kexAlgorithm):
(source)

Get a description of a named key exchange algorithm.

Parameters | kexAlgorithm | The key exchange algorithm name. (type: `bytes` ) |

Returns | A description of the key exchange algorithm named by
`kexAlgorithm` . (type: `_IKexAlgorithm` ) | |

Raises | ConchError | if the key exchange algorithm is not found. |

def
isEllipticCurve(kexAlgorithm):
(source)

Returns `True`

if `kexAlgorithm`

is an elliptic
curve.

Parameters | kexAlgorithm | The key exchange algorithm name. (type: `str` ) |

Returns | `True` if `kexAlgorithm` is an elliptic curve,
otherwise `False` . (type: `bool` ) |

def
getHashProcessor(kexAlgorithm):
(source)

Get the hash algorithm callable to use in key exchange.

Parameters | kexAlgorithm | The key exchange algorithm name. (type: `bytes` ) |

Returns | A callable hash algorithm constructor (e.g. `hashlib.sha256` ). (type: `callable` ) |