Ë
    ýQµib  ã                  ó\  — d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
  G d„ dej                  ¬«      Zdd	„Z	 	 	 	 	 	 	 	 dd
„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Z G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ de«      Z G d„ de«      Zy)é    )ÚannotationsN)Úutils)ÚAlreadyFinalized)Úcheck_ansix923_paddingÚcheck_pkcs7_paddingc                  óX   — e Zd Zej                  dd„«       Zej                  dd„«       Zy)ÚPaddingContextc                 ó   — y)zR
        Pads the provided bytes and returns any available data as bytes.
        N© )ÚselfÚdatas     úH/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/padding.pyÚupdatezPaddingContext.update   ó   � ó    c                 ó   — y)z6
        Finalize the padding, returns bytes.
        Nr   ©r   s    r   ÚfinalizezPaddingContext.finalize   r   r   N©r   ÚbytesÚreturnr   ©r   r   )Ú__name__Ú
__module__Ú__qualname__ÚabcÚabstractmethodr   r   r   r   r   r	   r	      s4   „ Ø×Ñòó ðð
 	×Ñòó ñr   r	   )Ú	metaclassc                ón   — d| cxk  rdk  st        d«      ‚ t        d«      ‚| dz  dk7  rt        d«      ‚y )Nr   iø  z%block_size must be in range(0, 2041).é   z#block_size must be a multiple of 8.)Ú
ValueError)Ú
block_sizes    r   Ú_byte_padding_checkr#       sI   € Ø�Ô#˜tÒ#ÜÐ@ÓAÐAð $ÜÐ@ÓAÐAà�A�~˜ÒÜÐ>Ó?Ð?ð r   c                óº   — | €t        d«      ‚t        j                  d|«       | t        |«      z  } t	        | «      |dz  z  }| d ||dz  z   }| ||dz  z  d  } | |fS )NúContext was already finalized.r   r    )r   r   Ú_check_bytesliker   Úlen©Úbuffer_r   r"   Úfinished_blocksÚresults        r   Ú_byte_padding_updater,   (   s{   € ð €ÜÐ?Ó@Ð@ä	×Ñ˜6 4Ô(àŒu�T‹{Ñ€Gä˜'“l z°Q¡Ñ7€OàÐ:�¨*¸©/Ñ:Ð;€FØ�o¨°q©Ñ9Ð;Ð<€Gà�Fˆ?Ðr   c                óT   — | €t        d«      ‚|dz  t        | «      z
  }|  ||«      z   S )Nr%   r    )r   r'   )r)   r"   Ú	paddingfnÚpad_sizes       r   Ú_byte_padding_padr0   :   s7   € ð
 €ÜÐ?Ó@Ð@à˜Q‰¤ W£Ñ-€HØ‘Y˜xÓ(Ñ(Ð(r   c                óÔ   — | €t        d«      ‚t        j                  d|«       | t        |«      z  } t	        t        | «      |dz  z  dz
  d«      }| d ||dz  z   }| ||dz  z  d  } | |fS )Nr%   r   r    é   r   )r   r   r&   r   Úmaxr'   r(   s        r   Ú_byte_unpadding_updater4   F   s‡   € ð €ÜÐ?Ó@Ð@ä	×Ñ˜6 4Ô(àŒu�T‹{Ñ€Gäœ#˜g›,¨:¸©?Ñ;¸aÑ?ÀÓC€OàÐ:�¨*¸©/Ñ:Ð;€FØ�o¨°q©Ñ9Ð;Ð<€Gà�Fˆ?Ðr   c                ó”   — | €t        d«      ‚t        | «      |dz  k7  rt        d«      ‚ || «      }|st        d«      ‚| d   }| d |  S )Nr%   r    zInvalid padding bytes.éÿÿÿÿ)r   r'   r!   )r)   r"   ÚcheckfnÚvalidr/   s        r   Ú_byte_unpadding_checkr9   X   sb   € ð
 €ÜÐ?Ó@Ð@ä
ˆ7ƒ|�z Q‘Ò&ÜÐ1Ó2Ð2á�GÓ€EáÜÐ1Ó2Ð2à�r‰{€HØ�:�X�IÐÐr   c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚPKCS7c                ó(   — t        |«       || _        y ©N©r#   r"   ©r   r"   s     r   Ú__init__zPKCS7.__init__m   ó   € Ü˜JÔ'Ø$ˆ�r   c                ó,   — t        | j                  «      S r=   )Ú_PKCS7PaddingContextr"   r   s    r   ÚpadderzPKCS7.padderq   s   € Ü# D§O¡OÓ4Ð4r   c                ó,   — t        | j                  «      S r=   )Ú_PKCS7UnpaddingContextr"   r   s    r   ÚunpadderzPKCS7.unpaddert   s   € Ü% d§o¡oÓ6Ð6r   N©r"   Úint©r   r	   ©r   r   r   r@   rD   rG   r   r   r   r;   r;   l   s   „ ó%ó5ô7r   r;   c                  ó8   — e Zd ZU ded<   dd„Zd	d„Zd
d„Zdd„Zy)rC   útyping.Optional[bytes]Ú_bufferc                ó    — || _         d| _        y ©Nr   ©r"   rN   r?   s     r   r@   z_PKCS7PaddingContext.__init__{   ó   € Ø$ˆŒàˆ�r   c                óX   — t        | j                  || j                  «      \  | _        }|S r=   ©r,   rN   r"   ©r   r   r+   s      r   r   z_PKCS7PaddingContext.update€   ó)   € Ü3Ø�L‰L˜$ §¡ó 
ÑˆŒ�fð ˆr   c                ó    — t        |g«      |z  S r=   ©r   ©r   Úsizes     r   Ú_paddingz_PKCS7PaddingContext._padding†   s   € Ü�d�V‹}˜tÑ#Ð#r   c                ój   — t        | j                  | j                  | j                  «      }d | _        |S r=   ©r0   rN   r"   r[   ©r   r+   s     r   r   z_PKCS7PaddingContext.finalize‰   ó-   € Ü"Ø�L‰L˜$Ÿ/™/¨4¯=©=ó
ˆð ˆŒØˆr   NrH   r   ©rZ   rI   r   r   r   ©r   r   r   Ú__annotations__r@   r   r[   r   r   r   r   rC   rC   x   s   … Ø#Ó#óó
ó$ôr   rC   c                  ó0   — e Zd ZU ded<   dd„Zdd„Zd	d„Zy)
rF   rM   rN   c                ó    — || _         d| _        y rP   rQ   r?   s     r   r@   z_PKCS7UnpaddingContext.__init__”   rR   r   c                óX   — t        | j                  || j                  «      \  | _        }|S r=   ©r4   rN   r"   rU   s      r   r   z_PKCS7UnpaddingContext.update™   ó)   € Ü5Ø�L‰L˜$ §¡ó 
ÑˆŒ�fð ˆr   c                ó^   — t        | j                  | j                  t        «      }d | _        |S r=   )r9   rN   r"   r   r^   s     r   r   z_PKCS7UnpaddingContext.finalizeŸ   s*   € Ü&Ø�L‰L˜$Ÿ/™/Ô+>ó
ˆð ˆŒØˆr   NrH   r   r   ©r   r   r   rb   r@   r   r   r   r   r   rF   rF   ‘   s   … Ø#Ó#óó
ôr   rF   c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚANSIX923c                ó(   — t        |«       || _        y r=   r>   r?   s     r   r@   zANSIX923.__init__¨   rA   r   c                ó,   — t        | j                  «      S r=   )Ú_ANSIX923PaddingContextr"   r   s    r   rD   zANSIX923.padder¬   s   € Ü& t§¡Ó7Ð7r   c                ó,   — t        | j                  «      S r=   )Ú_ANSIX923UnpaddingContextr"   r   s    r   rG   zANSIX923.unpadder¯   s   € Ü(¨¯©Ó9Ð9r   NrH   rJ   rK   r   r   r   rk   rk   §   s   „ ó%ó8ô:r   rk   c                  ó8   — e Zd ZU ded<   dd„Zd	d„Zd
d„Zdd„Zy)rn   rM   rN   c                ó    — || _         d| _        y rP   rQ   r?   s     r   r@   z _ANSIX923PaddingContext.__init__¶   rR   r   c                óX   — t        | j                  || j                  «      \  | _        }|S r=   rT   rU   s      r   r   z_ANSIX923PaddingContext.update»   rV   r   c                ó@   — t        dg«      |dz
  z  t        |g«      z   S )Nr   r2   rX   rY   s     r   r[   z _ANSIX923PaddingContext._paddingÁ   s"   € Ü�a�S‹z˜T A™XÑ&¬°¨v«Ñ6Ð6r   c                ój   — t        | j                  | j                  | j                  «      }d | _        |S r=   r]   r^   s     r   r   z _ANSIX923PaddingContext.finalizeÄ   r_   r   NrH   r   r`   r   ra   r   r   r   rn   rn   ³   s   … Ø#Ó#óó
ó7ôr   rn   c                  ó0   — e Zd ZU ded<   dd„Zdd„Zd	d„Zy)
rp   rM   rN   c                ó    — || _         d| _        y rP   rQ   r?   s     r   r@   z"_ANSIX923UnpaddingContext.__init__Ï   rR   r   c                óX   — t        | j                  || j                  «      \  | _        }|S r=   rf   rU   s      r   r   z _ANSIX923UnpaddingContext.updateÔ   rg   r   c                ó^   — t        | j                  | j                  t        «      }d | _        |S r=   )r9   rN   r"   r   r^   s     r   r   z"_ANSIX923UnpaddingContext.finalizeÚ   s+   € Ü&Ø�L‰LØ�O‰OÜ"ó
ˆð
 ˆŒØˆr   NrH   r   r   ri   r   r   r   rp   rp   Ì   s   … Ø#Ó#óó
ôr   rp   )r"   rI   r   ÚNone)r)   rM   r   r   r"   rI   r   ztyping.Tuple[bytes, bytes])r)   rM   r"   rI   r.   ztyping.Callable[[int], bytes]r   r   )r)   rM   r"   rI   r7   ztyping.Callable[[bytes], int]r   r   )Ú
__future__r   r   ÚtypingÚcryptographyr   Úcryptography.exceptionsr   Ú"cryptography.hazmat.bindings._rustr   r   ÚABCMetar	   r#   r,   r0   r4   r9   r;   rC   rF   rk   rn   rp   r   r   r   ú<module>r�      s  ðõ
 #ã 
Û å Ý 4÷ô˜sŸ{™{õ ó@ðØ#ðØ+0ðØ>Aðàóð$	)Ø#ð	)àð	)ð -ð	)ð ó		)ðØ#ðØ+0ðØ>Aðàóð$Ø#ðàðð +ðð ó	÷(	7ñ 	7ô˜>ô ô2˜^ô ÷,	:ñ 	:ô˜nô ô2 õ r   