§
    ¥”jÇ'  ã                  ó˜  — U d dl mZ d dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ  G d„ d	¦  «        Z G d
„ dej        ¬¦  «        Z G d„ dej        ¬¦  «        Z G d„ dej        ¬¦  «        ZeZe                     ej        j        ¦  «          G d„ dej        ¬¦  «        ZeZe                     ej        j        ¦  «         ej        j        Zej        j         Z  G d„ de¦  «        Z! G d„ de¦  «        Z" G d„ de¦  «        Z# G d„ de¦  «        Z$ G d„ de¦  «        Z% G d„ de¦  «        Z& G d„ d e¦  «        Z' G d!„ d"e¦  «        Z( G d#„ d$e¦  «        Z) e&¦   «          e#¦   «          e&¦   «          e%¦   «          e#¦   «          e"¦   «          e!¦   «          e$¦   «          e'¦   «          e(¦   «          e)¦   «         d%œZ*d&e+d'<    G d(„ d)e¦  «        Z,ej        j-        Z-	 d7d8d0„Z. G d1„ d2¦  «        Z/ej&        e&ej%        e%ej$        e$ej#        e#ej"        e"ej!        e!ej0        e'ej1        e(ej2        e)i	Z3d9d6„Z4dS ):é    )ÚannotationsN)Úutils)ÚUnsupportedAlgorithmÚ_Reasons)ÚObjectIdentifier)Úopenssl)Ú_serializationÚhashesc                  óÔ   — e Zd Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z	 ed¦  «        Z
 ed¦  «        Z ed	¦  «        Zd
S )ÚEllipticCurveOIDz1.2.840.10045.3.1.1z1.3.132.0.33z1.3.132.0.10z1.2.840.10045.3.1.7z1.3.132.0.34z1.3.132.0.35z1.3.36.3.3.2.8.1.1.7z1.3.36.3.3.2.8.1.1.11z1.3.36.3.3.2.8.1.1.13N)Ú__name__Ú
__module__Ú__qualname__r   Ú	SECP192R1Ú	SECP224R1Ú	SECP256K1Ú	SECP256R1Ú	SECP384R1Ú	SECP521R1ÚBRAINPOOLP256R1ÚBRAINPOOLP384R1ÚBRAINPOOLP512R1© ó    ú{/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/asymmetric/ec.pyr   r      s£   € € € € € Ø Ð Ð!6Ñ7Ô7€IØ Ð  Ñ0Ô0€IØ Ð  Ñ0Ô0€IØ Ð Ð!6Ñ7Ô7€IØ Ð  Ñ0Ô0€IØ Ð  Ñ0Ô0€IØ&Ð&Ð'=Ñ>Ô>€OØ&Ð&Ð'>Ñ?Ô?€OØ&Ð&Ð'>Ñ?Ô?€O€O€Or   r   c                  ó¤   — e Zd Zeej        dd„¦   «         ¦   «         Zeej        d	d„¦   «         ¦   «         Zeej        d	d„¦   «         ¦   «         ZdS )
ÚEllipticCurveÚreturnÚstrc                ó   — dS )z8
        The name of the curve. e.g. secp256r1.
        Nr   ©Úselfs    r   ÚnamezEllipticCurve.name   ó   € € € r   Úintc                ó   — dS ©z<
        Bit size of a secret scalar for the curve.
        Nr   r!   s    r   Úkey_sizezEllipticCurve.key_size&   r$   r   c                ó   — dS )z1
        The order of the curve's group.
        Nr   r!   s    r   Úgroup_orderzEllipticCurve.group_order-   r$   r   N)r   r   ©r   r%   )	r   r   r   ÚpropertyÚabcÚabstractmethodr#   r(   r*   r   r   r   r   r      sœ   € € € € € ØØÔðð ð ñ Ôñ „Xðð
 ØÔðð ð ñ Ôñ „Xðð
 ØÔðð ð ñ Ôñ „Xðð ð r   r   )Ú	metaclassc                  ó@   — e Zd Zeej        dd„¦   «         ¦   «         ZdS )ÚEllipticCurveSignatureAlgorithmr   ú+asym_utils.Prehashed | hashes.HashAlgorithmc                ó   — dS )z@
        The digest algorithm used with this signature.
        Nr   r!   s    r   Ú	algorithmz)EllipticCurveSignatureAlgorithm.algorithm6   r$   r   N©r   r2   )r   r   r   r,   r-   r.   r4   r   r   r   r1   r1   5   s@   € € € € € ØØÔðð ð ñ Ôñ „Xðð ð r   r1   c                  ó`  — e Zd Zej        d d„¦   «         Zej        d!d„¦   «         Zeej        d"d
„¦   «         ¦   «         Zeej        d#d„¦   «         ¦   «         Z	ej        d$d„¦   «         Z
ej        d%d„¦   «         Zej        d&d„¦   «         Zej        d'd„¦   «         Zej        d(d„¦   «         ZdS ))ÚEllipticCurvePrivateKeyr4   ÚECDHÚpeer_public_keyÚEllipticCurvePublicKeyr   Úbytesc                ó   — dS )z}
        Performs a key exchange operation using the provided algorithm with the
        provided peer's public key.
        Nr   )r"   r4   r9   s      r   Úexchangez EllipticCurvePrivateKey.exchangeA   r$   r   c                ó   — dS )zB
        The EllipticCurvePublicKey for this private key.
        Nr   r!   s    r   Ú
public_keyz"EllipticCurvePrivateKey.public_keyJ   r$   r   r   c                ó   — dS ©z8
        The EllipticCurve that this key is on.
        Nr   r!   s    r   ÚcurvezEllipticCurvePrivateKey.curveP   r$   r   r%   c                ó   — dS r'   r   r!   s    r   r(   z EllipticCurvePrivateKey.key_sizeW   r$   r   Údataúutils.BufferÚsignature_algorithmr1   c                ó   — dS )z 
        Signs the data
        Nr   )r"   rD   rF   s      r   ÚsignzEllipticCurvePrivateKey.sign^   r$   r   ÚEllipticCurvePrivateNumbersc                ó   — dS )z9
        Returns an EllipticCurvePrivateNumbers.
        Nr   r!   s    r   Úprivate_numbersz'EllipticCurvePrivateKey.private_numbersh   r$   r   Úencodingú_serialization.EncodingÚformatú_serialization.PrivateFormatÚencryption_algorithmú)_serialization.KeySerializationEncryptionc                ó   — dS ©z6
        Returns the key serialized as bytes.
        Nr   )r"   rL   rN   rP   s       r   Úprivate_bytesz%EllipticCurvePrivateKey.private_bytesn   r$   r   c                ó   — dS ©z!
        Returns a copy.
        Nr   r!   s    r   Ú__copy__z EllipticCurvePrivateKey.__copy__y   r$   r   ÚmemoÚdictc                ó   — dS ©z&
        Returns a deep copy.
        Nr   ©r"   rX   s     r   Ú__deepcopy__z$EllipticCurvePrivateKey.__deepcopy__   r$   r   N)r4   r8   r9   r:   r   r;   ©r   r:   ©r   r   r+   )rD   rE   rF   r1   r   r;   )r   rI   )rL   rM   rN   rO   rP   rQ   r   r;   )r   r7   )rX   rY   r   r7   )r   r   r   r-   r.   r=   r?   r,   rB   r(   rH   rK   rT   rW   r]   r   r   r   r7   r7   @   sj  € € € € € ØÔðð ð ñ Ôðð 	Ôðð ð ñ Ôðð
 ØÔðð ð ñ Ôñ „Xðð
 ØÔðð ð ñ Ôñ „Xðð
 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð ð r   r7   c                  óV  — e Zd Zeej        d d„¦   «         ¦   «         Zeej        d!d„¦   «         ¦   «         Zej        d"d„¦   «         Zej        d#d„¦   «         Z	ej        d$d„¦   «         Z
ed%d„¦   «         Zej        d&d„¦   «         Zej        d'd„¦   «         Zej        d(d„¦   «         ZdS ))r:   r   r   c                ó   — dS rA   r   r!   s    r   rB   zEllipticCurvePublicKey.curve‹   r$   r   r%   c                ó   — dS r'   r   r!   s    r   r(   zEllipticCurvePublicKey.key_size’   r$   r   ÚEllipticCurvePublicNumbersc                ó   — dS )z8
        Returns an EllipticCurvePublicNumbers.
        Nr   r!   s    r   Úpublic_numbersz%EllipticCurvePublicKey.public_numbers™   r$   r   rL   rM   rN   ú_serialization.PublicFormatr;   c                ó   — dS rS   r   )r"   rL   rN   s      r   Úpublic_bytesz#EllipticCurvePublicKey.public_bytesŸ   r$   r   Ú	signaturerE   rD   rF   r1   ÚNonec                ó   — dS )z5
        Verifies the signature of the data.
        Nr   )r"   ri   rD   rF   s       r   ÚverifyzEllipticCurvePublicKey.verify©   r$   r   rB   c                óâ   — t          j        d|¦  «         t          |¦  «        dk    rt          d¦  «        ‚|d         dvrt          d¦  «        ‚t          j                             ||¦  «        S )NrD   r   z%data must not be an empty byte string)é   é   é   z%Unsupported elliptic curve point type)r   Ú_check_bytesÚlenÚ
ValueErrorÚrust_opensslÚecÚfrom_public_bytes)ÚclsrB   rD   s      r   Úfrom_encoded_pointz)EllipticCurvePublicKey.from_encoded_point´   sl   € õ 	Ô˜6 4Ñ(Ô(Ð(åˆt‰9Œ9˜Š>ˆ>ÝÐDÑEÔEÐEà�Œ7Ð,Ð,Ð,ÝÐDÑEÔEÐEåŒ×0Ò0°¸Ñ=Ô=Ð=r   ÚotherÚobjectÚboolc                ó   — dS )z"
        Checks equality.
        Nr   )r"   ry   s     r   Ú__eq__zEllipticCurvePublicKey.__eq__Â   r$   r   c                ó   — dS rV   r   r!   s    r   rW   zEllipticCurvePublicKey.__copy__È   r$   r   rX   rY   c                ó   — dS r[   r   r\   s     r   r]   z#EllipticCurvePublicKey.__deepcopy__Î   r$   r   Nr_   r+   )r   rc   )rL   rM   rN   rf   r   r;   )ri   rE   rD   rE   rF   r1   r   rj   )rB   r   rD   r;   r   r:   )ry   rz   r   r{   r^   )rX   rY   r   r:   )r   r   r   r,   r-   r.   rB   r(   re   rh   rl   Úclassmethodrx   r}   rW   r]   r   r   r   r:   r:   Š   sf  € € € € € ØØÔðð ð ñ Ôñ „Xðð
 ØÔðð ð ñ Ôñ „Xðð
 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð ð>ð >ð >ñ „[ð>ð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð ð r   r:   c                  ó   — e Zd ZdZdZdZdS )r   Ú	secp521r1i	  l#   	dp"z\}[ëzˆ3"näZ;PKÜ#
`ü7ÍrËoÁC†QôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿN©r   r   r   r#   r(   r*   r   r   r   r   r   Ü   s    € € € € € Ø€DØ€Hð X€K€K€Kr   r   c                  ó   — e Zd ZdZdZdZdS )r   Ú	secp384r1é€  l   s)Š«e`g®w’lX_[nÐlv|ÿÿÿÿÿÿÿÿÿÿÿÿÿNrƒ   r   r   r   r   r   â   s   € € € € € Ø€DØ€HØt€K€K€Kr   r   c                  ó   — e Zd ZdZdZdZdS )r   Ú	secp256r1é   l   Q%Æx+ÎOhóbi+}s¼ÿÿÿÿ   @ÿÿ Nrƒ   r   r   r   r   r   è   ó    € € € € € Ø€DØ€HàJð €K€Kr   r   c                  ó   — e Zd ZdZdZdZdS )r   Ú	secp256k1r‰   l   AAl 3z’~»i«9nWº~ÿÿÿÿÿÿÿÿ Nrƒ   r   r   r   r   r   ð   rŠ   r   r   c                  ó   — e Zd ZdZdZdZdS )r   Ú	secp224r1éà   l   =*¸8%éá¸(‹ÿÿÿÿÿÿÿ?Nrƒ   r   r   r   r   r   ø   s   € € € € € Ø€DØ€HØL€K€K€Kr   r   c                  ó   — e Zd ZdZdZdZdS )r   Ú	secp192r1éÀ   l   1(¤iÆ&^#aß;æÿÿÿÿÿÿNrƒ   r   r   r   r   r   þ   s   € € € € € Ø€DØ€HØD€K€K€Kr   r   c                  ó   — e Zd ZdZdZdZdS )ÚBrainpoolP256R1ÚbrainpoolP256r1r‰   l   §V�.
:ð yo4,í(½ŒqvBT0æC7U{hí+û) Nrƒ   r   r   r   r”   r”     s    € € € € € Ø€DØ€HàJð €K€Kr   r”   c                  ó   — e Zd ZdZdZdZdS )ÚBrainpoolP384R1ÚbrainpoolP384r1r†   l   eeRHA\1øoÚ+[Ï'K°2s3ñ1Ö
U{„8/¾™Cò{Öu%NQA9Nrƒ   r   r   r   r—   r—     s   € € € € € Ø€DØ€HØt€K€K€Kr   r—   c                  ó   — e Zd ZdZdZdZdS )ÚBrainpoolP512R1ÚbrainpoolP512r1i   l#   i R9
Z<,Û-»B`éXG Xþe3Ã$*S .>UàÌ@Sf9fÚAtrÙY�0–ð'žqjNúg"qôm¸»U Nrƒ   r   r   r   rš   rš     s    € € € € € Ø€DØ€Hð U€K€K€Kr   rš   )Ú
prime192v1Ú
prime256v1r‘   rŽ   rˆ   r…   r‚   rŒ   r•   r˜   r›   zdict[str, EllipticCurve]Ú_CURVE_TYPESc                  óJ   — e Zd Z	 ddd„Zedd„¦   «         Zedd	„¦   «         Zd
S )ÚECDSAFr4   r2   Údeterministic_signingr{   c                óŽ   — ddl m} |r.|                     ¦   «         st          dt          j        ¦  «        ‚|| _        || _        d S )Nr   )ÚbackendzZECDSA with deterministic signature (RFC 6979) is not supported by this version of OpenSSL.)Ú,cryptography.hazmat.backends.openssl.backendr£   Úecdsa_deterministic_supportedr   r   Ú UNSUPPORTED_PUBLIC_KEY_ALGORITHMÚ
_algorithmÚ_deterministic_signing)r"   r4   r¡   r£   s       r   Ú__init__zECDSA.__init__(  sk   € ð
 	IÐHÐHÐHÐHÐHð "ð	à×9Ò9Ñ;Ô;ð	õ 'ð8åÔ9ñô ð ð
 $ˆŒØ&;ˆÔ#Ð#Ð#r   r   c                ó   — | j         S ©N)r§   r!   s    r   r4   zECDSA.algorithm;  s   € ð ŒÐr   c                ó   — | j         S r«   )r¨   r!   s    r   r¡   zECDSA.deterministic_signingA  s   € ð Ô*Ð*r   N)F)r4   r2   r¡   r{   r5   )r   r{   )r   r   r   r©   r,   r4   r¡   r   r   r   r    r    '  sr   € € € € € ð ',ð<ð <ð <ð <ð <ð& ðð ð ñ „Xðð
 ð+ð +ð +ñ „Xð+ð +ð +r   r    Úprivate_valuer%   rB   r£   ú
typing.Anyr   c                ó´   — t          | t          ¦  «        st          d¦  «        ‚| dk    rt          d¦  «        ‚t          j                             | |¦  «        S )Nz&private_value must be an integer type.r   z)private_value must be a positive integer.)Ú
isinstancer%   Ú	TypeErrorrs   rt   ru   Úderive_private_key)r­   rB   r£   s      r   r²   r²   K  sX   € õ
 �m¥SÑ)Ô)ð BÝÐ@ÑAÔAÐAà˜ÒÐÝÐDÑEÔEÐEåŒ?×-Ò-¨m¸UÑCÔCÐCr   c                  ó   — e Zd ZdS )r8   N)r   r   r   r   r   r   r8   r8   Y  s   € € € € € Ø€Dr   r8   Úoidr   útype[EllipticCurve]c                óX   — 	 t           |          S # t          $ r t          d¦  «        ‚w xY w)NzCThe provided object identifier has no matching elliptic curve class)Ú_OID_TO_CURVEÚKeyErrorÚLookupError)r´   s    r   Úget_curve_for_oidrº   j  sD   € ð
Ý˜SÔ!Ð!øÝð 
ð 
ð 
Ýðñ
ô 
ð 	
ð
øøøs   ‚ �)r«   )r­   r%   rB   r   r£   r®   r   r7   )r´   r   r   rµ   )5Ú
__future__r   r-   ÚtypingÚcryptographyr   Úcryptography.exceptionsr   r   Úcryptography.hazmat._oidr   Ú"cryptography.hazmat.bindings._rustr   rt   Úcryptography.hazmat.primitivesr	   r
   Ú)cryptography.hazmat.primitives.asymmetricÚ
asym_utilsr   ÚABCMetar   r1   r7   Ú(EllipticCurvePrivateKeyWithSerializationÚregisterru   ÚECPrivateKeyr:   Ú'EllipticCurvePublicKeyWithSerializationÚECPublicKeyrI   rc   r   r   r   r   r   r   r”   r—   rš   rž   Ú__annotations__r    Úgenerate_private_keyr²   r8   r   r   r   r·   rº   r   r   r   ú<module>rÌ      s0  ðð
 #Ð "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€à Ð Ð Ð Ð Ð Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø FÐ FÐ FÐ FÐ FÐ FØ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ IÐ IÐ IÐ IÐ IÐ Ið	@ð 	@ð 	@ð 	@ð 	@ñ 	@ô 	@ð 	@ðð ð ð ð ˜cœkð ñ ô ð ð.ð ð ð ð °´ð ñ ô ð ðCð Cð Cð Cð C¨¬ð Cñ Cô Cð CðL ,CÐ (Ø ×  Ò   ¤Ô!=Ñ >Ô >Ð >ðHð Hð Hð Hð H s¤{ð Hñ Hô Hð HðV +AÐ 'Ø × Ò  ¤Ô ;Ñ <Ô <Ð <à*œoÔIÐ Ø)œ_ÔGÐ ðXð Xð Xð Xð X�ñ Xô Xð Xðuð uð uð uð u�ñ uô uð uðð ð ð ð �ñ ô ð ðð ð ð ð �ñ ô ð ðMð Mð Mð Mð M�ñ Mô Mð MðEð Eð Eð Eð E�ñ Eô Eð Eðð ð ð ð �mñ ô ð ðuð uð uð uð u�mñ uô uð uðUð Uð Uð Uð U�mñ Uô Uð Uð �)‘+”+Ø�)‘+”+Ø�‘”Ø�‘”Ø�‘”Ø�‘”Ø�‘”Ø�‘”Ø&�Ñ(Ô(Ø&�Ñ(Ô(Ø&�Ñ(Ô(ð*ð *€ð ð ð ñ ð+ð +ð +ð +ð +Ð+ñ +ô +ð +ðB $”Ô;Ð ð ðDð Dð Dð Dð Dð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð
 Ô 	ØÔ 	ØÔ 	ØÔ 	ØÔ 	ØÔ 	ØÔ$ oØÔ$ oØÔ$ oð
€ð
ð 
ð 
ð 
ð 
ð 
r   