AES

Interface to AES cipher

pyflocker.ciphers.interfaces.AES.supported_modes(backend: Backends) set[Modes][source]

Lists all modes supported by the cipher. It is limited to backend’s implementation and capability, and hence, varies from backend to backend.

Parameters:

backend – The backend to inspect.

Returns:

Set of Modes supported by the backend.

pyflocker.ciphers.interfaces.AES.new(encrypting: bool, key: bytes, mode: Modes, iv_or_nonce: bytes, *, use_hmac: bool = False, tag_length: int | None = 16, digestmod: None | base.BaseHash = None, file: io.BufferedIOBase | None = None, backend: Backends | None = None) base.BaseAEADCipher | base.BaseNonAEADCipher | base.BaseAEADOneShotCipher | FileCipherWrapper[source]

Instantiate a new AES cipher object.

Parameters:
  • encrypting – True is encryption and False is decryption.

  • key – The key for the cipher.

  • mode – The mode to use for AES cipher. All backends may not support that particular mode.

  • iv_or_nonce – The Initialization Vector or Nonce for the cipher. It must not be repeated with the same key.

Keyword Arguments:
  • use_hmac – Should the cipher use HMAC as authentication or not, if it does not support AEAD. (Default: False)

  • tag_length – Length of HMAC tag. By default, a 16 byte tag is generated. If tag_length is None, a non-truncated tag is generated. Length of non-truncated tag depends on the digest size of the underlying hash algorithm used by HMAC.

  • digestmod – The algorithm to use for HMAC. If None, defaults to sha256. Specifying this value without setting use_hmac to True has no effect.

  • file – The source file to read from. If file is specified and the mode is not an AEAD mode, HMAC is always used.

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

Important

The following arguments are ignored if the mode is an AEAD mode:

  • use_hmac

  • tag_length

  • digestmod

Returns:

AES cipher wrapper from the appropriate backend module.

Raises:

Note

Any other error that is raised is from the backend itself.