
    >OOf%                    z   U d dl mZ d dlZd dlZd dl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j-                  e
j.                  j0                          G d dej"                        ZeZej-                  e
j.                  j6                         e
j.                  j8                  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& 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 d0 d1e      Z- G d2 d3e      Z. G d4 d5e      Z/ G d6 d7e      Z0i d8 e-       d9 e*       d: e-       d; e,       d< e*       d= e)       d> e(       d? e+       d@ e'       dA e&       dB e%       dC e$       dD e#       dE e"       dF e!       dG e        dH e        e        e.        e/        e0       dIZ1dJe2dK<    G dL dMe      Z3e
j.                  jh                  Z4	 dR	 	 	 	 	 	 	 dSdNZ5 G dO dP      Z6i ejZ                  e-ejX                  e,ejV                  e+ejT                  e*ejR                  e)ejP                  e(ejn                  e.ejp                  e/ejr                  e0ejN                  e'ejD                  e"ejL                  e&ejB                  e!ejJ                  e%ej@                  e ejH                  e$ej>                  eejF                  e#ej<                  eiZ:dTdQZ;y)U    )annotationsN)utils)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 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 ed      Zy)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.13z1.3.132.0.1z1.3.132.0.15z1.3.132.0.26z1.3.132.0.27z1.3.132.0.16z1.3.132.0.17z1.3.132.0.36z1.3.132.0.37z1.3.132.0.38z1.3.132.0.39N)__name__
__module____qualname__r   	SECP192R1	SECP224R1	SECP256K1	SECP256R1	SECP384R1	SECP521R1BRAINPOOLP256R1BRAINPOOLP384R1BRAINPOOLP512R1	SECT163K1	SECT163R2	SECT233K1	SECT233R1	SECT283K1	SECT283R1	SECT409K1	SECT409R1	SECT571K1	SECT571R1     m/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/ec.pyr
   r
      s     !67I 0I 0I !67I 0I 0I&'=>O&'>?O&'>?O /I 0I 0I 0I 0I 0I 0I 0I 0I 0Ir"   r
   c                  l    e Zd Zeej
                  dd              Zeej
                  dd              Zy)EllipticCurvec                     y)z8
        The name of the curve. e.g. secp256r1.
        Nr!   selfs    r#   namezEllipticCurve.name(       r"   c                     yz<
        Bit size of a secret scalar for the curve.
        Nr!   r'   s    r#   key_sizezEllipticCurve.key_size/   r*   r"   N)returnstrr.   int)r   r   r   propertyabcabstractmethodr)   r-   r!   r"   r#   r%   r%   '   sD      
   r"   r%   )	metaclassc                  @    e Zd Zeej
                  	 	 dd              Zy)EllipticCurveSignatureAlgorithmc                     y)z@
        The digest algorithm used with this signature.
        Nr!   r'   s    r#   	algorithmz)EllipticCurveSignatureAlgorithm.algorithm8   r*   r"   Nr.   +asym_utils.Prehashed | hashes.HashAlgorithm)r   r   r   r2   r3   r4   r9   r!   r"   r#   r7   r7   7   s*    	4  r"   r7   c                  R   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y)EllipticCurvePrivateKeyc                     y)z}
        Performs a key exchange operation using the provided algorithm with the
        provided peer's public key.
        Nr!   )r(   r9   peer_public_keys      r#   exchangez EllipticCurvePrivateKey.exchangeC   r*   r"   c                     y)zB
        The EllipticCurvePublicKey for this private key.
        Nr!   r'   s    r#   
public_keyz"EllipticCurvePrivateKey.public_keyL   r*   r"   c                     yz8
        The EllipticCurve that this key is on.
        Nr!   r'   s    r#   curvezEllipticCurvePrivateKey.curveR   r*   r"   c                     yr,   r!   r'   s    r#   r-   z EllipticCurvePrivateKey.key_sizeY   r*   r"   c                     y)z 
        Signs the data
        Nr!   )r(   datasignature_algorithms      r#   signzEllipticCurvePrivateKey.sign`   r*   r"   c                     y)z9
        Returns an EllipticCurvePrivateNumbers.
        Nr!   r'   s    r#   private_numbersz'EllipticCurvePrivateKey.private_numbersj   r*   r"   c                     yz6
        Returns the key serialized as bytes.
        Nr!   )r(   encodingformatencryption_algorithms       r#   private_bytesz%EllipticCurvePrivateKey.private_bytesp   r*   r"   N)r9   ECDHr?   EllipticCurvePublicKeyr.   bytes)r.   rT   r.   r%   r0   )rH   rU   rI   r7   r.   rU   )r.   EllipticCurvePrivateNumbers)rO   _serialization.EncodingrP   z_serialization.PrivateFormatrQ   z)_serialization.KeySerializationEncryptionr.   rU   )r   r   r   r3   r4   r@   rB   r2   rE   r-   rJ   rL   rR   r!   r"   r#   r=   r=   B   s!   0F	  	 
   
   
 	 = 
	  	 
 	) - H	
 
 r"   r=   c                  >   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y)rT   c                     yrD   r!   r'   s    r#   rE   zEllipticCurvePublicKey.curve   r*   r"   c                     yr,   r!   r'   s    r#   r-   zEllipticCurvePublicKey.key_size   r*   r"   c                     y)z8
        Returns an EllipticCurvePublicNumbers.
        Nr!   r'   s    r#   public_numbersz%EllipticCurvePublicKey.public_numbers   r*   r"   c                     yrN   r!   )r(   rO   rP   s      r#   public_bytesz#EllipticCurvePublicKey.public_bytes   r*   r"   c                     y)z5
        Verifies the signature of the data.
        Nr!   )r(   	signaturerH   rI   s       r#   verifyzEllipticCurvePublicKey.verify   r*   r"   c                    t        j                  d|       t        |      dk(  rt        d      |d   dvrt        d      t        j
                  j                  ||      S )NrH   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)clsrE   rH   s      r#   from_encoded_pointz)EllipticCurvePublicKey.from_encoded_point   s[     	64(t9>DEE7,,DEE00==r"   c                     y)z"
        Checks equality.
        Nr!   )r(   others     r#   __eq__zEllipticCurvePublicKey.__eq__   r*   r"   NrV   r0   )r.   EllipticCurvePublicNumbers)rO   rX   rP   z_serialization.PublicFormatr.   rU   )ra   rU   rH   rU   rI   r7   r.   None)rE   r%   rH   rU   r.   rT   )rp   objectr.   bool)r   r   r   r2   r3   r4   rE   r-   r]   r_   rb   classmethodrn   rq   r!   r"   r#   rT   rT      s     
   
 	 
 	) , 
	  	  =	
 
  >!>).>	> > 	 r"   rT   c                      e Zd ZdZdZy)r    	sect571r1i:  Nr   r   r   r)   r-   r!   r"   r#   r    r           DHr"   r    c                      e Zd ZdZdZy)r   	sect409r1  Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	sect283r1  Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	sect233r1   Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	sect163r2   Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	sect571k1i;  Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	sect409k1r}   Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	sect283k1r   Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	sect233k1r   Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	sect163k1r   Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	secp521r1i	  Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	secp384r1  Nry   r!   r"   r#   r   r      rz   r"   r   c                      e Zd ZdZdZy)r   	secp256r1   Nry   r!   r"   r#   r   r     rz   r"   r   c                      e Zd ZdZdZy)r   	secp256k1r   Nry   r!   r"   r#   r   r     rz   r"   r   c                      e Zd ZdZdZy)r   	secp224r1   Nry   r!   r"   r#   r   r     rz   r"   r   c                      e Zd ZdZdZy)r   	secp192r1   Nry   r!   r"   r#   r   r     rz   r"   r   c                      e Zd ZdZdZy)BrainpoolP256R1brainpoolP256r1r   Nry   r!   r"   r#   r   r         DHr"   r   c                      e Zd ZdZdZy)BrainpoolP384R1brainpoolP384r1r   Nry   r!   r"   r#   r   r     r   r"   r   c                      e Zd ZdZdZy)BrainpoolP512R1brainpoolP512r1i   Nry   r!   r"   r#   r   r      r   r"   r   
prime192v1
prime256v1r   r   r   r   r   r   r   r   r   r   r   r   r   r   r|   )rx   r   r   r   zdict[str, EllipticCurve]_CURVE_TYPESc                  .    e Zd Z	 	 ddZe	 	 dd       Zy)ECDSAc                    || _         y N
_algorithm)r(   r9   s     r#   __init__zECDSA.__init__?  s     $r"   c                    | j                   S r   r   r'   s    r#   r9   zECDSA.algorithmE  s     r"   N)r9   r;   r:   )r   r   r   r   r2   r9   r!   r"   r#   r   r   >  s+    $>$ 	4 r"   r   c                    t        | t              st        d      | dk  rt        d      t        j
                  j                  | |      S )Nz&private_value must be an integer type.r   z)private_value must be a positive integer.)
isinstancer1   	TypeErrorri   rj   rk   derive_private_key)private_valuerE   backends      r#   r   r   O  sE    
 mS)@AADEE??--mUCCr"   c                      e Zd Zy)rS   N)r   r   r   r!   r"   r#   rS   rS   ]  s    r"   rS   c                F    	 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)oids    r#   get_curve_for_oidr   x  s3    
S!! 

 	

s     r   )r   r1   rE   r%   r   z
typing.Anyr.   r=   )r   r   r.   ztype[EllipticCurve])<
__future__r   r3   typingcryptographyr   cryptography.hazmat._oidr   "cryptography.hazmat.bindings._rustr   rj   cryptography.hazmat.primitivesr   r   )cryptography.hazmat.primitives.asymmetric
asym_utilsr
   ABCMetar%   r7   r=   (EllipticCurvePrivateKeyWithSerializationregisterrk   ECPrivateKeyrT   'EllipticCurvePublicKeyWithSerializationECPublicKeyrW   rr   r    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __annotations__r   generate_private_keyr   rS   r   r   r   r   r   r!   r"   r#   <module>r      s{  
 # 
   5 F A I1 1,ckk   7 7t ,C (     !=!= ><s{{ <~ +A '    ; ; <*ooII )__GG  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
m 
m 
m 
*)+*)+* * 	*
 * * * * * * * * * * *  !*" #*$ &(&(&(+*& 2+  $;;  DDD D 	D	 			 	 		
 	 	 $$o $$o $$o 	 	 	 	 	 	  	!" 	#$ 		'.
r"   