
    M j                    ~   S SK Jr  S SKrS SKJrJr  S SKJr  S SK	J
r
  S SKJr   " S S\R                  S	9r\" \S
5      (       a%  \R!                  \R"                  R                  5         " S S\R                  S	9r\" \S
5      (       a%  \R!                  \R"                  R$                  5         " S S\R                  S	9r\" \S
5      (       a%  \R!                  \R"                  R&                  5         " S S\R                  S	9r\" \S
5      (       a&  \R!                  \R"                  R(                  5        gg)    )annotationsN)UnsupportedAlgorithm_Reasons)openssl)_serialization)Bufferc                  $   \ rS rSr\SS j5       r\R                  SS j5       r\R                        SS j5       r	\R                  SS j5       r
\R                  SS j5       r\R                  SS j5       r\R                  SS j5       rS	rg
)MLKEM768PublicKey   c                    SSK Jn  UR                  5       (       d  [        S[        R
                  5      e[        R                  R                  U5      $ Nr   backendz,ML-KEM-768 is not supported by this backend.)	,cryptography.hazmat.backends.openssl.backendr   mlkem_supportedr   r    UNSUPPORTED_PUBLIC_KEY_ALGORITHMrust_opensslmlkemfrom_mlkem768_public_bytesclsdatar   s      ڀ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/mlkem.pyfrom_public_bytes#MLKEM768PublicKey.from_public_bytes   sF    H&&((&>99 
 !!<<TBB    c                    gz3
Encapsulate: returns (shared_secret, ciphertext).
N selfs    r   encapsulateMLKEM768PublicKey.encapsulate       r   c                    gz)
The serialized bytes of the public key.
Nr   r!   encodingformats      r   public_bytesMLKEM768PublicKey.public_bytes"   r$   r   c                    g)zw
The raw bytes of the public key.
Equivalent to public_bytes(Raw, Raw).

The public key is 1,184 bytes for ML-KEM-768.
Nr   r    s    r   public_bytes_raw"MLKEM768PublicKey.public_bytes_raw,   r$   r   c                    gz
Checks equality.
Nr   r!   others     r   __eq__MLKEM768PublicKey.__eq__5   r$   r   c                    gz
Returns a copy.
Nr   r    s    r   __copy__MLKEM768PublicKey.__copy__;   r$   r   c                    gz
Returns a deep copy.
Nr   r!   memos     r   __deepcopy__MLKEM768PublicKey.__deepcopy__A   r$   r   r   N)r   r   returnr
   r?   ztuple[bytes, bytes]r(   _serialization.Encodingr)   z_serialization.PublicFormatr?   bytesr?   rC   r2   objectr?   boolr?   r
   )r<   dictr?   r
   __name__
__module____qualname____firstlineno__classmethodr   abcabstractmethodr"   r*   r-   r3   r7   r=   __static_attributes__r   r   r   r
   r
      s    	C 	C 	 
 	) , 
	  	  	 
 	 
 	 r   r
   )	metaclassr   c                  <   \ rS rSr\SS j5       r\SS j5       r\R                  SS j5       r	\R                  SS j5       r
\R                          SS j5       r\R                  SS j5       r\R                  SS j5       r\R                  SS	 j5       rS
rg)MLKEM768PrivateKeyL   c                    SSK Jn  UR                  5       (       d  [        S[        R
                  5      e[        R                  R                  5       $ r   )	r   r   r   r   r   r   r   r   generate_mlkem768_keyr   r   s     r   generateMLKEM768PrivateKey.generateM   sD    H&&((&>99 
 !!7799r   c                    SSK Jn  UR                  5       (       d  [        S[        R
                  5      e[        R                  R                  U5      $ r   )	r   r   r   r   r   r   r   r   from_mlkem768_seed_bytesr   s      r   from_seed_bytes"MLKEM768PrivateKey.from_seed_bytesY   sF    H&&((&>99 
 !!::4@@r   c                    gz%
Decapsulate: returns shared_secret.
Nr   r!   
ciphertexts     r   decapsulateMLKEM768PrivateKey.decapsulatee   r$   r   c                    g)z6
The MLKEM768PublicKey derived from this private key.
Nr   r    s    r   
public_keyMLKEM768PrivateKey.public_keyk   r$   r   c                    gz*
The serialized bytes of the private key.
Nr   r!   r(   r)   encryption_algorithms       r   private_bytes MLKEM768PrivateKey.private_bytesq   r$   r   c                    gzi
The raw bytes of the private key (64-byte seed).
Equivalent to private_bytes(Raw, Raw, NoEncryption()).
Nr   r    s    r   private_bytes_raw$MLKEM768PrivateKey.private_bytes_raw|   r$   r   c                    gr6   r   r    s    r   r7   MLKEM768PrivateKey.__copy__   r$   r   c                    gr:   r   r;   s     r   r=   MLKEM768PrivateKey.__deepcopy__   r$   r   r   N)r?   rU   )r   r   r?   rU   rc   r   r?   rC   rH   r(   rB   r)   z_serialization.PrivateFormatrl   z)_serialization.KeySerializationEncryptionr?   rC   rD   )r<   rI   r?   rU   rK   rL   rM   rN   rO   rZ   r^   rP   rQ   rd   rg   rm   rq   r7   r=   rR   r   r   r   rU   rU   L   s    	: 	: 	A 	A 	 
 	 
 	) - H	
 
  	  	 
 	 r   rU   c                  $   \ rS rSr\SS j5       r\R                  SS j5       r\R                        SS j5       r	\R                  SS j5       r
\R                  SS j5       r\R                  SS j5       r\R                  SS j5       rS	rg
)MLKEM1024PublicKey   c                    SSK Jn  UR                  5       (       d  [        S[        R
                  5      e[        R                  R                  U5      $ Nr   r   z-ML-KEM-1024 is not supported by this backend.)	r   r   r   r   r   r   r   r   from_mlkem1024_public_bytesr   s      r   r   $MLKEM1024PublicKey.from_public_bytes   sF    H&&((&?99 
 !!==dCCr   c                    gr   r   r    s    r   r"   MLKEM1024PublicKey.encapsulate   r$   r   c                    gr&   r   r'   s      r   r*   MLKEM1024PublicKey.public_bytes   r$   r   c                    g)zx
The raw bytes of the public key.
Equivalent to public_bytes(Raw, Raw).

The public key is 1,568 bytes for ML-KEM-1024.
Nr   r    s    r   r-   #MLKEM1024PublicKey.public_bytes_raw   r$   r   c                    gr0   r   r1   s     r   r3   MLKEM1024PublicKey.__eq__   r$   r   c                    gr6   r   r    s    r   r7   MLKEM1024PublicKey.__copy__   r$   r   c                    gr:   r   r;   s     r   r=   MLKEM1024PublicKey.__deepcopy__   r$   r   r   N)r   r   r?   r{   r@   rA   rD   rE   r?   r{   )r<   rI   r?   r{   rJ   r   r   r   r{   r{      s    	D 	D 	 
 	) , 
	  	  	 
 	 
 	 r   r{   c                  <   \ rS rSr\SS j5       r\SS j5       r\R                  SS j5       r	\R                  SS j5       r
\R                          SS j5       r\R                  SS j5       r\R                  SS j5       r\R                  SS	 j5       rS
rg)MLKEM1024PrivateKey   c                    SSK Jn  UR                  5       (       d  [        S[        R
                  5      e[        R                  R                  5       $ r~   )	r   r   r   r   r   r   r   r   generate_mlkem1024_keyrY   s     r   rZ   MLKEM1024PrivateKey.generate   sD    H&&((&?99 
 !!88::r   c                    SSK Jn  UR                  5       (       d  [        S[        R
                  5      e[        R                  R                  U5      $ r~   )	r   r   r   r   r   r   r   r   from_mlkem1024_seed_bytesr   s      r   r^   #MLKEM1024PrivateKey.from_seed_bytes   sF    H&&((&?99 
 !!;;DAAr   c                    gra   r   rb   s     r   rd   MLKEM1024PrivateKey.decapsulate   r$   r   c                    g)z7
The MLKEM1024PublicKey derived from this private key.
Nr   r    s    r   rg   MLKEM1024PrivateKey.public_key   r$   r   c                    grj   r   rk   s       r   rm   !MLKEM1024PrivateKey.private_bytes   r$   r   c                    grp   r   r    s    r   rq   %MLKEM1024PrivateKey.private_bytes_raw  r$   r   c                    gr6   r   r    s    r   r7   MLKEM1024PrivateKey.__copy__  r$   r   c                    gr:   r   r;   s     r   r=    MLKEM1024PrivateKey.__deepcopy__  r$   r   r   N)r?   r   )r   r   r?   r   rw   r   rx   rD   )r<   rI   r?   r   ry   r   r   r   r   r      s    	; 	; 	B 	B 	 
 	 
 	) - H	
 
  	  	 
 	 r   r   )
__future__r   rP   cryptography.exceptionsr   r   "cryptography.hazmat.bindings._rustr   r   cryptography.hazmat.primitivesr   cryptography.utilsr   ABCMetar
   hasattrregisterr   rU   r{   r   r   r   r   <module>r      s
  
 # 
 B F 9 %6#++ 6r <!!|11CCDA3;; AH <!! 2 2 E EF63;; 6r <!! 2 2 E EFACKK AH <!!  !3!3!G!GH "r   