b ddZ dS ) Fc | dz dk rt d | }|| k rt d|| fz | dz ||||dS )a9 Create a stateful counter block function suitable for CTR encryption modes.
Each call to the function returns the next counter block.
Each counter block is made up by three parts:
+------+--------------+-------+
|prefix| counter value|postfix|
+------+--------------+-------+
The counter value is incremented by 1 at each call.
Args:
nbits (integer):
Length of the desired counter value, in bits. It must be a multiple of 8.
prefix (byte string):
The constant prefix of the counter block. By default, no prefix is
used.
suffix (byte string):
The constant postfix of the counter block. By default, no suffix is
used.
initial_value (integer):
The initial value of the counter. Default value is 1.
Its length in bits must not exceed the argument ``nbits``.
little_endian (boolean):
If ``True``, the counter number will be encoded in little endian format.
If ``False`` (default), in big endian format.
allow_wraparound (boolean):
This parameter is ignored.
Returns:
An object that can be passed with the :data:`counter` parameter to a CTR mode
cipher.
It must hold that *len(prefix) + nbits//8 + len(suffix)* matches the
block size of the underlying block cipher.
z'nbits' must be a multiple of 8zGInitial value takes %d bits but it is longer than the counter (%d bits))counter_lenprefixsuffix
initial_value
little_endian)
ValueError
bit_length)nbitsr r r
r allow_wraparoundiv_bls u/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/Util/Counter.pynewr s J a:;;;$$&&Eu}} 1( ) ) )
!A:** r N)r r r FF)r r r