§
    ¥”jÝ  ã                  óJ  — 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                     ej        j        ¦  «          G d„ dej        ¬	¦  «        Z eed
¦  «        re                     ej        j        ¦  «          G d„ dej        ¬	¦  «        Z eed
¦  «        re                     ej        j        ¦  «          G d„ dej        ¬	¦  «        Z eed
¦  «        r!e                     ej        j        ¦  «         dS dS )é    )Ú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„¦   «         Z	ej        dd„¦   «         Z
ej        dd„¦   «         Zej        dd„¦   «         ZdS )ÚMLKEM768PublicKeyÚdatar   Úreturnc                ó¨   — ddl m} |                     ¦   «         st          dt          j        ¦  «        ‚t          j                             |¦  «        S ©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©Úclsr   r   s      ú~/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/asymmetric/mlkem.pyÚfrom_public_bytesz#MLKEM768PublicKey.from_public_bytes   s\   € àHÐHÐHÐHÐHÐHà×&Ò&Ñ(Ô(ð 	Ý&Ø>ÝÔ9ñô ð õ
 Ô!×<Ò<¸TÑBÔBÐBó    útuple[bytes, bytes]c                ó   — dS ©zC
        Encapsulate: returns (shared_secret, ciphertext).
        N© ©Úselfs    r   ÚencapsulatezMLKEM768PublicKey.encapsulate   ó   € € € r   Úencodingú_serialization.EncodingÚformatú_serialization.PublicFormatÚbytesc                ó   — dS ©z9
        The serialized bytes of the public key.
        Nr   ©r!   r$   r&   s      r   Úpublic_byteszMLKEM768PublicKey.public_bytes"   r#   r   c                ó   — dS )z—
        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_rawz"MLKEM768PublicKey.public_bytes_raw,   r#   r   ÚotherÚobjectÚboolc                ó   — dS ©z"
        Checks equality.
        Nr   ©r!   r/   s     r   Ú__eq__zMLKEM768PublicKey.__eq__5   r#   r   c                ó   — dS ©z!
        Returns a copy.
        Nr   r    s    r   Ú__copy__zMLKEM768PublicKey.__copy__;   r#   r   ÚmemoÚdictc                ó   — dS ©z&
        Returns a deep copy.
        Nr   ©r!   r9   s     r   Ú__deepcopy__zMLKEM768PublicKey.__deepcopy__A   r#   r   N)r   r   r   r
   ©r   r   ©r$   r%   r&   r'   r   r(   ©r   r(   ©r/   r0   r   r1   ©r   r
   )r9   r:   r   r
   ©Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   ÚabcÚabstractmethodr"   r,   r.   r5   r8   r>   r   r   r   r
   r
      s  € € € € € Øð	Cð 	Cð 	Cñ „[ð	Cð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð ð 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„¦   «         Zej        dd„¦   «         Zej        dd„¦   «         ZdS )ÚMLKEM768PrivateKeyr   c                ó¦   — ddl m} |                     ¦   «         st          dt          j        ¦  «        ‚t          j                             ¦   «         S r   )	r   r   r   r   r   r   r   r   Úgenerate_mlkem768_key©r   r   s     r   ÚgeneratezMLKEM768PrivateKey.generateM   sZ   € àHÐHÐHÐHÐHÐHà×&Ò&Ñ(Ô(ð 	Ý&Ø>ÝÔ9ñô ð õ
 Ô!×7Ò7Ñ9Ô9Ð9r   r   r   c                ó¨   — ddl m} |                     ¦   «         st          dt          j        ¦  «        ‚t          j                             |¦  «        S r   )	r   r   r   r   r   r   r   r   Úfrom_mlkem768_seed_bytesr   s      r   Úfrom_seed_bytesz"MLKEM768PrivateKey.from_seed_bytesY   s\   € àHÐHÐHÐHÐHÐHà×&Ò&Ñ(Ô(ð 	Ý&Ø>ÝÔ9ñô ð õ
 Ô!×:Ò:¸4Ñ@Ô@Ð@r   Ú
ciphertextr(   c                ó   — dS ©z5
        Decapsulate: returns shared_secret.
        Nr   ©r!   rU   s     r   ÚdecapsulatezMLKEM768PrivateKey.decapsulatee   r#   r   r
   c                ó   — dS )zF
        The MLKEM768PublicKey derived from this private key.
        Nr   r    s    r   Ú
public_keyzMLKEM768PrivateKey.public_keyk   r#   r   r$   r%   r&   ú_serialization.PrivateFormatÚencryption_algorithmú)_serialization.KeySerializationEncryptionc                ó   — dS ©z:
        The serialized bytes of the private key.
        Nr   ©r!   r$   r&   r]   s       r   Úprivate_bytesz MLKEM768PrivateKey.private_bytesq   r#   r   c                ó   — dS ©z�
        The raw bytes of the private key (64-byte seed).
        Equivalent to private_bytes(Raw, Raw, NoEncryption()).
        Nr   r    s    r   Úprivate_bytes_rawz$MLKEM768PrivateKey.private_bytes_raw|   r#   r   c                ó   — dS r7   r   r    s    r   r8   zMLKEM768PrivateKey.__copy__ƒ   r#   r   r9   r:   c                ó   — dS r<   r   r=   s     r   r>   zMLKEM768PrivateKey.__deepcopy__‰   r#   r   N)r   rM   )r   r   r   rM   ©rU   r   r   r(   rC   ©r$   r%   r&   r\   r]   r^   r   r(   rA   )r9   r:   r   rM   ©rE   rF   rG   rH   rQ   rT   rI   rJ   rY   r[   rb   re   r8   r>   r   r   r   rM   rM   L   s.  € € € € € Øð	:ð 	:ð 	:ñ „[ð	:ð ð	Að 	Að 	Añ „[ð	Að 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð ð r   rM   c                  óò   — e Z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„¦   «         Z
ej        dd„¦   «         Zej        dd„¦   «         ZdS )ÚMLKEM1024PublicKeyr   r   r   c                ó¨   — ddl m} |                     ¦   «         st          dt          j        ¦  «        ‚t          j                             |¦  «        S ©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   z$MLKEM1024PublicKey.from_public_bytes•   s\   € àHÐHÐHÐHÐHÐHà×&Ò&Ñ(Ô(ð 	Ý&Ø?ÝÔ9ñô ð õ
 Ô!×=Ò=¸dÑCÔCÐCr   r   c                ó   — dS r   r   r    s    r   r"   zMLKEM1024PublicKey.encapsulate¡   r#   r   r$   r%   r&   r'   r(   c                ó   — dS r*   r   r+   s      r   r,   zMLKEM1024PublicKey.public_bytes§   r#   r   c                ó   — dS )z˜
        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.   z#MLKEM1024PublicKey.public_bytes_raw±   r#   r   r/   r0   r1   c                ó   — dS r3   r   r4   s     r   r5   zMLKEM1024PublicKey.__eq__º   r#   r   c                ó   — dS r7   r   r    s    r   r8   zMLKEM1024PublicKey.__copy__À   r#   r   r9   r:   c                ó   — dS r<   r   r=   s     r   r>   zMLKEM1024PublicKey.__deepcopy__Æ   r#   r   N)r   r   r   rl   r?   r@   rA   rB   ©r   rl   )r9   r:   r   rl   rD   r   r   r   rl   rl   ”   s  € € € € € Øð	Dð 	Dð 	Dñ „[ð	Dð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð ð r   rl   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„¦   «         Zej        dd„¦   «         Zej        dd„¦   «         ZdS )ÚMLKEM1024PrivateKeyr   c                ó¦   — ddl m} |                     ¦   «         st          dt          j        ¦  «        ‚t          j                             ¦   «         S rn   )	r   r   r   r   r   r   r   r   Úgenerate_mlkem1024_keyrP   s     r   rQ   zMLKEM1024PrivateKey.generateÒ   sZ   € àHÐHÐHÐHÐHÐHà×&Ò&Ñ(Ô(ð 	Ý&Ø?ÝÔ9ñô ð õ
 Ô!×8Ò8Ñ:Ô:Ð:r   r   r   c                ó¨   — ddl m} |                     ¦   «         st          dt          j        ¦  «        ‚t          j                             |¦  «        S rn   )	r   r   r   r   r   r   r   r   Úfrom_mlkem1024_seed_bytesr   s      r   rT   z#MLKEM1024PrivateKey.from_seed_bytesÞ   s\   € àHÐHÐHÐHÐHÐHà×&Ò&Ñ(Ô(ð 	Ý&Ø?ÝÔ9ñô ð õ
 Ô!×;Ò;¸DÑAÔAÐAr   rU   r(   c                ó   — dS rW   r   rX   s     r   rY   zMLKEM1024PrivateKey.decapsulateê   r#   r   rl   c                ó   — dS )zG
        The MLKEM1024PublicKey derived from this private key.
        Nr   r    s    r   r[   zMLKEM1024PrivateKey.public_keyð   r#   r   r$   r%   r&   r\   r]   r^   c                ó   — dS r`   r   ra   s       r   rb   z!MLKEM1024PrivateKey.private_bytesö   r#   r   c                ó   — dS rd   r   r    s    r   re   z%MLKEM1024PrivateKey.private_bytes_raw  r#   r   c                ó   — dS r7   r   r    s    r   r8   zMLKEM1024PrivateKey.__copy__  r#   r   r9   r:   c                ó   — dS r<   r   r=   s     r   r>   z MLKEM1024PrivateKey.__deepcopy__  r#   r   N)r   rx   )r   r   r   rx   rh   rv   ri   rA   )r9   r:   r   rx   rj   r   r   r   rx   rx   Ñ   s.  € € € € € Øð	;ð 	;ð 	;ñ „[ð	;ð ð	Bð 	Bð 	Bñ „[ð	Bð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð 	Ôðð ð ñ Ôðð
 	Ôðð ð ñ Ôðð ð r   rx   )Ú
__future__r   rI   Úcryptography.exceptionsr   r   Ú"cryptography.hazmat.bindings._rustr   r   Úcryptography.hazmat.primitivesr   Úcryptography.utilsr   ÚABCMetar
   ÚhasattrÚregisterr   rM   rl   rx   r   r   r   ú<module>r‹      s   ðð
 #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
à BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ FÐ FÐ FÐ FÐ FÐ FØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø %Ð %Ð %Ð %Ð %Ð %ð6ð 6ð 6ð 6ð 6 #¤+ð 6ñ 6ô 6ð 6ðr €7ˆ<˜Ñ!Ô!ð EØ×Ò˜|Ô1ÔCÑDÔDÐDðAð Að Að Að A 3¤;ð Añ Aô Að AðH €7ˆ<˜Ñ!Ô!ð GØ×Ò Ô 2Ô EÑFÔFÐFð6ð 6ð 6ð 6ð 6 3¤;ð 6ñ 6ô 6ð 6ðr €7ˆ<˜Ñ!Ô!ð GØ×Ò Ô 2Ô EÑFÔFÐFðAð Að Að Að A C¤Kð Añ Aô Að AðH €7ˆ<˜Ñ!Ô!ð IØ× Ò  Ô!3Ô!GÑHÔHÐHÐHÐHðIð Ir   