
    i                     *    S S/r SSK7  SS jrSS jrg)padunpad    )*c                    U[        U 5      U-  -
  nUS:X  a  [        U5      U-  nX-   $ US:X  a!  [        S5      US-
  -  [        U5      -   nX-   $ US:X  a!  [        S5      [        S5      US-
  -  -   nX-   $ [        S5      e)a  Apply standard padding.

Args:
  data_to_pad (byte string):
    The data that needs to be padded.
  block_size (integer):
    The block boundary to use for padding. The output length is guaranteed
    to be a multiple of :data:`block_size`.
  style (string):
    Padding algorithm. It can be *'pkcs7'* (default), *'iso7816'* or *'x923'*.

Return:
  byte string : the original data with the appropriate padding added at the end.
pkcs7x923r      iso7816   Unknown padding style)lenbchr
ValueError)data_to_pad
block_sizestylepadding_lenpaddings        N/var/www/html/trading/venv/lib/python3.13/site-packages/Crypto/Util/Padding.pyr   r   '   s      s;/*<<K{#k1    
&q';q=)D,==    
)	s)d1gQ77    011    c                 `   [        U 5      nUS:X  a  [        S5      eX1-  (       a  [        S5      eUS;   ay  [        U S   5      nUS:  d  U[        X5      :  a  [        S5      eUS:X  a!  X* S	 [	        U5      U-  :w  a  [        S
5      eOX* S [	        S5      US-
  -  :w  a  [        S5      eOzUS:X  ai  X0R                  [	        S5      5      -
  nUS:  d  U[        X5      :  a  [        S5      eUS:  a&  U SU-
  S	 [	        S5      US-
  -  :w  a  [        S5      eO[        S5      eU S	U*  $ )a  Remove standard padding.

Args:
  padded_data (byte string):
    A piece of data with padding that needs to be stripped.
  block_size (integer):
    The block boundary to use for padding. The input length
    must be a multiple of :data:`block_size`.
  style (string):
    Padding algorithm. It can be *'pkcs7'* (default), *'iso7816'* or *'x923'*.
Return:
    byte string : data without padding.
Raises:
  ValueError: if the padding is incorrect.
r   z$Zero-length input cannot be unpaddedzInput data is not padded)r   r   r	   zPadding is incorrect.r   NzPKCS#7 padding is incorrect.z ANSI X.923 padding is incorrect.r
   r   z ISO 7816-4 padding is incorrect.r   )r   r   bordminr   rfind)padded_datar   r   	pdata_lenr   s        r   r   r   E   s[   " K IA~?@@344!!;r?+?kC
,FF455G<=)T+->{-JJ !?@@ K <+tAwA/FF !CDD G 
)	"3"3DI">>?kC
,FF455?{1[=>:d1g{ST}>UU?@@011}%%r   N)r   )__all__Crypto.Util.py3compatr   r    r   r   <module>r!      s   D 7
 #!<1&r   