§
    pïg¹  ã                   ó¬   — d dl Z d dlmZ d dlmZ e j        rd dlmZ dddefd„Z	d	ed
e j
        eej        f         de j        eej        f         fd„ZdS )é    N)Úhashes)Ú	Prehashed)ÚBackendÚbackendr   Úreturnc                 óÄ  — | j                              || j        j        ¦  «        }|                      || j        j        k    ¦  «         | j                             || j         j        ¦  «        }| j                              |¦  «        }|                      |dk    ¦  «         | j                              ||j	        ¦  «        }|                      |dk    ¦  «         | j         
                    d¦  «        }| j                              || j        j        |¦  «        }|                      |dk    ¦  «         |                      |d         dk    ¦  «         | j         
                    d|d         ¦  «        }| j                              |||¦  «        }|dk    r$|                      ¦   «         }t          d|¦  «        ‚| j                             ||d         ¦  «        d d …         S )Né   zsize_t *r   zunsigned char[]zError computing shared key.)Ú_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Ú_consume_errors_with_textÚ
ValueErrorÚbuffer)r   Úevp_pkeyÚpeer_public_keyÚctxÚresÚkeylenÚbufÚerrors_with_texts           úL/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/utils.pyÚ_evp_pkey_deriver!      s£  € Ø
Œ,×
'Ò
'¨°'´,Ô2CÑ
DÔ
D€CØ×Ò˜3 '¤,Ô"3Ò3Ñ4Ô4Ð4Ø
Œ,�/Š/˜#˜wœ|Ô=Ñ
>Ô
>€CØ
Œ,×
+Ò
+¨CÑ
0Ô
0€CØ×Ò˜3 !š8Ñ$Ô$Ð$Ø
Œ,×
/Ò
/°°_Ô5NÑ
OÔ
O€CØ×Ò˜3 !š8Ñ$Ô$Ð$ØŒ\×Ò˜jÑ)Ô)€FØ
Œ,×
&Ò
& s¨G¬LÔ,=¸vÑ
FÔ
F€CØ×Ò˜3 !š8Ñ$Ô$Ð$Ø×Ò˜6 !œ9 qš=Ñ)Ô)Ð)Ø
Œ,×
Ò
Ð,¨f°Q¬iÑ
8Ô
8€CØ
Œ,×
&Ò
& s¨C°Ñ
8Ô
8€CØ
ˆa‚x€xØ"×<Ò<Ñ>Ô>ÐÝÐ6Ð8HÑIÔIÐIàŒ<×Ò˜s F¨1¤IÑ.Ô.¨q¨q¨qÔ1Ð1ó    ÚdataÚ	algorithmc                 ó  — t          |t          ¦  «        s>t          j        |¦  «        }|                     | ¦  «         |                     ¦   «         } n|j        }t          | ¦  «        |j        k    rt          d¦  «        ‚| |fS )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#   r$   Úhash_ctxs      r    Ú_calculate_digest_and_algorithmr.   #   sŠ   € õ �i¥Ñ+Ô+ð )Ý”;˜yÑ)Ô)ˆØ�Š˜ÑÔÐØ× Ò Ñ"Ô"ˆˆàÔ(ˆ	å
ˆ4�y„y�IÔ)Ò)Ð)Ýð'ñ
ô 
ð 	
ð
 �)ÐÐr"   )ÚtypingÚcryptography.hazmat.primitivesr   Ú/cryptography.hazmat.primitives.asymmetric.utilsr   ÚTYPE_CHECKINGÚ,cryptography.hazmat.backends.openssl.backendr   Úbytesr!   ÚUnionÚHashAlgorithmÚTupler.   © r"   r    ú<module>r9      sÊ   ðð
 €€€à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø EÐ EÐ EÐ EÐ EÐ Eà	Ôð EØDÐDÐDÐDÐDÐDð2˜ið 2Àuð 2ð 2ð 2ð 2ð*Ø
ðàŒ|˜I vÔ';Ð;Ô<ðð „\�%˜Ô-Ð-Ô.ðð ð ð ð ð r"   