File: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/utils.cpython-310.pyc
o
�)%a� � @ sP d dl Z d dlmZ d dlmZ d dlmZ dd� Zdd� Zd d
� Z dd� Z
dS )
� N)�utils)�hashes)� Prehashedc C s� | j �|| jj�}| �|| jjk� | j�|| j j�}| j �|�}| �|dk� | j �||j �}| �|dk� | j�
d�}| j �|| jj|�}| �|dk� | �|d dk� | j�
d|d �}| j �|||�}|dkrptd��| j�
||d �d d � S )N� zsize_t *r zunsigned char[]z1Null shared key derived from public/private pair.)�_lib�EVP_PKEY_CTX_new�_ffi�NULL�openssl_assert�gc�EVP_PKEY_CTX_free�EVP_PKEY_derive_init�EVP_PKEY_derive_set_peer� _evp_pkey�new�EVP_PKEY_derive�
ValueError�buffer)�backend�evp_pkey�peer_public_key�ctx�res�keylen�buf� r �L/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/utils.py�_evp_pkey_derive
s r c C sN t |t�st�|| �}|�|� |�� }n|j}t|�|jkr#t d��||fS )NzNThe provided data must be the same length as the hash algorithm's digest size.)
�
isinstancer r �Hash�update�finalize�
_algorithm�len�digest_sizer )r �data� algorithm�hash_ctxr r r �_calculate_digest_and_algorithm! s
�r( c C s t | t�r td��d S )Nz�Prehashed is only supported in the sign and verify methods. It cannot be used with signer, verifier or recover_data_from_signature.)r r � TypeError)�signature_algorithmr r r �_check_not_prehashed2 s
��r+ c C s t jdtjdd� d S )NzMsigner and verifier have been deprecated. Please use sign and verify instead.� )�
stacklevel)�warnings�warnr �PersistentlyDeprecated2017r r r r �_warn_sign_verify_deprecated; s
�r1 )r. �cryptographyr �cryptography.hazmat.primitivesr �/cryptography.hazmat.primitives.asymmetric.utilsr r r( r+ r1 r r r r �<module> s