CTR class

Counter (CTR) mode for block ciphers.

The CTR class provides a counter mode of operation for block ciphers, which turns a block cipher into a stream cipher. It uses a counter and an initialization vector (IV) to generate a stream of key material that is XORed with the plaintext to produce the ciphertext. The class supports dynamic block sizes based on the provided block cipher.

Properties:

  • _counter: A byte array used as the counter value.
  • _buffer: A buffer for storing the encrypted block.
  • _bufpos: An internal variable tracking the buffer position.
  • _cipher: The block cipher used for encryption.

Constructor:

  • CTR: Initializes the CTR mode with the given block cipher and IV. It allocates space for the counter and the encrypted block buffer and sets up the initial state.

Note: CTR mode effectively converts a block cipher into a stream cipher by generating a keystream. It is used for encrypting data with a block cipher in a parallelizable manner. Ensure that the IV is unique for each message.

Constructors

CTR(BlockCipher cipher, List<int> iv)
Creates a CTR instance with the given block cipher and initialization vector (IV).

Properties

blockSize → int?
Returns the block size of the block cipher, or null if not set.
no setter
hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

clean() → CTR
Clears internal state and data in the Counter (CTR) mode instance for security and memory management.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setCipher(BlockCipher cipher, List<int>? iv) → CTR
Sets the block cipher and initialization vector (IV) for the Counter (CTR) mode.
stream(List<int> dst) → void
Generates and writes keystream to the destination.
streamXOR(List<int> src, List<int> dst) → void
XORs source data with the keystream and writes the result to the destination.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited