
    M j)                        S SK Jr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJrJrJrJr  S S	KJr  S S
KJr  S SKJrJr   " S S5      r\" 5       rg)    )annotations)openssl)binding)hashes)AsymmetricPadding)ec)utils)MGF1OAEPPSSPKCS1v15)CipherAlgorithm)AES)CBCModec                     \ rS rSrSrSr\4r\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                   \R"                  \R$                  \R&                  \R(                  4r\R.                  \R0                  \R2                  \R4                  4rSrSrSS-  rSrS\-  r S+S jr!S,S jr"S-S	 jr#S+S
 jr$S,S jr%S.S jr&S/S jr'    S/S jr(S0S jr)S0S jr*S/S jr+S1S jr,S/S jr-S2S jr.S/S jr/S3S jr0S3S jr1S0S jr2S/S jr3S0S jr4S4S jr5      S5S jr6      S6S jr7S0S jr8S0S jr9S0S  jr:S0S! jr;S0S" jr<S0S# jr=S0S$ jr>S0S% jr?S0S& jr@S0S' jrAS0S( jrBS)rCg*)7Backend   z!
OpenSSL API binding interfaces.
r   i   i     c                    [         R                  " 5       U l        U R                  R                  U l        U R                  R
                  U l        [        R                  " 5       U l	        g N)
r   Binding_bindingffi_ffilib_librust_opensslis_fips_enabled_fips_enabledselfs    }/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/backend.py__init__Backend.__init__E   sC    )MM%%	MM%%	)99;    c                f    SU R                  5        SU R                   S[        R                   S3$ )Nz<OpenSSLBackend(version: z, FIPS: z
, Legacy: z)>)openssl_version_textr    r   _legacy_provider_loadedr!   s    r#   __repr__Backend.__repr__K   sC    '(A(A(C'D E''( )#;;<B@	
r&   c                .    [         R                  " U5      $ r   )r   _openssl_assert)r"   oks     r#   openssl_assertBackend.openssl_assertR   s    &&r**r&   c                    [         R                  " [         R                  5        [         R                  " 5       (       d   e[         R                  " 5       U l        g r   )r   enable_fips
_providersr   r    r!   s    r#   _enable_fipsBackend._enable_fipsU   s>     	  !8!89++----)99;r&   c                ,    [         R                  " 5       $ )z
Friendly string name of the loaded OpenSSL library. This is not
necessarily the same version as it was compiled against.

Example: OpenSSL 3.2.1 30 Jan 2024
)r   r(   r!   s    r#   r(   Backend.openssl_version_text\   s     0022r&   c                ,    [         R                  " 5       $ r   )r   openssl_versionr!   s    r#   openssl_version_numberBackend.openssl_version_numbere   s    ++--r&   c                    U R                   (       a  [        XR                  5      (       d  g[        R                  R                  U5      $ NF)r    
isinstance_fips_hashesr   r   hash_supportedr"   	algorithms     r#   r@   Backend.hash_supportedh   s5    j<M<M&N&N""11)<<r&   c                    U R                   (       a   [        U[        R                  5      (       a  gU R	                  U5      $ r=   )r    r>   r   SHA1r@   rA   s     r#   signature_hash_supported Backend.signature_hash_supportedn   s1    
 *Y"D"D""9--r&   c                n    U R                   (       a  g[        [        R                  R                  S5      $ NFderive)r    hasattrr   kdfScryptr!   s    r#   scrypt_supportedBackend.scrypt_supportedw   s'    <++22H==r&   c                n    U R                   (       a  g[        [        R                  R                  S5      $ rI   )r    rK   r   rL   Argon2idr!   s    r#   argon2_supportedBackend.argon2_supported}   s'    <++44h??r&   c                   U R                   (       a   [        U[        R                  5      (       a  g[        R
                  (       a  [        U[        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  45      $ U R                  U5      $ NT)r    r>   r   rE   r   CRYPTOGRAPHY_IS_AWSLCMD5SHA224SHA256SHA384SHA512
SHA512_224
SHA512_256r@   rA   s     r#   hmac_supportedBackend.hmac_supported   s    *Y"D"D--JJKKMMMMMMMM%%%%	  ""9--r&   c                    U R                   (       a  [        XR                  5      (       d  g[        R                  R                  X5      $ r=   )r    r>   _fips_ciphersr   cipherscipher_supported)r"   ciphermodes      r#   rc   Backend.cipher_supported   s8     f&8&899##44VBBr&   c                $    U R                  U5      $ r   )r^   rA   s     r#   pbkdf2_hmac_supportedBackend.pbkdf2_hmac_supported   s    ""9--r&   c                ,    [         R                  " 5       $ r   )r   capture_error_stackr!   s    r#   _consume_errorsBackend._consume_errors   s    //11r&   c                   U R                   (       a   [        U[        R                  5      (       a  g[        U[        R                  [        R                  [        R
                  [        R                  [        R                  45      $ r=   )r    r>   r   rE   rX   rY   rZ   r[   rA   s     r#   _oaep_hash_supportedBackend._oaep_hash_supported   sV    *Y"D"D	
 		
r&   c                8   [        U[        5      (       a  g[        U[        5      (       at  [        UR                  [        5      (       aU  U R
                  (       a  UR                  [        R                  :w  a  gU R                  UR                  R                  5      $ [        U[        5      (       af  [        UR                  [        5      (       aG  U R                  UR                  R                  5      =(       a    U R                  UR                  5      $ g)NTF)r>   r   r   _mgfr
   r    _salt_lengthDIGEST_LENGTHr@   
_algorithmr   ro   r"   paddings     r#   rsa_padding_supportedBackend.rsa_padding_supported   s    gx((%%*W\\4*H*H ""((C,=,==&&w||'>'>??&&:gllD+I+I,,'' @++G,>,>?@ r&   c                r    U R                   (       a  [        U[        5      (       a  gU R                  U5      $ r=   )r    r>   r   rx   rv   s     r#   rsa_encryption_supported Backend.rsa_encryption_supported   s+    *Wh"?"?--g66r&   c                \    [         R                  (       + =(       a    U R                  (       + $ r   )r   CRYPTOGRAPHY_IS_BORINGSSLr    r!   s    r#   dsa_supportedBackend.dsa_supported   s$    666 '&&&	
r&   c                P    U R                  5       (       d  gU R                  U5      $ r=   )r   rF   rA   s     r#   dsa_hash_supportedBackend.dsa_hash_supported   s%    !!##,,Y77r&   c                R    U R                  U[        SUR                  -  5      5      $ )N    )rc   r   
block_sizerA   s     r#   cmac_algorithm_supported Backend.cmac_algorithm_supported   s*    $$s7Y%9%99:
 	
r&   c                    U R                   (       a  [        XR                  5      (       d  g[        R                  R                  U5      $ r=   )r    r>   _fips_ecdh_curvesr   r   curve_supported)r"   curves     r#   elliptic_curve_supported Backend.elliptic_curve_supported   s:    j))'
 '
 ..u55r&   c                    [        U[        R                  5      (       d  gU R                  U5      =(       aF    [        UR                  [
        R                  5      =(       d    U R                  UR                  5      $ r=   )r>   r   ECDSAr   rB   
asym_utils	Prehashedr@   )r"   signature_algorithmr   s      r#   ,elliptic_curve_signature_algorithm_supported4Backend.elliptic_curve_signature_algorithm_supported   sc     -rxx88,,U3 
*44j6J6JK B""#6#@#@A	
r&   c                f    U R                  U5      =(       a    [        U[        R                  5      $ r   )r   r>   r   ECDH)r"   rB   r   s      r#   +elliptic_curve_exchange_algorithm_supported3Backend.elliptic_curve_exchange_algorithm_supported   s,     ,,U3 

rww9
 	
r&   c                d    [         R                  (       + =(       a    [         R                  (       + $ r   )r   r~   rV   r!   s    r#   dh_supportedBackend.dh_supported   s$    666 7 666	
r&   c                4    U R                   R                  S:H  $ )Nr   )r   Cryptography_HAS_EVP_PKEY_DHXr!   s    r#   dh_x942_serialization_supported'Backend.dh_x942_serialization_supported  s    yy66!;;r&   c                $    U R                   (       + $ r   r    r!   s    r#   x25519_supportedBackend.x25519_supported      %%%%r&   c                    U R                   (       a  g[        R                  (       + =(       a1    [        R                  (       + =(       a    [        R                  (       + $ r=   )r    r   CRYPTOGRAPHY_IS_LIBRESSLr~   rV   r!   s    r#   x448_supportedBackend.x448_supported
  sA    555 7 :::7 666	
r&   c                ~    [         R                  =(       d'    [         R                  =(       d    [         R                  $ r   r   rV   r~   #CRYPTOGRAPHY_OPENSSL_350_OR_GREATERr!   s    r#   mlkem_supportedBackend.mlkem_supported  .    .. @55@??	
r&   c                ~    [         R                  =(       d'    [         R                  =(       d    [         R                  $ r   r   r!   s    r#   mldsa_supportedBackend.mldsa_supported  r   r&   c                    grU    r!   s    r#   ed25519_supportedBackend.ed25519_supported!      r&   c                    [         R                  (       + =(       a1    [         R                  (       + =(       a    [         R                  (       + $ r   )r   r   r~   rV   r!   s    r#   ed448_supportedBackend.ed448_supported$  s5    555 7 :::7 666	
r&   c                R    [         R                  =(       a    U R                  (       + $ r   )r   #CRYPTOGRAPHY_OPENSSL_320_OR_GREATERr    r!   s    r#   ecdsa_deterministic_supported%Backend.ecdsa_deterministic_supported+  s!    << '&&&	
r&   c                $    U R                   (       + $ r   r   r!   s    r#   poly1305_supportedBackend.poly1305_supported1  r   r&   c                    grU   r   r!   s    r#   pkcs7_supportedBackend.pkcs7_supported4  r   r&   )r   r   r    r   N)returnNone)r   str)r.   boolr   r   )r   int)rB   zhashes.HashAlgorithmr   r   )r   r   )rd   r   re   r   r   r   )r   zlist[rust_openssl.OpenSSLError])rw   r   r   r   )r   ec.EllipticCurver   r   )r   z"ec.EllipticCurveSignatureAlgorithmr   r   r   r   )rB   zec.ECDHr   r   r   r   )D__name__
__module____qualname____firstlineno____doc__namer   ra   r   rX   rY   rZ   r[   r\   r]   SHA3_224SHA3_256SHA3_384SHA3_512SHAKE128SHAKE256r?   r   	SECP224R1	SECP256R1	SECP384R1	SECP521R1r   _fips_rsa_min_key_size_fips_rsa_min_public_exponent_fips_dsa_min_modulus_fips_dh_min_key_size_fips_dh_min_modulusr$   r*   r/   r4   r(   r:   r@   rF   rN   rR   r^   rc   rh   rl   ro   rx   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r&   r#   r   r      s    D FM 	L 	


	 "$)!I  55<
+<3.=.-.	.>@.(C.2
,7
8


6
?
  
 
	

 
)9
	

<&




&r&   r   N)
__future__r   "cryptography.hazmat.bindings._rustr   r   $cryptography.hazmat.bindings.opensslr   cryptography.hazmat.primitivesr   *cryptography.hazmat.primitives._asymmetricr   )cryptography.hazmat.primitives.asymmetricr   r	   r   1cryptography.hazmat.primitives.asymmetric.paddingr
   r   r   r   &cryptography.hazmat.primitives.ciphersr   1cryptography.hazmat.primitives.ciphers.algorithmsr   ,cryptography.hazmat.primitives.ciphers.modesr   r   r   backendr   r&   r#   <module>r      sK   
 # F 8 1 H 8 I V Vr )r&   