OZ d Z ddlZddlmZ ddlmZ ddlmZmZm Z m
Z
mZ edd Zd Z
d Zd
ZdZdZd
ZdZdZdZdZ ed
d ZdS )a
Module's constants for the modes of operation supported with ARC2:
:var MODE_ECB: :ref:`Electronic Code Book (ECB) `
:var MODE_CBC: :ref:`Cipher-Block Chaining (CBC) `
:var MODE_CFB: :ref:`Cipher FeedBack (CFB) `
:var MODE_OFB: :ref:`Output FeedBack (OFB) `
:var MODE_CTR: :ref:`CounTer Mode (CTR) `
:var MODE_OPENPGP: :ref:`OpenPGP Mode `
:var MODE_EAX: :ref:`EAX Mode `
N)_create_cipher)byte_string)load_pycryptodome_raw_libVoidPointerSmartPointerc_size_tc_uint8_ptrzCrypto.Cipher._raw_arc2a?
int ARC2_start_operation(const uint8_t key[],
size_t key_len,
size_t effective_key_len,
void **pResult);
int ARC2_encrypt(const void *state,
const uint8_t *in,
uint8_t *out,
size_t data_len);
int ARC2_decrypt(const void *state,
const uint8_t *in,
uint8_t *out,
size_t data_len);
int ARC2_stop_operation(void *state);
c | d }n# t $ r t d w xY w| dd }t | t vrt dt | z d|cxk rdk sn t d|z t j }t j }t } |t | t t | t | | }|rt d|z t | | S ) z}This method instantiates and returns a handle to a low-level
base cipher. It will absorb named parameters in the process.keyzMissing 'key' parametereffective_keyleni z$Incorrect ARC2 key length (%d bytes)( zH'effective_key_len' must be at least 40 and no larger than 1024 (not %d)z,Error %X while instantiating the ARC2 cipher)popKeyError TypeErrorlenkey_size
ValueError
_raw_arc2_libARC2_start_operationARC2_stop_operationr r r
address_ofr get)dict_parametersr r start_operationstop_operationcipherresults t/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/Cipher/ARC2.py_create_base_cipherr > sl 3!!%(( 3 3 312223 '**+=tDD
3xxx?#c((JKKK"****d**** $&67 8 8 8 $8O"6N
]]F
_[--%c#hh//%&677#..002 2F #G!" # # #
n555s 2c P t t j t | |g|R i |S )a
Create a new RC2 cipher.
:param key:
The secret key to use in the symmetric cipher.
Its length can vary from 5 to 128 bytes; the actual search space
(and the cipher strength) can be reduced with the ``effective_keylen`` parameter.
:type key: bytes, bytearray, memoryview
:param mode:
The chaining mode to use for encryption or decryption.
:type mode: One of the supported ``MODE_*`` constants
:Keyword Arguments:
* **iv** (*bytes*, *bytearray*, *memoryview*) --
(Only applicable for ``MODE_CBC``, ``MODE_CFB``, ``MODE_OFB``,
and ``MODE_OPENPGP`` modes).
The initialization vector to use for encryption or decryption.
For ``MODE_CBC``, ``MODE_CFB``, and ``MODE_OFB`` it must be 8 bytes long.
For ``MODE_OPENPGP`` mode only,
it must be 8 bytes long for encryption
and 10 bytes for decryption (in the latter case, it is
actually the *encrypted* IV which was prefixed to the ciphertext).
If not provided, a random byte string is generated (you must then
read its value with the :attr:`iv` attribute).
* **nonce** (*bytes*, *bytearray*, *memoryview*) --
(Only applicable for ``MODE_EAX`` and ``MODE_CTR``).
A value that must never be reused for any other encryption done
with this key.
For ``MODE_EAX`` there are no
restrictions on its length (recommended: **16** bytes).
For ``MODE_CTR``, its length must be in the range **[0..7]**.
If not provided for ``MODE_EAX``, a random byte string is generated (you
can read it back via the ``nonce`` attribute).
* **effective_keylen** (*integer*) --
Optional. Maximum strength in bits of the actual key used by the ARC2 algorithm.
If the supplied ``key`` parameter is longer (in bits) of the value specified
here, it will be weakened to match it.
If not specified, no limitation is applied.
* **segment_size** (*integer*) --
(Only ``MODE_CFB``).The number of **bits** the plaintext and ciphertext
are segmented in. It must be a multiple of 8.
If not specified, it will be assumed to be 8.
* **mac_len** : (*integer*) --
(Only ``MODE_EAX``)
Length of the authentication tag, in bytes.
It must be no longer than 8 (default).
* **initial_value** : (*integer*) --
(Only ``MODE_CTR``). The initial value for the counter within
the counter block. By default it is **0**.
:Return: an ARC2 object, of the applicable mode.
)r sysmodules__name__)r modeargskwargss r newr' _ s. F #+h/dLTLLLVLLL )__doc__r!
Crypto.Cipherr Crypto.Util.py3compatr Crypto.Util._raw_apir r r r r r r r' MODE_ECBMODE_CBCMODE_CFBMODE_OFBMODE_CTRMODE_OPENPGPMODE_EAX
block_sizeranger r( r r@ s ,
( ( ( ( ( ( - - - - - -9 9 9 9 9 9 9 9 9 9 9 9 9 9 *)1
(6 6 6BCM CM CMJ
5Gr(