<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
l_ 	                 @   sd   d dl mZmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
 dd Zdd	 Zd
d Zdd ZdS )    )absolute_importdivisionprint_functionN)utils)hashes)	Prehashedc             C   s   | j j|| jj}| j|| jjk | jj|| j j}| j j|}| j|dk | j j||j	}| j|dk | jj
d}| j j|| jj|}| j|dk | j|d dk | jj
d|d }| j j|||}|dkrtd| jj||d d d  S )N   zsize_t *r   zunsigned char[]z1Null shared key derived from public/private pair.)Z_libZEVP_PKEY_CTX_newZ_ffiZNULLZopenssl_assertgcZEVP_PKEY_CTX_freeZEVP_PKEY_derive_initZEVP_PKEY_derive_set_peerZ	_evp_pkeynewZEVP_PKEY_derive
ValueErrorbuffer)backendZevp_pkeyZpeer_public_keyZctxresZkeylenZbuf r   /usr/lib64/python3.6/utils.py_evp_pkey_derive   s     r   c             C   sN   t |ts*tj|| }|j| |j }n|j}t||jkrFt	d||fS )NzNThe provided data must be the same length as the hash algorithm's digest size.)

isinstancer   r   ZHashupdatefinalizeZ
_algorithmlenZdigest_sizer   )r   data	algorithmZhash_ctxr   r   r   _calculate_digest_and_algorithm"   s    


r   c             C   s   t | trtdd S )NzfPrehashed is only supported in the sign and verify methods. It cannot be used with signer or verifier.)r   r   	TypeError)Zsignature_algorithmr   r   r   _check_not_prehashed3   s    
r   c               C   s   t jdtjdd d S )NzMsigner and verifier have been deprecated. Please use sign and verify instead.   )
stacklevel)warningswarnr   ZPersistentlyDeprecated2017r   r   r   r   _warn_sign_verify_deprecated;   s    r   )Z
__future__r   r   r   r   Zcryptographyr   Zcryptography.hazmat.primitivesr   Z/cryptography.hazmat.primitives.asymmetric.utilsr   r   r   r   r   r   r   r   r   <module>   s   