
    2i/                    ~   d dl mZ d dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ  G d dej                  	      Z eed
      r%ej!                  ej"                  j                          G d dej                  	      Z eed
      r%ej!                  ej"                  j$                          G d dej                  	      Z eed
      r%ej!                  ej"                  j&                          G d dej                  	      Z eed
      r%ej!                  ej"                  j(                          G d dej                  	      Z eed
      r%ej!                  ej"                  j*                          G d dej                  	      Z eed
      r&ej!                  ej"                  j,                         yy)    )annotationsN)UnsupportedAlgorithm_Reasons)openssl)_serialization)Bufferc                      e Zd Zed	d       Zej                  	 	 	 	 	 	 d
d       Zej                  dd       Zej                  	 d	 	 	 	 	 	 	 dd       Z	ej                  dd       Z
ej                  dd       Zej                  dd       Zy)MLDSA44PublicKeyc                    ddl m} |j                         st        dt        j
                        t        j                  j                  |      S Nr   backendz+ML-DSA-44 is not supported by this backend.)	,cryptography.hazmat.backends.openssl.backendr   mldsa_supportedr   r    UNSUPPORTED_PUBLIC_KEY_ALGORITHMrust_opensslmldsafrom_mldsa44_public_bytesclsdatar   s      e/var/www/html/qr/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/mldsa.pyfrom_public_bytesz"MLDSA44PublicKey.from_public_bytes   C    H&&(&=99 
 !!;;DAA    c                     yz9
        The serialized bytes of the public key.
        N selfencodingformats      r   public_byteszMLDSA44PublicKey.public_bytes       r   c                     y)z
        The raw bytes of the public key.
        Equivalent to public_bytes(Raw, Raw).

        The public key is 1,312 bytes for MLDSA-44.
        Nr   r    s    r   public_bytes_rawz!MLDSA44PublicKey.public_bytes_raw&   r$   r   Nc                     yz'
        Verify the signature.
        Nr   r    	signaturer   contexts       r   verifyzMLDSA44PublicKey.verify/   r$   r   c                     yz"
        Checks equality.
        Nr   r    others     r   __eq__zMLDSA44PublicKey.__eq__:   r$   r   c                     yz!
        Returns a copy.
        Nr   r&   s    r   __copy__zMLDSA44PublicKey.__copy__@   r$   r   c                     yz&
        Returns a deep copy.
        Nr   r    memos     r   __deepcopy__zMLDSA44PublicKey.__deepcopy__F   r$   r   )r   bytesreturnr
   r!   _serialization.Encodingr"   z_serialization.PublicFormatr<   r;   r<   r;   Nr+   r   r   r   r,   Buffer | Noner<   Noner1   objectr<   boolr<   r
   )r9   dictr<   r
   __name__
__module____qualname__classmethodr   abcabstractmethodr#   r'   r-   r2   r5   r:   r   r   r   r
   r
          	B 	B 	) , 
	  	  	
 "&	  	
 
  	 
 	 
 	 r   r
   )	metaclassr   c                  &   e Zd Zed
d       Zedd       Zej                  dd       Zej                  	 	 	 	 	 	 	 	 dd       Z	ej                  dd       Z
ej                  ddd       Zej                  d
d       Zej                  dd	       Zy)MLDSA44PrivateKeyc                    ddl m} |j                         st        dt        j
                        t        j                  j                         S r   )	r   r   r   r   r   r   r   r   generate_mldsa44_keyr   r   s     r   generatezMLDSA44PrivateKey.generateR   A    H&&(&=99 
 !!6688r   c                    ddl m} |j                         st        dt        j
                        t        j                  j                  |      S r   )	r   r   r   r   r   r   r   r   from_mldsa44_seed_bytesr   s      r   from_seed_bytesz!MLDSA44PrivateKey.from_seed_bytes^   C    H&&(&=99 
 !!99$??r   c                     y)zD
        The MLDSA44PublicKey derived from the private key.
        Nr   r&   s    r   
public_keyzMLDSA44PrivateKey.public_keyj   r$   r   c                     yz
        The serialized bytes of the private key.

        This method only returns the serialization of the seed form of the
        private key, never the expanded one.
        Nr   r    r!   r"   encryption_algorithms       r   private_byteszMLDSA44PrivateKey.private_bytesp   r$   r   c                     yz
        The raw bytes of the private key.
        Equivalent to private_bytes(Raw, Raw, NoEncryption()).

        This method only returns the seed form of the private key (32 bytes).
        Nr   r&   s    r   private_bytes_rawz#MLDSA44PrivateKey.private_bytes_raw~   r$   r   Nc                     yz!
        Signs the data.
        Nr   r    r   r,   s      r   signzMLDSA44PrivateKey.sign   r$   r   c                     yr4   r   r&   s    r   r5   zMLDSA44PrivateKey.__copy__   r$   r   c                     yr7   r   r8   s     r   r:   zMLDSA44PrivateKey.__deepcopy__   r$   r   )r<   rS   )r   r   r<   rS   rG   r!   r>   r"   z_serialization.PrivateFormatrb   z)_serialization.KeySerializationEncryptionr<   r;   r?   r@   r   r   r,   rB   r<   r;   )r9   rH   r<   rS   rJ   rK   rL   rM   rW   r[   rN   rO   r^   rc   rf   rj   r5   r:   r   r   r   rS   rS   Q       	9 	9 	@ 	@ 	 
 	) - H	
 
  	  	 
 	 
 	 r   rS   c                      e Zd Zed	d       Zej                  	 	 	 	 	 	 d
d       Zej                  dd       Zej                  	 d	 	 	 	 	 	 	 dd       Z	ej                  dd       Z
ej                  dd       Zej                  dd       Zy)MLDSA65PublicKeyc                    ddl m} |j                         st        dt        j
                        t        j                  j                  |      S Nr   r   z+ML-DSA-65 is not supported by this backend.)	r   r   r   r   r   r   r   r   from_mldsa65_public_bytesr   s      r   r   z"MLDSA65PublicKey.from_public_bytes   r   r   c                     yr   r   r   s      r   r#   zMLDSA65PublicKey.public_bytes   r$   r   c                     y)z
        The raw bytes of the public key.
        Equivalent to public_bytes(Raw, Raw).

        The public key is 1,952 bytes for MLDSA-65.
        Nr   r&   s    r   r'   z!MLDSA65PublicKey.public_bytes_raw   r$   r   Nc                     yr)   r   r*   s       r   r-   zMLDSA65PublicKey.verify   r$   r   c                     yr/   r   r0   s     r   r2   zMLDSA65PublicKey.__eq__   r$   r   c                     yr4   r   r&   s    r   r5   zMLDSA65PublicKey.__copy__   r$   r   c                     yr7   r   r8   s     r   r:   zMLDSA65PublicKey.__deepcopy__   r$   r   )r   r;   r<   rr   r=   r?   r@   rA   rD   r<   rr   )r9   rH   r<   rr   rI   r   r   r   rr   rr      rP   r   rr   c                  &   e Zd Zed
d       Zedd       Zej                  dd       Zej                  	 	 	 	 	 	 	 	 dd       Z	ej                  dd       Z
ej                  ddd       Zej                  d
d       Zej                  dd	       Zy)MLDSA65PrivateKeyc                    ddl m} |j                         st        dt        j
                        t        j                  j                         S rt   )	r   r   r   r   r   r   r   r   generate_mldsa65_keyrV   s     r   rW   zMLDSA65PrivateKey.generate   rX   r   c                    ddl m} |j                         st        dt        j
                        t        j                  j                  |      S rt   )	r   r   r   r   r   r   r   r   from_mldsa65_seed_bytesr   s      r   r[   z!MLDSA65PrivateKey.from_seed_bytes   r\   r   c                     y)zD
        The MLDSA65PublicKey derived from the private key.
        Nr   r&   s    r   r^   zMLDSA65PrivateKey.public_key   r$   r   c                     yr`   r   ra   s       r   rc   zMLDSA65PrivateKey.private_bytes   r$   r   c                     yre   r   r&   s    r   rf   z#MLDSA65PrivateKey.private_bytes_raw  r$   r   Nc                     yrh   r   ri   s      r   rj   zMLDSA65PrivateKey.sign  r$   r   c                     yr4   r   r&   s    r   r5   zMLDSA65PrivateKey.__copy__  r$   r   c                     yr7   r   r8   s     r   r:   zMLDSA65PrivateKey.__deepcopy__"  r$   r   )r<   r~   )r   r   r<   r~   r|   rm   r?   r@   rn   )r9   rH   r<   r~   ro   r   r   r   r~   r~      rp   r   r~   c                      e Zd Zed	d       Zej                  	 	 	 	 	 	 d
d       Zej                  dd       Zej                  	 d	 	 	 	 	 	 	 dd       Z	ej                  dd       Z
ej                  dd       Zej                  dd       Zy)MLDSA87PublicKeyc                    ddl m} |j                         st        dt        j
                        t        j                  j                  |      S Nr   r   z+ML-DSA-87 is not supported by this backend.)	r   r   r   r   r   r   r   r   from_mldsa87_public_bytesr   s      r   r   z"MLDSA87PublicKey.from_public_bytes.  r   r   c                     yr   r   r   s      r   r#   zMLDSA87PublicKey.public_bytes:  r$   r   c                     y)z
        The raw bytes of the public key.
        Equivalent to public_bytes(Raw, Raw).

        The public key is 2,592 bytes for MLDSA-87.
        Nr   r&   s    r   r'   z!MLDSA87PublicKey.public_bytes_rawD  r$   r   Nc                     yr)   r   r*   s       r   r-   zMLDSA87PublicKey.verifyM  r$   r   c                     yr/   r   r0   s     r   r2   zMLDSA87PublicKey.__eq__X  r$   r   c                     yr4   r   r&   s    r   r5   zMLDSA87PublicKey.__copy__^  r$   r   c                     yr7   r   r8   s     r   r:   zMLDSA87PublicKey.__deepcopy__d  r$   r   )r   r;   r<   r   r=   r?   r@   rA   rD   r<   r   )r9   rH   r<   r   rI   r   r   r   r   r   -  rP   r   r   c                  &   e Zd Zed
d       Zedd       Zej                  dd       Zej                  	 	 	 	 	 	 	 	 dd       Z	ej                  dd       Z
ej                  ddd       Zej                  d
d       Zej                  dd	       Zy)MLDSA87PrivateKeyc                    ddl m} |j                         st        dt        j
                        t        j                  j                         S r   )	r   r   r   r   r   r   r   r   generate_mldsa87_keyrV   s     r   rW   zMLDSA87PrivateKey.generatep  rX   r   c                    ddl m} |j                         st        dt        j
                        t        j                  j                  |      S r   )	r   r   r   r   r   r   r   r   from_mldsa87_seed_bytesr   s      r   r[   z!MLDSA87PrivateKey.from_seed_bytes|  r\   r   c                     y)zD
        The MLDSA87PublicKey derived from the private key.
        Nr   r&   s    r   r^   zMLDSA87PrivateKey.public_key  r$   r   c                     yr`   r   ra   s       r   rc   zMLDSA87PrivateKey.private_bytes  r$   r   c                     yre   r   r&   s    r   rf   z#MLDSA87PrivateKey.private_bytes_raw  r$   r   Nc                     yrh   r   ri   s      r   rj   zMLDSA87PrivateKey.sign  r$   r   c                     yr4   r   r&   s    r   r5   zMLDSA87PrivateKey.__copy__  r$   r   c                     yr7   r   r8   s     r   r:   zMLDSA87PrivateKey.__deepcopy__  r$   r   )r<   r   )r   r   r<   r   r   rm   r?   r@   rn   )r9   rH   r<   r   ro   r   r   r   r   r   o  rp   r   r   )
__future__r   rN   cryptography.exceptionsr   r   "cryptography.hazmat.bindings._rustr   r   cryptography.hazmat.primitivesr   cryptography.utilsr   ABCMetar
   hasattrregisterr   rS   rr   r~   r   r   r   r   r   <module>r      sn  
 # 
 B F 9 %; ;| <!l00AABF#++ FR <!|11CCD; ;| <!l00AABF#++ FR <!|11CCD; ;| <!l00AABF#++ FR <!|11CCD "r   