§
    cÒ³g  ã                  ó¦   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 dd„Z	 ddd„Zdd„Z	 ddd„Z	 ddd„Z	 ddd„Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚCipher)ÚAES)ÚECB)Úbytes_eqÚwrapping_keyÚbytesÚaÚrúlist[bytes]Úreturnc                ó"  — t          t          | ¦  «        t          ¦   «         ¦  «                             ¦   «         }t	          |¦  «        }t          d¦  «        D ]„}t          |¦  «        D ]r}|                     |||         z   ¦  «        }t                               |d d…         d¬¦  «        ||z  |z   dz   z   	                    dd¬¦  «        }|dd …         ||<   ŒsŒ…| 
                    ¦   «         dk    sJ ‚|d                     |¦  «        z   S )	Né   é   Úbig©Ú	byteorderé   ©Úlengthr   éøÿÿÿó    )r   r   r   Ú	encryptorÚlenÚrangeÚupdateÚintÚ
from_bytesÚto_bytesÚfinalizeÚjoin)r   r
   r   r   ÚnÚjÚiÚbs           úd/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/keywrap.pyÚ
_wrap_corer'      s  € õ •s˜<Ñ(Ô(­#©%¬%Ñ0Ô0×:Ò:Ñ<Ô<€IÝˆA‰Œ€AÝ�1‰XŒXð 	ð 	ˆÝ�q‘”ð 	ð 	ˆAð × Ò   Q q¤T¡Ñ*Ô*ˆAå—’˜q  ! œu°�Ñ6Ô6¸1¸q¹5ÀA¹+È¹/ÑJßŠh˜a¨5ˆhÑ1Ô1ð ð �R�S�S”6ˆAˆa‰DˆDð	ð ×ÒÑÔ 3Ò&Ð&Ð&Ð&àˆs�xŠx˜‰{Œ{‰?Ðr   Úkey_to_wrapÚbackendú
typing.Anyc                óL  ‡— t          | ¦  «        dvrt          d¦  «        ‚t          ‰¦  «        dk     rt          d¦  «        ‚t          ‰¦  «        dz  dk    rt          d¦  «        ‚d}ˆfd	„t          dt          ‰¦  «        d¦  «        D ¦   «         }t          | ||¦  «        S )
N©é   é   é    ú/The wrapping key must be a valid AES key lengthr-   z)The key to wrap must be at least 16 bytesr   r   z-The key to wrap must be a multiple of 8 bytesó   ¦¦¦¦¦¦¦¦c                ó*   •— g | ]}‰||d z   …         ‘ŒS ©r   © ©Ú.0r$   r(   s     €r&   ú
<listcomp>z aes_key_wrap.<locals>.<listcomp>6   ó&   ø€ ÐGÐGÐG Aˆ�Q˜˜Q™�YÔ	ÐGÐGÐGr   )r   Ú
ValueErrorr   r'   )r   r(   r)   r
   r   s    `   r&   Úaes_key_wrapr:   '   s´   ø€ õ
 ˆ<ÑÔ Ð,Ð,ÝÐJÑKÔKÐKå
ˆ;ÑÔ˜"ÒÐÝÐDÑEÔEÐEå
ˆ;ÑÔ˜!Ñ˜qÒ Ð ÝÐHÑIÔIÐIà+€AØGÐGÐGÐG­¨qµ#°kÑ2BÔ2BÀAÑ)FÔ)FÐGÑGÔG€AÝ�l A qÑ)Ô)Ð)r   útuple[bytes, list[bytes]]c                ó2  — t          t          | ¦  «        t          ¦   «         ¦  «                             ¦   «         }t	          |¦  «        }t          t          d¦  «        ¦  «        D ]“}t          t          |¦  «        ¦  «        D ]t}t                               |d¬¦  «        ||z  |z   dz   z   	                    dd¬¦  «        ||         z   }| 
                    |¦  «        }|d d…         }|dd …         ||<   ŒuŒ”|                     ¦   «         dk    sJ ‚||fS )	Nr   r   r   r   r   r   r   r   )r   r   r   Ú	decryptorr   Úreversedr   r   r   r   r   r    )	r   r
   r   r=   r"   r#   r$   Úatrr%   s	            r&   Ú_unwrap_corer@   :   s  € õ •s˜<Ñ(Ô(­#©%¬%Ñ0Ô0×:Ò:Ñ<Ô<€IÝˆA‰Œ€AÝ•e˜A‘h”hÑÔð 	ð 	ˆÝ�% ™(œ(Ñ#Ô#ð 	ð 	ˆAå—’˜q¨E�Ñ2Ô2°q¸1±uÀ±kÀA±oÑFßŠh˜a¨5ˆhÑ1Ô1°A°a´Dñ9ˆCð
 × Ò  Ñ%Ô%ˆAØ�"�1�"”ˆAØ�R�S�S”6ˆAˆa‰DˆDð	ð ×ÒÑÔ 3Ò&Ð&Ð&Ð&Øˆaˆ4€Kr   c                óL  ‡— t          | ¦  «        dvrt          d¦  «        ‚dt          ‰¦  «                             dd¬¦  «        z   }dt          ‰¦  «        dz  z
  dz  }‰d|z  z   Št          ‰¦  «        dk    rot          t	          | ¦  «        t          ¦   «         ¦  «                             ¦   «         }|                     |‰z   ¦  «        }|                     ¦   «         d	k    sJ ‚|S ˆfd
„t          dt          ‰¦  «        d¦  «        D ¦   «         }t          | ||¦  «        S )Nr,   r0   ó   ¦YY¦é   r   r   r   ó    r   c                ó*   •— g | ]}‰||d z   …         ‘ŒS r3   r4   r5   s     €r&   r7   z-aes_key_wrap_with_padding.<locals>.<listcomp>f   ó&   ø€ ÐKÐKÐK¨ˆ[˜˜Q ™U˜Ô#ÐKÐKÐKr   r   )r   r9   r   r   r   r   r   r   r    r   r'   )r   r(   r)   ÚaivÚpadr   r%   r   s    `      r&   Úaes_key_wrap_with_paddingrI   Q   s4  ø€ õ
 ˆ<ÑÔ Ð,Ð,ÝÐJÑKÔKÐKà
¥ KÑ 0Ô 0× 9Ò 9Ø˜Eð !:ñ !ô !ñ €Cð •�KÑ Ô  1Ñ$Ñ%¨Ñ
*€CØ ¨#¡Ñ-€KÝ
ˆ;ÑÔ˜1ÒÐå�3˜|Ñ,Ô,­c©e¬eÑ4Ô4×>Ò>Ñ@Ô@ˆ	Ø×Ò˜S ;Ñ.Ñ/Ô/ˆØ×!Ò!Ñ#Ô# sÒ*Ð*Ð*Ð*ØˆàKÐKÐKÐK­U°1µc¸+Ñ6FÔ6FÈÑ-JÔ-JÐKÑKÔKˆÝ˜,¨¨QÑ/Ô/Ð/r   Úwrapped_keyc                óÞ  ‡— t          ‰¦  «        dk     rt          d¦  «        ‚t          | ¦  «        dvrt          d¦  «        ‚t          ‰¦  «        dk    r�t          t	          | ¦  «        t          ¦   «         ¦  «                             ¦   «         }|                     ‰¦  «        }|                     ¦   «         dk    sJ ‚|d d…         }|dd …         }d}nwˆfd„t          d	t          ‰¦  «        d¦  «        D ¦   «         }| 
                    d	¦  «        }	t          |¦  «        }t          | |	|¦  «        \  }}d                     |¦  «        }t                               |d
d …         d¬¦  «        }
d|z  |
z
  }t          |d d
…         d¦  «        r;d|dz
  z  |
cxk     r	d|z  k    r%n n"|d	k    r*t          || d …         d|z  ¦  «        st          ¦   «         ‚|d	k    r|S |d | …         S )Nr-   zMust be at least 16 bytesr,   r0   r   r   r   c                ó*   •— g | ]}‰||d z   …         ‘ŒS r3   r4   ©r6   r$   rJ   s     €r&   r7   z/aes_key_unwrap_with_padding.<locals>.<listcomp>~   rF   r   r   rC   r   r   rB   rD   )r   ÚInvalidUnwrapr9   r   r   r   r=   r   r    r   Úpopr@   r!   r   r   r   )r   rJ   r)   r=   Úoutr
   Údatar"   r   Úencrypted_aivÚmlir%   s    `          r&   Úaes_key_unwrap_with_paddingrT   j   s  ø€ õ
 ˆ;ÑÔ˜"ÒÐÝÐ7Ñ8Ô8Ð8å
ˆ<ÑÔ Ð,Ð,ÝÐJÑKÔKÐKå
ˆ;ÑÔ˜2ÒÐå�3˜|Ñ,Ô,­c©e¬eÑ4Ô4×>Ò>Ñ@Ô@ˆ	Ø×Ò˜{Ñ+Ô+ˆØ×!Ò!Ñ#Ô# sÒ*Ð*Ð*Ð*Ø���ŒGˆØ�1�2�2ŒwˆØˆˆàKÐKÐKÐK­U°1µc¸+Ñ6FÔ6FÈÑ-JÔ-JÐKÑKÔKˆØŸš˜a™œˆÝ�‰FŒFˆÝ˜L¨-¸Ñ;Ô;‰ˆˆ1Ø�xŠx˜‰{Œ{ˆõ �.Š.˜˜1˜2˜2œ¨%ˆ.Ñ
0Ô
0€CØ	
ˆQ‰�#‰€Aå�Q�r˜�r”UÐ/Ñ0Ô0ðà�A˜‘E‰{˜SÐ)Ð)Ò)Ð) A¨¡EÒ)Ð)Ð)Ð)Ð)Ø�ŠFˆF�8 D¨!¨¨¨¤I¨w¸©{Ñ;Ô;ˆFå‰oŒoÐàˆA‚v€vØˆà�C�a�R�CŒyÐr   c                óâ  ‡— t          ‰¦  «        dk     rt          d¦  «        ‚t          ‰¦  «        dz  dk    rt          d¦  «        ‚t          | ¦  «        dvrt          d¦  «        ‚d}ˆfd	„t          dt          ‰¦  «        d¦  «        D ¦   «         }|                     d¦  «        }t          | ||¦  «        \  }}t          ||¦  «        st          ¦   «         ‚d
                     |¦  «        S )Nr.   zMust be at least 24 bytesr   r   z-The wrapped key must be a multiple of 8 bytesr,   r0   r1   c                ó*   •— g | ]}‰||d z   …         ‘ŒS r3   r4   rM   s     €r&   r7   z"aes_key_unwrap.<locals>.<listcomp>§   r8   r   r   )r   rN   r9   r   rO   r@   r   r!   )r   rJ   r)   rG   r   r
   s    `    r&   Úaes_key_unwraprW   ˜   sò   ø€ õ
 ˆ;ÑÔ˜"ÒÐÝÐ7Ñ8Ô8Ð8å
ˆ;ÑÔ˜!Ñ˜qÒ Ð ÝÐKÑLÔLÐLå
ˆ<ÑÔ Ð,Ð,ÝÐJÑKÔKÐKà
-€CØGÐGÐGÐG­¨qµ#°kÑ2BÔ2BÀAÑ)FÔ)FÐGÑGÔG€AØ	�Šˆa‰Œ€AÝ˜ a¨Ñ+Ô+�D€A€qÝ�A�sÑÔð Ý‰oŒoÐà�8Š8�A‰;Œ;Ðr   c                  ó   — e Zd ZdS )rN   N)Ú__name__Ú
__module__Ú__qualname__r4   r   r&   rN   rN   °   s   € € € € € Ø€Dr   rN   )r   r	   r
   r	   r   r   r   r	   )N)r   r	   r(   r	   r)   r*   r   r	   )r   r	   r
   r	   r   r   r   r;   )r   r	   rJ   r	   r)   r*   r   r	   )Ú
__future__r   ÚtypingÚ&cryptography.hazmat.primitives.ciphersr   Ú1cryptography.hazmat.primitives.ciphers.algorithmsr   Ú,cryptography.hazmat.primitives.ciphers.modesr   Ú,cryptography.hazmat.primitives.constant_timer   r'   r:   r@   rI   rT   rW   Ú	ExceptionrN   r4   r   r&   ú<module>rc      s?  ðð
 #Ð "Ð "Ð "Ð "Ð "à €€€à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø AÐ AÐ AÐ AÐ AÐ AØ <Ð <Ð <Ð <Ð <Ð <Ø AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð6 ð*ð *ð *ð *ð *ð&ð ð ð ð4 ð0ð 0ð 0ð 0ð 0ð8 ð+ð +ð +ð +ð +ðb ðð ð ð ð ð0	ð 	ð 	ð 	ð 	�Iñ 	ô 	ð 	ð 	ð 	r   