
    9i                         SS jr g)    c                     U S-  S:w  a  [        S5      eUR                  5       nX`:  a  [        SX`4-  5      eU S-  UUUUS.$ )a$  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.
    An ``OverflowError`` exception is always raised when the counter wraps
    around to zero.
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_lenprefixsuffixinitial_valuelittle_endian)
ValueError
bit_length)nbitsr   r   r	   r
   allow_wraparoundiv_bls          S/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/Crypto/Util/Counter.pynewr      sk    N 		a:;;$$&E} 1( ) 	)
 !A:**	 r   N)r   r      FF)r    r   r   <module>r      s
   26r   