ó
    &ÝNjzr  ã            
       óP  • % S SK Jr  S SKJr  S SKJrJr  S SKJ	r	   \R                  " 5       r\\S'   \R                  " 5       r\\S'   \R                   " 5       r\\S'   \R$                  " 5       r\\S'   \R(                  " 5       r\\S	'   \\-   r\R.                  " 5       r\\S
'   \R2                  " 5       r\\S'   \R6                  " 5       r\\S'   \R:                  " 5       r\\S'   \R>                  " 5       r \\S'   \ \-   r!\RD                  " 5       r#\\S'   \RH                  " 5       r%\\S'   \RL                  " 5       r'\\S'   \RP                  " 5       r)\\S'   \RT                  " 5       r+\\S'   \+\)-   r,\RZ                  " 5       r.\\S'   \R^                  " 5       r0\\S'   \Rb                  " 5       r2\\S'   \Rf                  " 5       r4\\S'   \Rj                  " 5       r6\\S'   \6\4-   r7\Rp                  " 5       r9\\S'   \Rt                  " 5       r;\\S'   \Rx                  " 5       r=\\S'   \R|                  " 5       r?\\S'   \R€                  " 5       rA\\S'   \A\?-   r7\R„                  " 5       rC\\S'   \Rˆ                  " 5       rE\\S'   \RŒ                  " 5       rG\\S '   \R�                  " 5       rI\\S!'   \R”                  " 5       rK\\S"'   \K\I-   r7S#\LS$\\L   S%\LS&\LS'\L4
S( jrMS)\LS$\\L   S%\LS&\LS'\L4
S* jrNS#\LS$\\L   S%\LS&\LS'\L4
S+ jrOS)\LS$\\L   S%\LS&\LS'\L4
S, jrPS#\LS$\\L   S%\LS&\LS'\L4
S- jrQS)\LS$\\L   S%\LS&\LS'\L4
S. jrRS#\LS$\\L   S%\LS&\LS'\L4
S/ jrSS)\LS$\\L   S%\LS&\LS'\L4
S0 jrTS#\LS$\\L   S%\LS&\LS'\L4
S1 jrUS)\LS$\\L   S%\LS&\LS'\L4
S2 jrVS#\LS$\\L   S%\LS&\LS'\L4
S3 jrWS)\LS$\\L   S%\LS&\LS'\L4
S4 jrXg5)6é    )ÚOptional)Ú
exceptions)ÚffiÚlib)ÚensureÚ*crypto_aead_chacha20poly1305_ietf_KEYBYTESÚ+crypto_aead_chacha20poly1305_ietf_NSECBYTESÚ+crypto_aead_chacha20poly1305_ietf_NPUBBYTESÚ(crypto_aead_chacha20poly1305_ietf_ABYTESÚ2crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAXÚ%crypto_aead_chacha20poly1305_KEYBYTESÚ&crypto_aead_chacha20poly1305_NSECBYTESÚ&crypto_aead_chacha20poly1305_NPUBBYTESÚ#crypto_aead_chacha20poly1305_ABYTESÚ-crypto_aead_chacha20poly1305_MESSAGEBYTES_MAXÚ+crypto_aead_xchacha20poly1305_ietf_KEYBYTESÚ,crypto_aead_xchacha20poly1305_ietf_NSECBYTESÚ,crypto_aead_xchacha20poly1305_ietf_NPUBBYTESÚ)crypto_aead_xchacha20poly1305_ietf_ABYTESÚ3crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAXÚcrypto_aead_aegis256_KEYBYTESÚcrypto_aead_aegis256_NSECBYTESÚcrypto_aead_aegis256_NPUBBYTESÚcrypto_aead_aegis256_ABYTESÚ%crypto_aead_aegis256_MESSAGEBYTES_MAXÚcrypto_aead_aegis128l_KEYBYTESÚcrypto_aead_aegis128l_NSECBYTESÚcrypto_aead_aegis128l_NPUBBYTESÚcrypto_aead_aegis128l_ABYTESÚ&crypto_aead_aegis128l_MESSAGEBYTES_MAXÚcrypto_aead_aes256gcm_KEYBYTESÚcrypto_aead_aes256gcm_NSECBYTESÚcrypto_aead_aes256gcm_NPUBBYTESÚcrypto_aead_aes256gcm_ABYTESÚ&crypto_aead_aes256gcm_MESSAGEBYTES_MAXÚmessageÚaadÚnonceÚkeyÚreturnc                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U(       a  Un[        U5      nO[        R                  nSnU[        -   n[        R                  " S	5      n[        R                  " S
U5      n	[        R                   " X˜XXV[        R                  X#5	      n
[        U
S:H  S[        R"                  S9  [        R$                  " X˜S   5      SS $ )a&  
Encrypt the given ``message`` using the IETF ratified chacha20poly1305
construction described in RFC7539.

:param message:
:type message: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: authenticated ciphertext
:rtype: bytes
ú Input message type must be bytes©Úraisingú%Message must be at most {} bytes longNú%Additional data must be bytes or Noneú,Nonce must be a {} bytes long bytes sequenceú*Key must be a {} bytes long bytes sequencer   úunsigned long long *úunsigned char[]úEncryption failed.)r   Ú
isinstanceÚbytesÚexcÚ	TypeErrorÚlenr   ÚformatÚ
ValueErrorr
   r   r   ÚNULLr   Únewr   Ú)crypto_aead_chacha20poly1305_ietf_encryptÚCryptoErrorÚbuffer©r&   r'   r(   r)   ÚmlenÚ_aadÚaalenÚmxoutÚclenÚ
ciphertextÚress              ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/nacl/bindings/crypto_aead.pyr?   r?   x   s™  € ô$ Ü�7œEÓ"Ø*Ü—‘òô ˆw‹<€Dä
ØÔBÑBØ/×6Ñ6Ü>ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	FÜ�‹JÔEÑEØ6×=Ñ=Ü7ó	
ô —‘òô Ü�3œÓ÷ 	CÜ�‹HÔBÑBØ4×;Ñ;Ü6ó	
ô —‘òö ØˆÜ�C“‰ä�x‰xˆØˆàÔ;Ñ;€Eä�7Š7Ð)Ó*€Dä—’Ð*¨EÓ2€Jä
×
7Ò
7Ø˜'¨´c·h±hÀó€Cô ˆ3�!‰8Ð)´3·?±?ÒCÜ�:Š:�j q¡'Ó*©1Ð-Ð-ó    rH   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U[        -
  n[        R                  " S5      n[        R                  " S	U5      nU(       a  Un[        U5      n	O[        R                  nS
n	[        R                   " Xv[        R                  XX‰X#5	      n
[        U
S
:H  S[        R"                  S9  [        R$                  " XvS
   5      SS $ )a  
Decrypt the given ``ciphertext`` using the IETF ratified chacha20poly1305
construction described in RFC7539.

:param ciphertext:
:type ciphertext: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: message
:rtype: bytes
ú#Input ciphertext type must be bytesr-   ú(Ciphertext must be at most {} bytes longNr0   r1   r2   r3   r4   r   úDecryption failed.)r   r6   r7   r8   r9   r:   Ú*_aead_chacha20poly1305_ietf_CRYPTBYTES_MAXr;   r<   r
   r   r   r   r>   r=   r   Ú)crypto_aead_chacha20poly1305_ietf_decryptr@   rA   ©rH   r'   r(   r)   rG   rF   rC   r&   rD   rE   rI   s              rJ   rQ   rQ   Ç   s™  € ô$ Ü�:œuÓ%Ø-Ü—‘òô ˆz‹?€Dä
ØÔ:Ñ:Ø2×9Ñ9Ü6ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	FÜ�‹JÔEÑEØ6×=Ñ=Ü7ó	
ô —‘òô Ü�3œÓ÷ 	CÜ�‹HÔBÑBØ4×;Ñ;Ü6ó	
ô —‘òð Ô;Ñ;€Eä�7Š7Ð)Ó*€DÜ�gŠgÐ'¨Ó/€Gæ
ØˆÜ�C“‰ä�x‰xˆØˆä
×
7Ò
7Ø”s—x‘x °4Àó€Cô ˆ3�!‰8Ð)´3·?±?ÒCä�:Š:�g A™wÓ'©Ð*Ð*rK   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U(       a  Un[        U5      nO[        R                  nSnU[        -   n[        R                  " S	5      n[        R                  " S
U5      n	[        R                   " X˜XXV[        R                  X#5	      n
[        U
S:H  S[        R"                  S9  [        R$                  " X˜S   5      SS $ )a'  
Encrypt the given ``message`` using the "legacy" construction
described in draft-agl-tls-chacha20poly1305.

:param message:
:type message: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: authenticated ciphertext
:rtype: bytes
r,   r-   r/   Nr0   r1   r2   r   r3   r4   r5   )r   r6   r7   r8   r9   r:   r   r;   r<   r   r   r   r=   r   r>   r   Ú$crypto_aead_chacha20poly1305_encryptr@   rA   rB   s              rJ   rT   rT     s˜  € ô$ Ü�7œEÓ"Ø*Ü—‘òô ˆw‹<€Dä
ØÔ=Ñ=Ø/×6Ñ6Ü9ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	AÜ�‹JÔ@Ñ@Ø6×=Ñ=Ü2ó	
ô —‘òô Ü�3œÓ÷ 	>Ü�‹HÔ=Ñ=Ø4×;Ñ;Ü1ó	
ô —‘òö ØˆÜ�C“‰ä�x‰xˆØˆàÔ;Ñ;€Eä�7Š7Ð)Ó*€Dä—’Ð*¨EÓ2€Jä
×
2Ò
2Ø˜'¨´c·h±hÀó€Cô ˆ3�!‰8Ð)´3·?±?ÒCÜ�:Š:�j q¡'Ó*©1Ð-Ð-rK   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U[        -
  n[        R                  " S5      n[        R                  " S	U5      nU(       a  Un[        U5      n	O[        R                  nS
n	[        R                   " Xv[        R                  XX‰X#5	      n
[        U
S
:H  S[        R"                  S9  [        R$                  " XvS
   5      SS $ )a8  
Decrypt the given ``ciphertext`` using the "legacy" construction
described in draft-agl-tls-chacha20poly1305.

:param ciphertext: authenticated ciphertext
:type ciphertext: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: message
:rtype: bytes
rM   r-   rN   Nr0   r1   r2   r3   r4   r   rO   )r   r6   r7   r8   r9   r:   Ú%_aead_chacha20poly1305_CRYPTBYTES_MAXr;   r<   r   r   r   r   r>   r=   r   Ú$crypto_aead_chacha20poly1305_decryptr@   rA   rR   s              rJ   rW   rW   e  s˜  € ô$ Ü�:œuÓ%Ø-Ü—‘òô ˆz‹?€Dä
ØÔ5Ñ5Ø2×9Ñ9Ü1ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	AÜ�‹JÔ@Ñ@Ø6×=Ñ=Ü2ó	
ô —‘òô Ü�3œÓ÷ 	>Ü�‹HÔ=Ñ=Ø4×;Ñ;Ü1ó	
ô —‘òð Ô6Ñ6€Eä�7Š7Ð)Ó*€DÜ�gŠgÐ'¨Ó/€Gæ
ØˆÜ�C“‰ä�x‰xˆØˆä
×
2Ò
2Ø”s—x‘x °4Àó€Cô ˆ3�!‰8Ð)´3·?±?ÒCä�:Š:�g A™wÓ'©Ð*Ð*rK   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U(       a  Un[        U5      nO[        R                  nSnU[        -   n[        R                  " S	5      n[        R                  " S
U5      n	[        R                   " X˜XXV[        R                  X#5	      n
[        U
S:H  S[        R"                  S9  [        R$                  " X˜S   5      SS $ )a  
Encrypt the given ``message`` using the long-nonces xchacha20poly1305
construction.

:param message:
:type message: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: authenticated ciphertext
:rtype: bytes
r,   r-   r/   Nr0   r1   r2   r   r3   r4   r5   )r   r6   r7   r8   r9   r:   r   r;   r<   r   r   r   r=   r   r>   r   Ú*crypto_aead_xchacha20poly1305_ietf_encryptr@   rA   rB   s              rJ   rY   rY   ´  s™  € ô$ Ü�7œEÓ"Ø*Ü—‘òô ˆw‹<€Dä
ØÔCÑCØ/×6Ñ6Ü?ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	GÜ�‹JÔFÑFØ6×=Ñ=Ü8ó	
ô —‘òô Ü�3œÓ÷ 	DÜ�‹HÔCÑCØ4×;Ñ;Ü7ó	
ô —‘òö ØˆÜ�C“‰ä�x‰xˆØˆàÔ<Ñ<€Eä�7Š7Ð)Ó*€Dä—’Ð*¨EÓ2€Jä
×
8Ò
8Ø˜'¨´c·h±hÀó€Cô ˆ3�!‰8Ð)´3·?±?ÒCÜ�:Š:�j q¡'Ó*©1Ð-Ð-rK   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U[        -
  n[        R                  " S5      n[        R                  " S	U5      nU(       a  Un[        U5      n	O[        R                  nS
n	[        R                   " Xv[        R                  XX‰X#5	      n
[        U
S
:H  S[        R"                  S9  [        R$                  " XvS
   5      SS $ )a!  
Decrypt the given ``ciphertext`` using the long-nonces xchacha20poly1305
construction.

:param ciphertext: authenticated ciphertext
:type ciphertext: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: message
:rtype: bytes
rM   r-   rN   Nr0   r1   r2   r3   r4   r   rO   )r   r6   r7   r8   r9   r:   Ú+_aead_xchacha20poly1305_ietf_CRYPTBYTES_MAXr;   r<   r   r   r   r   r>   r=   r   Ú*crypto_aead_xchacha20poly1305_ietf_decryptr@   rA   rR   s              rJ   r\   r\     s™  € ô$ Ü�:œuÓ%Ø-Ü—‘òô ˆz‹?€Dä
ØÔ;Ñ;Ø2×9Ñ9Ü7ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	GÜ�‹JÔFÑFØ6×=Ñ=Ü8ó	
ô —‘òô Ü�3œÓ÷ 	DÜ�‹HÔCÑCØ4×;Ñ;Ü7ó	
ô —‘òð Ô<Ñ<€EÜ�7Š7Ð)Ó*€DÜ�gŠgÐ'¨Ó/€Gæ
ØˆÜ�C“‰ä�x‰xˆØˆä
×
8Ò
8Ø”s—x‘x °4Àó€Cô ˆ3�!‰8Ð)´3·?±?ÒCä�:Š:�g A™wÓ'©Ð*Ð*rK   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U(       a  Un[        U5      nO[        R                  nSnU[        -   n[        R                  " S	5      n[        R                  " S
U5      n	[        R                   " X˜XXV[        R                  X#5	      n
[        U
S:H  S[        R"                  S9  [        R$                  " X˜S   5      SS $ )zü
Encrypt the given ``message`` using the AEGIS-256
construction.

:param message:
:type message: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: authenticated ciphertext
:rtype: bytes
r,   r-   r/   Nr0   r1   r2   r   r3   r4   r5   )r   r6   r7   r8   r9   r:   r   r;   r<   r   r   r   r=   r   r>   r   Úcrypto_aead_aegis256_encryptr@   rA   rB   s              rJ   r^   r^   Q  s”  € ô$ Ü�7œEÓ"Ø*Ü—‘òô ˆw‹<€Dä
ØÔ5Ñ5Ø/×6Ñ6Ü1ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	9Ü�‹JÔ8Ñ8Ø6×=Ñ=Ü*ó	
ô —‘òô Ü�3œÓ×L¤3 s£8Ô/LÑ#LØ4×;Ñ;Ü)ó	
ô —‘òö ØˆÜ�C“‰ä�x‰xˆØˆàÔ.Ñ.€Eä�7Š7Ð)Ó*€Dä—’Ð*¨EÓ2€Jä
×
*Ò
*Ø˜'¨´c·h±hÀó€Cô ˆ3�!‰8Ð)´3·?±?ÒCÜ�:Š:�j q¡'Ó*©1Ð-Ð-rK   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U[        -
  n[        R                  " S5      n[        R                  " S	U5      nU(       a  Un[        U5      n	O[        R                  nS
n	[        R                   " Xv[        R                  XX‰X#5	      n
[        U
S
:H  S[        R"                  S9  [        R$                  " XvS
   5      SS $ )a  
Decrypt the given ``ciphertext`` using the AEGIS-256
construction.

:param ciphertext: authenticated ciphertext
:type ciphertext: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: message
:rtype: bytes
rM   r-   rN   Nr0   r1   r2   r3   r4   r   rO   )r   r6   r7   r8   r9   r:   Ú_aead_aegis256_CRYPTBYTES_MAXr;   r<   r   r   r   r   r>   r=   r   Úcrypto_aead_aegis256_decryptr@   rA   rR   s              rJ   ra   ra   Ÿ  s”  € ô$ Ü�:œuÓ%Ø-Ü—‘òô ˆz‹?€Dä
ØÔ-Ñ-Ø2×9Ñ9Ü)ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	9Ü�‹JÔ8Ñ8Ø6×=Ñ=Ü*ó	
ô —‘òô Ü�3œÓ×L¤3 s£8Ô/LÑ#LØ4×;Ñ;Ü)ó	
ô —‘òð Ô.Ñ.€EÜ�7Š7Ð)Ó*€DÜ�gŠgÐ'¨Ó/€Gæ
ØˆÜ�C“‰ä�x‰xˆØˆä
×
*Ò
*Ø”s—x‘x °4Àó€Cô ˆ3�!‰8Ð)´3·?±?ÒCä�:Š:�g A™wÓ'©Ð*Ð*rK   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U(       a  Un[        U5      nO[        R                  nSnU[        -   n[        R                  " S	5      n[        R                  " S
U5      n	[        R                   " X˜XXV[        R                  X#5	      n
[        U
S:H  S[        R"                  S9  [        R$                  " X˜S   5      SS $ )zý
Encrypt the given ``message`` using the AEGIS-128L
construction.

:param message:
:type message: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: authenticated ciphertext
:rtype: bytes
r,   r-   r/   Nr0   r1   r2   r   r3   r4   r5   )r   r6   r7   r8   r9   r:   r    r;   r<   r   r   r   r=   r   r>   r   Úcrypto_aead_aegis128l_encryptr@   rA   rB   s              rJ   rc   rc   ì  s”  € ô$ Ü�7œEÓ"Ø*Ü—‘òô ˆw‹<€Dä
ØÔ6Ñ6Ø/×6Ñ6Ü2ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	:Ü�‹JÔ9Ñ9Ø6×=Ñ=Ü+ó	
ô —‘òô Ü�3œÓ×M¤3 s£8Ô/MÑ#MØ4×;Ñ;Ü*ó	
ô —‘òö ØˆÜ�C“‰ä�x‰xˆØˆàÔ/Ñ/€Eä�7Š7Ð)Ó*€Dä—’Ð*¨EÓ2€Jä
×
+Ò
+Ø˜'¨´c·h±hÀó€Cô ˆ3�!‰8Ð)´3·?±?ÒCÜ�:Š:�j q¡'Ó*©1Ð-Ð-rK   c                 óö  • [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  U[        -
  n[        R                  " S5      n[        R                  " S	U5      nU(       a  Un[        U5      n	O[        R                  nS
n	[        R                   " Xv[        R                  XX‰X#5	      n
[        U
S
:H  S[        R"                  S9  [        R$                  " XvS
   5      SS $ )a  
Decrypt the given ``ciphertext`` using the AEGIS-128L
construction.

:param ciphertext: authenticated ciphertext
:type ciphertext: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: message
:rtype: bytes
rM   r-   rN   Nr0   r1   r2   r3   r4   r   rO   )r   r6   r7   r8   r9   r:   r`   r;   r<   r   r   r   r   r>   r=   r   Úcrypto_aead_aegis128l_decryptr@   rA   rR   s              rJ   re   re   :  s”  € ô$ Ü�:œuÓ%Ø-Ü—‘òô ˆz‹?€Dä
ØÔ-Ñ-Ø2×9Ñ9Ü)ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	:Ü�‹JÔ9Ñ9Ø6×=Ñ=Ü+ó	
ô —‘òô Ü�3œÓ×M¤3 s£8Ô/MÑ#MØ4×;Ñ;Ü*ó	
ô —‘òð Ô/Ñ/€EÜ�7Š7Ð)Ó*€DÜ�gŠgÐ'¨Ó/€Gæ
ØˆÜ�C“‰ä�x‰xˆØˆä
×
+Ò
+Ø”s—x‘x °4Àó€Cô ˆ3�!‰8Ð)´3·?±?ÒCä�:Š:�g A™wÓ'©Ð*Ð*rK   c                 óT  • [        [        R                  " 5       S:H  S[        R                  S9  [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  S	R                  [        5      [        R                  S9  U(       a  Un[        U5      nO[        R                  nS
nU[         -   n[        R"                  " S5      n[        R"                  " SU5      n	[        R$                  " X˜XXV[        R                  X#5	      n
[        U
S
:H  S[        R&                  S9  [        R(                  " X˜S
   5      SS $ )aC  
Encrypt the given ``message`` using the AES-256-GCM
construction.  Requires the Intel AES-NI extensions,
or the ARM Crypto extensions.

:param message:
:type message: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: authenticated ciphertext
:rtype: bytes
é   ú+Construction requires hardware accelerationr-   r,   r/   Nr0   r1   r2   r   r3   r4   r5   )r   r   Ú"crypto_aead_aes256gcm_is_availabler8   ÚUnavailableErrorr6   r7   r9   r:   r%   r;   r<   r#   r!   r   r=   r$   r>   Úcrypto_aead_aes256gcm_encryptr@   rA   rB   s              rJ   rk   rk   ‡  s»  € ô& Ü×.Ò.Ó0°AÑ5Ø5Ü×$Ñ$òô Ü�7œEÓ"Ø*Ü—‘òô ˆw‹<€Dä
ØÔ6Ñ6Ø/×6Ñ6Ü2ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	:Ü�‹JÔ9Ñ9Ø6×=Ñ=Ü+ó	
ô —‘òô Ü�3œÓ×M¤3 s£8Ô/MÑ#MØ4×;Ñ;Ü*ó	
ô —‘òö ØˆÜ�C“‰ä�x‰xˆØˆàÔ/Ñ/€Eä�7Š7Ð)Ó*€Dä—’Ð*¨EÓ2€Jä
×
+Ò
+Ø˜'¨´c·h±hÀó€Cô ˆ3�!‰8Ð)´3·?±?ÒCÜ�:Š:�j q¡'Ó*©1Ð-Ð-rK   c                 óT  • [        [        R                  " 5       S:H  S[        R                  S9  [        [        U [        5      S[        R                  S9  [        U 5      n[        U[        :*  SR                  [        5      [        R                  S9  [        [        U[        5      =(       d    USL S[        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  SR                  [        5      [        R                  S9  [        [        U[        5      =(       a    [        U5      [        :H  S	R                  [        5      [        R                  S9  U[        -
  n[        R                   " S
5      n[        R                   " SU5      nU(       a  Un[        U5      n	O[        R"                  nSn	[        R$                  " Xv[        R"                  XX‰X#5	      n
[        U
S:H  S[        R&                  S9  [        R(                  " XvS   5      SS $ )aT  
Decrypt the given ``ciphertext`` using the AES-256-GCM
construction.  Requires the Intel AES-NI extensions,
or the ARM Crypto extensions.

:param ciphertext: authenticated ciphertext
:type ciphertext: bytes
:param aad:
:type aad: Optional[bytes]
:param nonce:
:type nonce: bytes
:param key:
:type key: bytes
:return: message
:rtype: bytes
rg   rh   r-   rM   rN   Nr0   r1   r2   r3   r4   r   rO   )r   r   ri   r8   rj   r6   r7   r9   r:   r`   r;   r<   r#   r!   r$   r   r>   r=   Úcrypto_aead_aes256gcm_decryptr@   rA   rR   s              rJ   rm   rm   Ü  s»  € ô& Ü×.Ò.Ó0°AÑ5Ø5Ü×$Ñ$òô Ü�:œuÓ%Ø-Ü—‘òô ˆz‹?€Dä
ØÔ-Ñ-Ø2×9Ñ9Ü)ó	
ô —‘òô Ü�3œÓ×/ 3¨$ ;Ø/Ü—‘òô Ü�5œ%Ó ÷ 	:Ü�‹JÔ9Ñ9Ø6×=Ñ=Ü+ó	
ô —‘òô Ü�3œÓ×M¤3 s£8Ô/MÑ#MØ4×;Ñ;Ü*ó	
ô —‘òð Ô/Ñ/€EÜ�7Š7Ð)Ó*€DÜ�gŠgÐ'¨Ó/€Gæ
ØˆÜ�C“‰ä�x‰xˆØˆä
×
+Ò
+Ø”s—x‘x °4Àó€Cô ˆ3�!‰8Ð)´3·?±?ÒCä�:Š:�g A™wÓ'©Ð*Ð*rK   N)YÚtypingr   Únaclr   r8   Únacl._sodiumr   r   Únacl.exceptionsr   Ú*crypto_aead_chacha20poly1305_ietf_keybytesr   ÚintÚ__annotations__Ú+crypto_aead_chacha20poly1305_ietf_nsecbytesr	   Ú+crypto_aead_chacha20poly1305_ietf_npubbytesr
   Ú(crypto_aead_chacha20poly1305_ietf_abytesr   Ú2crypto_aead_chacha20poly1305_ietf_messagebytes_maxr   rP   Ú%crypto_aead_chacha20poly1305_keybytesr   Ú&crypto_aead_chacha20poly1305_nsecbytesr   Ú&crypto_aead_chacha20poly1305_npubbytesr   Ú#crypto_aead_chacha20poly1305_abytesr   Ú-crypto_aead_chacha20poly1305_messagebytes_maxr   rV   Ú+crypto_aead_xchacha20poly1305_ietf_keybytesr   Ú,crypto_aead_xchacha20poly1305_ietf_nsecbytesr   Ú,crypto_aead_xchacha20poly1305_ietf_npubbytesr   Ú)crypto_aead_xchacha20poly1305_ietf_abytesr   Ú3crypto_aead_xchacha20poly1305_ietf_messagebytes_maxr   r[   Úcrypto_aead_aegis256_keybytesr   Úcrypto_aead_aegis256_nsecbytesr   Úcrypto_aead_aegis256_npubbytesr   Úcrypto_aead_aegis256_abytesr   Ú%crypto_aead_aegis256_messagebytes_maxr   r`   Úcrypto_aead_aegis128l_keybytesr   Úcrypto_aead_aegis128l_nsecbytesr   Úcrypto_aead_aegis128l_npubbytesr   Úcrypto_aead_aegis128l_abytesr   Ú&crypto_aead_aegis128l_messagebytes_maxr    Úcrypto_aead_aes256gcm_keybytesr!   Úcrypto_aead_aes256gcm_nsecbytesr"   Úcrypto_aead_aes256gcm_npubbytesr#   Úcrypto_aead_aes256gcm_abytesr$   Ú&crypto_aead_aes256gcm_messagebytes_maxr%   r7   r?   rQ   rT   rW   rY   r\   r^   ra   rc   re   rk   rm   © rK   rJ   Ú<module>r“      sá  ðö å "ß !Ý "ðð ×2Ò2Ó4ð +¨Có ð ×3Ò3Ó5ð ,¨Só ð ×3Ò3Ó5ð ,¨Só ð ×0Ò0Ó2ð )¨#ó ð ×:Ò:Ó<ð 3°Có ð 7Ø.ñ/ð +ð ×-Ò-Ó/ð & só ð ×.Ò.Ó0ð '¨ó ð ×.Ò.Ó0ð '¨ó ð ×+Ò+Ó-ð $ Só ð ×5Ò5Ó7ð .¨só ð 2Ø)ñ*ð &ð ×3Ò3Ó5ð ,¨Só ð ×4Ò4Ó6ð -¨có ð ×4Ò4Ó6ð -¨có ð ×1Ò1Ó3ð *¨3ó ð ×;Ò;Ó=ð 4°Só ð 8Ø/ñ0ð ,ð
 &)×%FÒ%FÓ%HÐ ˜sÓ HØ&)×&HÒ&HÓ&JÐ  Ó JØ&)×&HÒ&HÓ&JÐ  Ó JØ#&×#BÒ#BÓ#DÐ ˜SÓ Dà×-Ò-Ó/ð & só ð *Ð,GÑGð ð '*×&HÒ&HÓ&JÐ  Ó JØ'*×'JÒ'JÓ'LÐ  Ó LØ'*×'JÒ'JÓ'LÐ  Ó LØ$'×$DÒ$DÓ$FÐ ˜cÓ Fà×.Ò.Ó0ð '¨ó ð +Ð-IÑIð ð '*×&HÒ&HÓ&JÐ  Ó JØ'*×'JÒ'JÓ'LÐ  Ó LØ'*×'JÒ'JÓ'LÐ  Ó LØ$'×$DÒ$DÓ$FÐ ˜cÓ Fà×.Ò.Ó0ð '¨ó ð +Ð-IÑIð ð
L.ØðL.Ø! %™ðL.Ø16ðL.Ø=BðL.à
ôL.ð^L+ØðL+Ø$ U™OðL+Ø49ðL+Ø@EðL+à
ôL+ð^L.ØðL.Ø! %™ðL.Ø16ðL.Ø=BðL.à
ôL.ð^L+ØðL+Ø$ U™OðL+Ø49ðL+Ø@EðL+à
ôL+ð^L.ØðL.Ø! %™ðL.Ø16ðL.Ø=BðL.à
ôL.ð^K+ØðK+Ø$ U™OðK+Ø49ðK+Ø@EðK+à
ôK+ð\K.ØðK.Ø! %™ðK.Ø16ðK.Ø=BðK.à
ôK.ð\J+ØðJ+Ø$ U™OðJ+Ø49ðJ+Ø@EðJ+à
ôJ+ðZK.ØðK.Ø! %™ðK.Ø16ðK.Ø=BðK.à
ôK.ð\J+ØðJ+Ø$ U™OðJ+Ø49ðJ+Ø@EðJ+à
ôJ+ðZR.ØðR.Ø! %™ðR.Ø16ðR.Ø=BðR.à
ôR.ðjQ+ØðQ+Ø$ U™OðQ+Ø49ðQ+Ø@EðQ+à
õQ+rK   