SSHCiphers represents all the encryption operations that need to occur to encrypt and authenticate the SSH connection.

Class Variable cipherMap A dictionary mapping SSH encryption names to 3-tuples of (<cryptography.hazmat.primitives.interfaces.CipherAlgorithm>, <block size>, <cryptography.hazmat.primitives.interfaces.Mode>)
Class Variable macMap A dictionary mapping SSH MAC names to hash modules.
Instance Variable outCipType the string type of the outgoing cipher.
Instance Variable inCipType the string type of the incoming cipher.
Instance Variable outMACType the string type of the incoming MAC.
Instance Variable inMACType the string type of the incoming MAC.
Instance Variable encBlockSize the block size of the outgoing cipher.
Instance Variable decBlockSize the block size of the incoming cipher.
Instance Variable verifyDigestSize the size of the incoming MAC.
Instance Variable outMAC a tuple of (<hash module>, <inner key>, <outer key>, <digest size>) representing the outgoing MAC.
Instance Variable inMAc see outMAC, but for the incoming MAC.
Method __init__ Undocumented
Method setKeys Set up the ciphers and hashes using the given keys,
Method encrypt Encrypt some data.
Method decrypt Decrypt some data.
Method makeMAC Create a message authentication code (MAC) for the given packet using the outgoing MAC values.
Method verify Verify an incoming MAC using the incoming MAC values.
Method _getCipher Creates an initialized cipher object.
Method _getMAC Gets a 4-tuple representing the message authentication code. (<hash module>, <inner hash value>, <outer hash value>, <digest size>)
cipherMap =
A dictionary mapping SSH encryption names to 3-tuples of (<cryptography.hazmat.primitives.interfaces.CipherAlgorithm>, <block size>, <cryptography.hazmat.primitives.interfaces.Mode>)
macMap =
A dictionary mapping SSH MAC names to hash modules.
outCipType =
the string type of the outgoing cipher.
inCipType =
the string type of the incoming cipher.
outMACType =
the string type of the incoming MAC.
inMACType =
the string type of the incoming MAC.
encBlockSize =
the block size of the outgoing cipher.
decBlockSize =
the block size of the incoming cipher.
verifyDigestSize =
the size of the incoming MAC.
outMAC =
a tuple of (<hash module>, <inner key>, <outer key>, <digest size>) representing the outgoing MAC.
inMAc =
see outMAC, but for the incoming MAC.
def __init__(self, outCip, inCip, outMac, inMac): (source)
Undocumented
def setKeys(self, outIV, outKey, inIV, inKey, outInteg, inInteg): (source)

Set up the ciphers and hashes using the given keys,

ParametersoutIVthe outgoing initialization vector
outKeythe outgoing encryption key
inIVthe incoming initialization vector
inKeythe incoming encryption key
outIntegthe outgoing integrity key
inIntegthe incoming integrity key.
def _getCipher(self, cip, iv, key): (source)

Creates an initialized cipher object.

Parameterscipthe name of the cipher, maps into cipherMap
ivthe initialzation vector
keythe encryption key
Returnsthe cipher object.
def _getMAC(self, mac, key): (source)

Gets a 4-tuple representing the message authentication code. (<hash module>, <inner hash value>, <outer hash value>, <digest size>)

Parametersmaca key mapping into macMap (type: bytes)
keythe MAC key. (type: bytes)
ReturnsThe MAC components. (type: bytes)
def encrypt(self, blocks): (source)

Encrypt some data.

ParametersblocksThe data to encrypt. (type: bytes)
ReturnsThe encrypted data. (type: bytes)
def decrypt(self, blocks): (source)

Decrypt some data.

ParametersblocksThe data to decrypt. (type: bytes)
ReturnsThe decrypted data. (type: bytes)
def makeMAC(self, seqid, data): (source)

Create a message authentication code (MAC) for the given packet using the outgoing MAC values.

ParametersseqidThe sequence ID of the outgoing packet. (type: int)
dataThe data to create a MAC for. (type: bytes)
ReturnsThe serialized MAC. (type: str)
def verify(self, seqid, data, mac): (source)

Verify an incoming MAC using the incoming MAC values.

ParametersseqidThe sequence ID of the incoming packet. (type: int)
dataThe packet data to verify. (type: bytes)
macThe MAC sent with the packet. (type: bytes)
ReturnsTrue if the MAC is valid. (type: bool)
API Documentation for Twisted, generated by pydoctor at 2017-02-11 20:06:04.