Current Dir: /snap/core22/2437/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/

[FILE] aead.cpython-310.pyc [ edit | delete | rename ]
[FILE] backend.cpython-310.pyc [ edit | delete | rename ]
[FILE] ciphers.cpython-310.pyc [ edit | delete | rename ]
[FILE] cmac.cpython-310.pyc [ edit | delete | rename ]
[FILE] decode_asn1.cpython-310.pyc [ edit | delete | rename ]
[FILE] dh.cpython-310.pyc [ edit | delete | rename ]
[FILE] dsa.cpython-310.pyc [ edit | delete | rename ]
[FILE] ec.cpython-310.pyc [ edit | delete | rename ]
[FILE] ed448.cpython-310.pyc [ edit | delete | rename ]
[FILE] ed25519.cpython-310.pyc [ edit | delete | rename ]
[FILE] encode_asn1.cpython-310.pyc [ edit | delete | rename ]
[FILE] hashes.cpython-310.pyc [ edit | delete | rename ]
[FILE] hmac.cpython-310.pyc [ edit | delete | rename ]
[FILE] ocsp.cpython-310.pyc [ edit | delete | rename ]
[FILE] poly1305.cpython-310.pyc [ edit | delete | rename ]
[FILE] rsa.cpython-310.pyc [ edit | delete | rename ]
[FILE] utils.cpython-310.pyc [ edit | delete | rename ]
[FILE] x448.cpython-310.pyc [ edit | delete | rename ]
[FILE] x509.cpython-310.pyc [ edit | delete | rename ]
[FILE] x25519.cpython-310.pyc [ edit | delete | rename ]
[FILE] __init__.cpython-310.pyc [ edit | delete | rename ]

Viewing: /snap/core22/2437/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/ec.cpython-310.pyc

o

�R�i_8�@s�ddlmZddlmZmZmZddlmZmZm	Z	ddl
mZmZddl
mZmZmZdejfdd�Zd	d
�Zdd�Zd#dd�Zd#dd�Zdd�Zdd�Zdd�ZGdd�de�ZGdd�de�ZGdd �d ej�ZGd!d"�d"ej�ZdS)$�)�utils)�InvalidSignature�UnsupportedAlgorithm�_Reasons)�_calculate_digest_and_algorithm�_check_not_prehashed�_warn_sign_verify_deprecated)�hashes�
serialization)�AsymmetricSignatureContext�AsymmetricVerificationContext�ec�signature_algorithmcCst|tj�stdtj��dS)Nz/Unsupported elliptic curve signature algorithm.)�
isinstancer
�ECDSArr� UNSUPPORTED_PUBLIC_KEY_ALGORITHM)r�r�I/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/ec.py�_check_signature_algorithms��rcCs�|j�|�}|�||jjk�|j�|�}||jjkrtd��|jjs/|j�	|�dkr/td��|j�
|�}|�||jjk�|j�|��d�}|S)Nz;ECDSA keys with unnamed curves are unsupported at this timer�ascii)
�_lib�EC_KEY_get0_group�openssl_assert�_ffi�NULL�EC_GROUP_get_curve_name�	NID_undef�NotImplementedError�CRYPTOGRAPHY_IS_LIBRESSL�EC_GROUP_get_asn1_flag�
OBJ_nid2sn�string�decode)�backend�ec_key�group�nid�
curve_name�snrrr�_ec_key_curve_sn#s"���r)cCs|j�||jj�dS)z�
    Set the named curve flag on the EC_KEY. This causes OpenSSL to
    serialize EC keys along with their curve OID which makes
    deserialization easier.
    N)r�EC_KEY_set_asn1_flag�OPENSSL_EC_NAMED_CURVE)r#�ec_cdatarrr�_mark_asn1_named_ec_curveAs�r-r#�Backend�returnNcCsV|j�|�}|�||jjk�|j�|�}|�||jjk�|j�||�r)td��dS)Nz;Cannot load an EC public key where the point is at infinity)r�EC_KEY_get0_public_keyrrrr�EC_POINT_is_at_infinity�
ValueError)r#r,�pointr%rrr�_check_key_infinityMs��r4cCs\|j�|�}|�||jjk�|j�|�}|�|�}|dkr*|j�|�dkr,td��dSdS)N�z1Invalid EC key (key out of range, infinity, etc.))	rrrrr�EC_GROUP_get0_cofactor�
_bn_to_int�EC_KEY_check_keyr2)r#r,r%�bn�cofactorrrr�_check_key_cofactorWs
��r;cCs0ztj|�WStytd�|�tj��w)Nz${} is not a supported elliptic curve)r
�_CURVE_TYPES�KeyErrorr�formatr�UNSUPPORTED_ELLIPTIC_CURVE)r#r(rrr�_sn_to_elliptic_curvebs��r@cCsz|j�|j�}|�|dk�|j�d|�}|j�dd�}|j�d|t|�|||j�}|�|dk�|j�|�d|d�S)Nrzunsigned char[]zunsigned int[]r5)	r�
ECDSA_size�_ec_keyrr�new�
ECDSA_sign�len�buffer)r#�private_key�data�max_size�sigbuf�
siglen_ptr�resrrr�_ecdsa_sig_signls�rMcCs8|j�d|t|�|t|�|j�}|dkr|��t�dS)Nrr5)r�ECDSA_verifyrErB�_consume_errorsr)r#�
public_key�	signaturerHrLrrr�_ecdsa_sig_verifyys��rRc@sBeZdZdejdejfdd�Zdeddfdd	�Z	defd
d�Z
dS)�_ECDSASignatureContextrG�	algorithmcCs||_||_t�||�|_dS�N)�_backend�_private_keyr	�Hash�_digest)�selfr#rGrTrrr�__init__�sz_ECDSASignatureContext.__init__rHr/NcC�|j�|�dSrU�rY�update�rZrHrrrr^��z_ECDSASignatureContext.updatecCs|j��}t|j|j|�SrU)rY�finalizerMrVrW�rZ�digestrrrra�s
z_ECDSASignatureContext.finalize)�__name__�
__module__�__qualname__r
�EllipticCurvePrivateKeyr	�
HashAlgorithmr[�bytesr^rarrrrrS�s�
�
rSc@sBeZdZdejdedejfdd�Zdeddfd	d
�Z	d
dd�Z
dS)�_ECDSAVerificationContextrPrQrTcCs$||_||_||_t�||�|_dSrU)rV�_public_key�
_signaturer	rXrY)rZr#rPrQrTrrrr[�sz"_ECDSAVerificationContext.__init__rHr/NcCr\rUr]r_rrrr^�r`z _ECDSAVerificationContext.updatecCs"|j��}t|j|j|j|�dSrU)rYrarRrVrkrlrbrrr�verify�s
�z _ECDSAVerificationContext.verify)r/N)rdrerfr
�EllipticCurvePublicKeyrir	rhr[r^rmrrrrrj�s��
�rjc@s�eZdZdd�Ze�d�Zedefdd��Z	de
jdefdd	�Z
d
e
jde
jdefdd
�Zde
jfdd�Zde
jfdd�Zdejdejdejdefdd�Zdede
jdefdd�ZdS)�_EllipticCurvePrivateKeycCs@||_||_||_t||�}t||�|_t||�t||�dSrU)rVrB�	_evp_pkeyr)r@�_curver-r4�rZr#�ec_key_cdata�evp_pkeyr(rrrr[�s

z!_EllipticCurvePrivateKey.__init__rqr/cC�|jjSrU��curve�key_size�rZrrrrx��z!_EllipticCurvePrivateKey.key_sizercCs:t�t|�t|j�t|jtj�sJ�t|j||j�SrU)	rrrrTrr	rhrSrV)rZrrrr�signer�s

�z_EllipticCurvePrivateKey.signerrT�peer_public_keycCs�|j�||j�stdtj��|jj|jjkrtd��|jj�	|j
�}|jj�|�dd}|j�|dk�|jj
�d|�}|jj�|j
�}|jj�||||j
|jj
j�}|j�|dk�|jj
�|�d|�S)Nz1This backend does not support the ECDH algorithm.z2peer_public_key and self are not on the same curve��rz	uint8_t[])rV�+elliptic_curve_exchange_algorithm_supportedrwrr�UNSUPPORTED_EXCHANGE_ALGORITHM�namer2rrrB�EC_GROUP_get_degreerrrCr0�ECDH_compute_keyrrF)rZrTr|r%�z_len�z_buf�peer_key�rrrr�exchange�s0������z!_EllipticCurvePrivateKey.exchangecCs�|jj�|j�}|j�||jjjk�|jj�|�}|j�|�}|jj�	|j�}|j�||jjjk�|jj�
||�}|j�|dk�|j�|�}t|j||�S)Nr5)
rVrrrBrrrr�_ec_key_new_by_curve_nidr0�EC_KEY_set_public_key�_ec_cdata_to_evp_pkey�_EllipticCurvePublicKey)rZr%�	curve_nid�
public_ec_keyr3rLrtrrrrP�sz#_EllipticCurvePrivateKey.public_keycCs2|jj�|j�}|j�|�}tj||����d�S)N)�
private_value�public_numbers)	rVr�EC_KEY_get0_private_keyrBr7r
�EllipticCurvePrivateNumbersrPr�)rZr9r�rrr�private_numbers�s
�z(_EllipticCurvePrivateKey.private_numbers�encodingr>�encryption_algorithmcCs|j�|||||j|j�SrU)rV�_private_key_bytesrprB)rZr�r>r�rrr�
private_bytess�z&_EllipticCurvePrivateKey.private_bytesrHcCs*t|�t|j||j�\}}t|j||�SrU)rrrV�
_algorithmrM)rZrHrrTrrr�signs�z_EllipticCurvePrivateKey.signN)rdrerfr[r�read_only_propertyrw�property�intrxr
�EllipticCurveSignatureAlgorithmrr{�ECDHrnrir�rPr�r�r
�Encoding�
PrivateFormat�KeySerializationEncryptionr�r�rrrrro�sF

�
���
� ���
����roc@s�eZdZdd�Ze�d�Zedefdd��Z	de
dejde
fd	d
�Zdejfdd�Zd
ejde
fdd�Zdejd
ejde
fdd�Zde
de
dejddfdd�ZdS)r�cCsJ||_||_||_t||�}t||�|_t||�t||�t||�dSrU)	rVrBrpr)r@rqr-r4r;rrrrrr[!s


z _EllipticCurvePublicKey.__init__rqr/cCrurUrvryrrrrx.rzz _EllipticCurvePublicKey.key_sizerQrcCsHt�t�d|�t|�t|j�t|jtj�sJ�t	|j
|||j�S)NrQ)rr�_check_bytesrrrTrr	rhrjrV)rZrQrrrr�verifier2s
�z _EllipticCurvePublicKey.verifierc
Cs�|j�|j�\}}|jj�|j�}|j�||jjjk�|j���2}|jj�	|�}|jj�	|�}||||||�}|j�|dk�|j�
|�}|j�
|�}	Wd�n1sVwYtj||	|j
d�S)Nr5)�x�yrw)rV� _ec_key_determine_group_get_funcrBrr0rrr�_tmp_bn_ctx�
BN_CTX_getr7r
�EllipticCurvePublicNumbersrq)
rZ�get_funcr%r3�bn_ctx�bn_x�bn_yrLr�r�rrrr�Bs��
z&_EllipticCurvePublicKey.public_numbersr>c		Cs$|tjjur|jjj}n
|tjjusJ�|jjj}|jj�|j	�}|j�
||jjjk�|jj�
|j	�}|j�
||jjjk�|j���;}|jj�||||jjjd|�}|j�
|dk�|jj�d|�}|jj�||||||�}|j�
||k�Wd�n1s�wY|jj�|�dd�S)Nrzchar[])r
�PublicFormat�CompressedPointrVr�POINT_CONVERSION_COMPRESSED�UncompressedPoint�POINT_CONVERSION_UNCOMPRESSEDrrBrrrr0r��EC_POINT_point2octrCrF)	rZr>�
conversionr%r3r��buflen�bufrLrrr�
_encode_pointUs(
���z%_EllipticCurvePublicKey._encode_pointr�cCsl|tjjus|tjjus|tjjur+|tjjus"|tjjtjjfvr&td��|�|�S|j�	||||j
d�S)NzKX962 encoding must be used with CompressedPoint or UncompressedPoint format)r
r��X962r�r�r�r2r�rV�_public_key_bytesrp)rZr�r>rrr�public_bytesms��
�z$_EllipticCurvePublicKey.public_bytesrHNcCs0t|�t|j||j�\}}t|j|||�dSrU)rrrVr�rR)rZrQrHrrTrrrrm�s�z_EllipticCurvePublicKey.verify)rdrerfr[rr�rwr�r�rxrir
r�rr�r�r�r
r�r�r�r�rmrrrrr� s<
��
���
�����r�)r#r.r/N) �cryptographyr�cryptography.exceptionsrrr�*cryptography.hazmat.backends.openssl.utilsrrr�cryptography.hazmat.primitivesr	r
�)cryptography.hazmat.primitives.asymmetricrrr
r�rr)r-r4r;r@rMrRrSrjrgrornr�rrrr�<module>s&
�





	s
Upload File: