Package Cryptodome :: Package Cipher :: Module _mode_cfb :: Class CfbMode

Class CfbMode

object --+
         |
        CfbMode

Cipher FeedBack (CFB).

This mode is similar to CFB, but it transforms the underlying block cipher into a stream cipher.

Plaintext and ciphertext are processed in segments of s bits. The mode is therefore sometimes labelled s-bit CFB.

An Initialization Vector (IV) is required.

See NIST SP800-38A , Section 6.3.

Instance Methods
 
encrypt(self, plaintext)
Encrypt data with the key and the parameters set at initialization.
 
decrypt(self, ciphertext)
Decrypt data with the key and the parameters set at initialization.

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __init__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Instance Variables
  block_size
The block size of the underlying cipher, in bytes.
  iv
The Initialization Vector originally used to create the object. The value does not change.
  IV
Alias for iv
Properties

Inherited from object: __class__

Method Details

encrypt(self, plaintext)

 

Encrypt data with the key and the parameters set at initialization.

A cipher object is stateful: once you have encrypted a message you cannot encrypt (or decrypt) another message using the same object.

The data to encrypt can be broken up in two or more pieces and encrypt can be called multiple times.

That is, the statement:

>>> c.encrypt(a) + c.encrypt(b)

is equivalent to:

>>> c.encrypt(a+b)

This function does not add any padding to the plaintext.

Parameters:
  • plaintext (byte string) - The piece of data to encrypt. It can be of any length.
Returns:
the encrypted data, as a byte string. It is as long as plaintext.

decrypt(self, ciphertext)

 

Decrypt data with the key and the parameters set at initialization.

A cipher object is stateful: once you have decrypted a message you cannot decrypt (or encrypt) another message with the same object.

The data to decrypt can be broken up in two or more pieces and decrypt can be called multiple times.

That is, the statement:

>>> c.decrypt(a) + c.decrypt(b)

is equivalent to:

>>> c.decrypt(a+b)

This function does not remove any padding from the plaintext.

Parameters:
  • ciphertext (byte string) - The piece of data to decrypt. It can be of any length.
Returns:
the decrypted data (byte string).