File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/Cryptodome/Math/__pycache__/_IntegerCustom.cpython-310.pyc
Back
o ;js � @ st d dl mZ ddlmZmZ ddlmZmZmZm Z m Z mZ ddlm Z dZede�Zde d �ZG d d� de�ZdS ) � )� IntegerNative� )� long_to_bytes� bytes_to_long)�load_pycryptodome_raw_lib�create_string_buffer�get_raw_buffer�backend�c_size_t�c_ulonglong)�getrandbitsa� int monty_pow(uint8_t *out, const uint8_t *base, const uint8_t *exp, const uint8_t *modulus, size_t len, uint64_t seed); int monty_multiply(uint8_t *out, const uint8_t *term1, const uint8_t *term2, const uint8_t *modulus, size_t len); zCryptodome.Math._modexpZcustom)�libraryZapic @ s0 e Zd Zed dd��Zd dd�Zedd� �ZdS )� IntegerCustom�bigc C s8 |dkrn|dkrt | �} | �� ntd��tt| ��S )Nr �littlezIncorrect byteorder)� bytearray�reverse� ValueErrorr r )Zbyte_string� byteorder� r �R/opt/saltstack/salt/lib/python3.10/site-packages/Cryptodome/Math/_IntegerCustom.py� from_bytesA s zIntegerCustom.from_bytesNc C s t |�}|dk rtd��|d u rt| j|�| _| S t |�}|dk r%td��|dkr-td��|d@ dkr=t| j||�| _| S | j|krI| j|; _ttt| j||���}t| j|�}t||�}t||�}t|�} t � | |||t|�tt d���} | r�td| ��tt| ��}|| _| S )Nr zExponent must not be negative�Modulus must be positive�Modulus cannot be zeror �@ zmonty_pow failed with error: %d)�intr �pow�_value�ZeroDivisionError�lenr �maxr �_raw_montgomeryZ monty_powr r r r r )�selfZexponent�modulusZ exp_value� mod_valueZmax_lenZbase_bZexp_b� modulus_b�out�error�resultr r r �inplace_powL sD � zIntegerCustom.inplace_powc C s� t |�}|dk rtd��|dkrtd��|d@ dkrtd��| |ks&| dk r*| |; } ||ks2|dk r6||; }t|�}t|�}t| |�}t||�}t|�}t�||||t|��} | r_td| ��t |�S )Nr r r r zOdd modulus is requiredz$monty_multiply failed with error: %d) r r r r r r r! Zmonty_multiplyr r ) Zterm1Zterm2r# r$ r% Znumbers_lenZterm1_bZterm2_br&