
    ÿig                         ddZ dS )       Fc                     | dz  dk    rt          d          |                                }|| k    rt          d|| fz            | dz  ||||d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/afkarena/venv/lib/python3.11/site-packages/Cryptodome/Util/Counter.pynewr      s    N 		a:;;;$$&&Eu}} 1( ) ) 	)
 !A:**	  r   N)r   r   r   FF)r    r   r   <module>r      s#   26 6 6 6 6 6r   