Diffie-Hellman Key Exchange

Interface to DH key exchange

pyflocker.ciphers.interfaces.DH.generate(key_size: int, g: int = 2, *, backend: _Backends = Backends.CRYPTOGRAPHY) base.BaseDHParameters[source]

Generate DHE parameter with prime number’s bit size bits and generator g (default 2). Recommended size of bits > 1024.

Parameters:
  • key_size – The bit length of the prime modulus.

  • g – The value to use as a generator value. Default is 2.

Keyword Arguments:

backend – The backend to use. It must be a value from Backends.

Returns:

A DH key exchange paramenter object.

Return type:

DHParameters

pyflocker.ciphers.interfaces.DH.load_from_parameters(p: int, g: int = 2, q: int | None = None, *, backend: _Backends = Backends.CRYPTOGRAPHY) base.BaseDHParameters[source]

Create a DH Parameter object from the given parameters.

Parameters:
  • p – The prime modulus p.

  • g – The generator.

  • qp subgroup order value.

Keyword Arguments:

backend – The backend to use. It must be a value from Backends.

Returns:

A DH key exchange paramenter object.

pyflocker.ciphers.interfaces.DH.load_parameters(data: bytes, *, backend: _Backends = Backends.CRYPTOGRAPHY) base.BaseDHParameters[source]

Deserialize the DH parameters and load a parameter object.

Parameters:

data – Serialized DH Parameter.

Keyword Arguments:

backend – The backend to use. It must be a value from Backends.

Returns:

A DHE parameter object.

pyflocker.ciphers.interfaces.DH.load_public_key(data: bytes, *, backend: _Backends = Backends.CRYPTOGRAPHY) base.BaseDHPublicKey[source]

Loads the public key and returns a Key interface.

Parameters:

data – The public key (a bytes-like object) to deserialize.

Keyword Arguments:

backend – The backend to use. It must be a value from Backends.

Returns:

An public key object.

pyflocker.ciphers.interfaces.DH.load_private_key(data: bytes, passphrase: bytes | None = None, *, backend: _Backends = Backends.CRYPTOGRAPHY) base.BaseDHPrivateKey[source]

Loads the private key.

Parameters:
  • data – The private key (a bytes-like object) to deserialize.

  • passphrase – The passphrase (in bytes) that was used to encrypt the private key. None if the key was not encrypted.

Keyword Arguments:

backend – The backend to use. It must be a value from Backends.

Returns:

A private key object.