HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/ed25519.cpython-38.pyc
U

�e�]��@s�ddlmZmZmZddlmZmZddlmZddl	m
Z
mZmZm
Z
e�e�Gdd�de��Ze�e
�Gdd�de��Zd	S)
�)�absolute_import�division�print_function)�
exceptions�utils)�
serialization)�Ed25519PrivateKey�Ed25519PublicKey�_ED25519_KEY_SIZE�_ED25519_SIG_SIZEc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�_Ed25519PublicKeycCs||_||_dS�N��_backend�	_evp_pkey��selfZbackendZevp_pkey�r�N/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/ed25519.py�__init__sz_Ed25519PublicKey.__init__cCst|tjjks|tjjkr@|tjjk	s0|tjjk	r8td��|��S|tjkr^|tjjk	r^td��|j�	||||j
d�S)Nz3When using Raw both encoding and format must be Rawz?format must be SubjectPublicKeyInfo when encoding is PEM or DER)r�Encoding�Raw�PublicFormat�
ValueError�_raw_public_bytes�_PEM_DERZSubjectPublicKeyInforZ_public_key_bytesr)r�encoding�formatrrr�public_bytess4
�
�
�
���
���z_Ed25519PublicKey.public_bytescCsp|jj�dt�}|jj�dt�}|jj�|j||�}|j�|dk�|j�|dtk�|jj�|t�dd�S�Nzunsigned char []�size_t *�r)	r�_ffi�newr
�_lib�EVP_PKEY_get_raw_public_keyr�openssl_assert�buffer�r�buf�buflen�resrrrr0s�z#_Ed25519PublicKey._raw_public_bytescCs�|jj��}|j�||jjjk�|jj�||jjj�}|jj�||jjj|jjj|jjj|j	�}|j�|dk�|jj�
||t|�|t|��}|dkr�|j��t
j�dS)Nr!)rr$�Cryptography_EVP_MD_CTX_newr&r"�NULL�gc�Cryptography_EVP_MD_CTX_freeZEVP_DigestVerifyInitrZEVP_DigestVerify�lenZ_consume_errorsrZInvalidSignature)rZ	signature�data�
evp_md_ctxr+rrr�verify:s0���
z_Ed25519PublicKey.verifyN)�__name__�
__module__�__qualname__rrrr3rrrrrs
rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�_Ed25519PrivateKeycCs||_||_dSr
rrrrrrOsz_Ed25519PrivateKey.__init__cCsz|jj�dt�}|jj�dt�}|jj�|j||�}|j�|dk�|j�|dtk�|jj�|�dd�}|j�	|�Sr)
rr"r#r
r$r%rr&r'Zed25519_load_public_bytes)rr)r*r+rrrr�
public_keySs�z_Ed25519PrivateKey.public_keycCs�|jj��}|j�||jjjk�|jj�||jjj�}|jj�||jjj|jjj|jjj|j	�}|j�|dk�|jj�
dt�}|jj�
dt|��}|jj�
||||t|��}|j�|dk�|j�|dtk�|jj�||d�dd�S)Nr!zunsigned char[]r r)rr$r,r&r"r-r.r/ZEVP_DigestSignInitrr#rr0ZEVP_DigestSignr')rr1r2r+r)r*rrr�sign^s4���z_Ed25519PrivateKey.signcCs�|tjjks|tjjkrL|tjjk	s<|tjjk	s<t|tj�sDtd��|��S|tj	krj|tjj
k	rjtd��|j�||||j
d�S)NzcWhen using Raw both encoding and format must be Raw and encryption_algorithm must be NoEncryption()z0format must be PKCS8 when encoding is PEM or DER)rrrrZ
PrivateFormat�
isinstanceZNoEncryptionr�_raw_private_bytesrZPKCS8rZ_private_key_bytesr)rrrZencryption_algorithmrrr�
private_bytesrs8
�
�
�
�
���
���z _Ed25519PrivateKey.private_bytescCsp|jj�dt�}|jj�dt�}|jj�|j||�}|j�|dk�|j�|dtk�|jj�|t�dd�Sr)	rr"r#r
r$ZEVP_PKEY_get_raw_private_keyrr&r'r(rrrr;�s�z%_Ed25519PrivateKey._raw_private_bytesN)r4r5r6rr8r9r<r;rrrrr7Ms
r7N)Z
__future__rrrZcryptographyrrZcryptography.hazmat.primitivesrZ1cryptography.hazmat.primitives.asymmetric.ed25519rr	r
rZregister_interface�objectrr7rrrr�<module>s>