
    F/j5                    ~   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                  R   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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      m/var/www/html/maxservice/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zt
        Verify the signature over a precomputed mu (message representative).

        mu must be 64 bytes.
        Nr   r    r+   mus      r   	verify_muzMLDSA44PublicKey.verify_mu:   r$   r   c                     yz"
        Checks equality.
        Nr   r    others     r   __eq__zMLDSA44PublicKey.__eq__F   r$   r   c                     yz!
        Returns a copy.
        Nr   r&   s    r   __copy__zMLDSA44PublicKey.__copy__L   r$   r   c                     yz&
        Returns a deep copy.
        Nr   r    memos     r   __deepcopy__zMLDSA44PublicKey.__deepcopy__R   r$   r   )r   bytesreturnr
   r!   _serialization.Encodingr"   z_serialization.PublicFormatrA   r@   rA   r@   Nr+   r   r   r   r,   Buffer | NonerA   Noner+   r   r1   r   rA   rH   r6   objectrA   boolrA   r
   )r>   dictrA   r
   __name__
__module____qualname__classmethodr   abcabstractmethodr#   r'   r-   r2   r7   r:   r?   r   r   r   r
   r
      /   	B 	B 	) , 
	  	  	
 "&	  	
 
  			 	 
		 	 	 
 	 
 	 r   r
   )	metaclassr   c                  L   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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.generate^   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_bytesj   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_keyv   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_bytes|   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z
        Signs a precomputed mu (message representative).

        mu must be 64 bytes and already incorporates the context, so no
        context is accepted here.
        Nr   r    r1   s     r   sign_muzMLDSA44PrivateKey.sign_mu   r$   r   c                     yr9   r   r&   s    r   r:   zMLDSA44PrivateKey.__copy__   r$   r   c                     yr<   r   r=   s     r   r?   zMLDSA44PrivateKey.__deepcopy__   r$   r   )rA   rY   )r   r   rA   rY   rM   r!   rC   r"   z_serialization.PrivateFormatrh   z)_serialization.KeySerializationEncryptionrA   r@   rD   rE   r   r   r,   rG   rA   r@   r1   r   rA   r@   )r>   rN   rA   rY   rP   rQ   rR   rS   r]   ra   rT   rU   rd   ri   rl   rp   rt   r:   r?   r   r   r   rY   rY   ]      	9 	9 	@ 	@ 	 
 	) - H	
 
  	  	 
 	  	 
 	 r   rY   c                  R   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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.verify_mu   r$   r   c                     yr4   r   r5   s     r   r7   zMLDSA65PublicKey.__eq__   r$   r   c                     yr9   r   r&   s    r   r:   zMLDSA65PublicKey.__copy__   r$   r   c                     yr<   r   r=   s     r   r?   zMLDSA65PublicKey.__deepcopy__   r$   r   )r   r@   rA   r}   rB   rD   rE   rF   rI   rJ   rA   r}   )r>   rN   rA   r}   rO   r   r   r   r}   r}      rV   r   r}   c                  L   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ej                  dd
       Zy)MLDSA65PrivateKeyc                    ddl m} |j                         st        dt        j
                        t        j                  j                         S r   )	r   r   r   r   r   r   r   r   generate_mldsa65_keyr\   s     r   r]   zMLDSA65PrivateKey.generate  r^   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_mldsa65_seed_bytesr   s      r   ra   z!MLDSA65PrivateKey.from_seed_bytes  rb   r   c                     y)zD
        The MLDSA65PublicKey derived from the private key.
        Nr   r&   s    r   rd   zMLDSA65PrivateKey.public_key  r$   r   c                     yrf   r   rg   s       r   ri   zMLDSA65PrivateKey.private_bytes   r$   r   c                     yrk   r   r&   s    r   rl   z#MLDSA65PrivateKey.private_bytes_raw.  r$   r   Nc                     yrn   r   ro   s      r   rp   zMLDSA65PrivateKey.sign7  r$   r   c                     yrr   r   rs   s     r   rt   zMLDSA65PrivateKey.sign_mu=  r$   r   c                     yr9   r   r&   s    r   r:   zMLDSA65PrivateKey.__copy__F  r$   r   c                     yr<   r   r=   s     r   r?   zMLDSA65PrivateKey.__deepcopy__L  r$   r   )rA   r   )r   r   rA   r   r   rw   rD   rE   rx   ry   )r>   rN   rA   r   rz   r   r   r   r   r     r{   r   r   c                  R   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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_bytesX  r   r   c                     yr   r   r   s      r   r#   zMLDSA87PublicKey.public_bytesd  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_rawn  r$   r   Nc                     yr)   r   r*   s       r   r-   zMLDSA87PublicKey.verifyw  r$   r   c                     yr/   r   r0   s      r   r2   zMLDSA87PublicKey.verify_mu  r$   r   c                     yr4   r   r5   s     r   r7   zMLDSA87PublicKey.__eq__  r$   r   c                     yr9   r   r&   s    r   r:   zMLDSA87PublicKey.__copy__  r$   r   c                     yr<   r   r=   s     r   r?   zMLDSA87PublicKey.__deepcopy__  r$   r   )r   r@   rA   r   rB   rD   rE   rF   rI   rJ   rA   r   )r>   rN   rA   r   rO   r   r   r   r   r   W  rV   r   r   c                  L   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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_keyr\   s     r   r]   zMLDSA87PrivateKey.generate  r^   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   ra   z!MLDSA87PrivateKey.from_seed_bytes  rb   r   c                     y)zD
        The MLDSA87PublicKey derived from the private key.
        Nr   r&   s    r   rd   zMLDSA87PrivateKey.public_key  r$   r   c                     yrf   r   rg   s       r   ri   zMLDSA87PrivateKey.private_bytes  r$   r   c                     yrk   r   r&   s    r   rl   z#MLDSA87PrivateKey.private_bytes_raw  r$   r   Nc                     yrn   r   ro   s      r   rp   zMLDSA87PrivateKey.sign  r$   r   c                     yrr   r   rs   s     r   rt   zMLDSA87PrivateKey.sign_mu  r$   r   c                     yr9   r   r&   s    r   r:   zMLDSA87PrivateKey.__copy__  r$   r   c                     yr<   r   r=   s     r   r?   zMLDSA87PrivateKey.__deepcopy__  r$   r   )rA   r   )r   r   rA   r   r   rw   rD   rE   rx   ry   )r>   rN   rA   r   rz   r   r   r   r   r     r{   r   r   )
__future__r   rT   cryptography.exceptionsr   r   "cryptography.hazmat.bindings._rustr   r   cryptography.hazmat.primitivesr   cryptography.utilsr   ABCMetar
   hasattrregisterr   rY   r}   r   r   r   r   r   r   <module>r      st  
 # 
 B F 9 %G GT <!l00AABO#++ Od <!|11CCDG GT <!l00AABO#++ Od <!|11CCDG GT <!l00AABO#++ Od <!|11CCD "r   