# ``twisted`.`conch`.`ssh`.`keys``

module documentation
(source)

Handling of RSA, DSA, ECDSA, and Ed25519 keys.

Class | `BadFingerPrintFormat` | Raises when unsupported fingerprint formats are presented to fingerprint.
Class | `BadKeyError` | Raised when a key isn't what we expected from it.
Class | `EncryptedKeyError` | Raised when an encrypted key is presented to fromString/fromFile without a password.
Class | `FingerprintFormats` | Constants representing the supported formats of key fingerprints.
Class | `Key` | No summary
Class | `PassphraseNormalizationError` | Raised when a passphrase contains Unicode characters that cannot be normalized using the available Unicode character database.
Function | `_getPersistentRSAKey` | This function returns a persistent `Key`.
Function | `_normalizePassphrase` | Normalize a passphrase, which may be Unicode.
Variable | `_curveTable` | Undocumented
Variable | `_secToNist` | Undocumented

def _getPersistentRSAKey(location, keySize=4096): (source)

This function returns a persistent `Key`.

The key is loaded from a PEM file in `location`. If it does not exist, a key with the key size of `keySize` is generated and saved.

Parameters
location:`twisted.python.filepath.FilePath` | Where the key is stored.
keySize:`int` | The size of the key, if it needs to be generated.
Returns
`Key` | A persistent key.

def _normalizePassphrase(passphrase): (source)

Normalize a passphrase, which may be Unicode.

If the passphrase is Unicode, this follows the requirements of NIST 800-63B, section 5.1.1.2 for Unicode characters in memorized secrets: it applies the Normalization Process for Stabilized Strings using NFKC normalization. The passphrase is then encoded using UTF-8.

Parameters
passphrase:`bytes` or `unicode` or `None` | The passphrase to normalize.
Returns
`bytes` or `None` | The normalized passphrase, if any.
Raises
`PassphraseNormalizationError` | if the passphrase is Unicode and cannot be normalized using the available Unicode character database.

_curveTable = (source)

Undocumented

_secToNist: `dict[bytes, bytes]` = (source)

Undocumented