templates.asymmetric_encryption_scheme

Generic classes used for creating an asymmetric encryption scheme.

Attributes

PK

SK

Classes

PublicKey

Public Key of an AsymmetricEncryptionScheme.

SecretKey

Secret Key of an AsymmetricEncryptionScheme.

AsymmetricEncryptionScheme

Abstract base class for an AsymmetricEncryptionScheme.

Module Contents

class templates.asymmetric_encryption_scheme.PublicKey[source]

Public Key of an AsymmetricEncryptionScheme.

This should be subclassed for every AsymmetricEncryptionScheme.

class templates.asymmetric_encryption_scheme.SecretKey[source]

Secret Key of an AsymmetricEncryptionScheme.

This should be subclassed for every AsymmetricEncryptionScheme.

templates.asymmetric_encryption_scheme.PK[source]
templates.asymmetric_encryption_scheme.SK[source]
class templates.asymmetric_encryption_scheme.AsymmetricEncryptionScheme(public_key: PK, secret_key: SK | None, *_args: Any, **_kwargs: Any)[source]

Abstract base class for an AsymmetricEncryptionScheme.

classmethod from_security_parameter(*args: Any, **kwargs: Any) Self[source]

Generate a new AsymmetricEncryptionScheme from a security parameter. Note that regular arguments will be passed to the generate_key_material method, so all parameter that are required for the constructor should be passed as keyword arguments.

Parameters:
  • *args – Security parameter(s) for key generation.

  • **kwargs – Security parameter(s) and optional extra arguments for the constructor.

Raises:

ValueError – If a keyword argument is not valid for key generation or the constructor.

Returns:

A new EncryptionScheme.

classmethod generate_key_material(*args: Any, **kwargs: Any) tuple[PK, SK][source]
Abstractmethod:

Method to generate key material (PublicKey and SecretKey) for this scheme.

Parameters:
  • *args – Required arguments to generate said key material.

  • **kwargs – Required arguments to generate said key material.

Returns:

Tuple containing first the PublicKey of this scheme and then the SecretKey.

property public_key: PK[source]

PublicKey of this instantiation of the scheme.

Returns:

PublicKey of this instantiation.

property secret_key: SK | None[source]

SecretKey of this instantiation of the scheme.

Returns:

SecretKey of this instantiation, or None when it is unknown.