Your IP : 18.119.28.173
�
O�Dg� � � � 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 CAST:
:var MODE_ECB: :ref:`Electronic Code Book (ECB) <ecb_mode>`
:var MODE_CBC: :ref:`Cipher-Block Chaining (CBC) <cbc_mode>`
:var MODE_CFB: :ref:`Cipher FeedBack (CFB) <cfb_mode>`
:var MODE_OFB: :ref:`Output FeedBack (OFB) <ofb_mode>`
:var MODE_CTR: :ref:`CounTer Mode (CTR) <ctr_mode>`
:var MODE_OPENPGP: :ref:`OpenPGP Mode <openpgp_mode>`
:var MODE_EAX: :ref:`EAX Mode <eax_mode>`
� N)�_create_cipher)�byte_string)�load_pycryptodome_raw_lib�VoidPointer�SmartPointer�c_size_t�c_uint8_ptrzCrypto.Cipher._raw_casta�
int CAST_start_operation(const uint8_t key[],
size_t key_len,
void **pResult);
int CAST_encrypt(const void *state,
const uint8_t *in,
uint8_t *out,
size_t data_len);
int CAST_decrypt(const void *state,
const uint8_t *in,
uint8_t *out,
size_t data_len);
int CAST_stop_operation(void *state);
c � � | � d� � }n# t $ r t d� � �w xY wt |� � t vrt dt |� � z � � �t j }t j }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' parameterz$Incorrect CAST key length (%d bytes)z,Error %X while instantiating the CAST cipher)�pop�KeyError� TypeError�len�key_size�
ValueError�
_raw_cast_lib�CAST_start_operation�CAST_stop_operationr r r �
address_ofr �get)�dict_parametersr �start_operation�stop_operation�cipher�results �t/builddir/build/BUILD/imunify360-venv-2.4.0/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/Cipher/CAST.py�_create_base_cipherr <