
    ,h                     &    d dgZ ddl ddZddZy)padunpad    )*c                    |t        |       |z  z
  }|dk(  rt        |      |z  }| |z   S |dk(  r"t        d      |dz
  z  t        |      z   }| |z   S |dk(  r"t        d      t        d      |dz
  z  z   }| |z   S t        d      )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        U/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/Util/Padding.pyr   r   '   s      S-j88K{#K/    
&q';q=)D,==
   	 
)	s)d1g{1}55    011    c                 B   t        |       }|dk(  rt        d      ||z  rt        d      |dv rut        | d         }|dk  s|t        ||      kD  rt        d      |dk(  r | | d	 t	        |      |z  k7  rt        d
      | | d t	        d      |dz
  z  k7  rt        d      |dk(  rf|| j                  t	        d            z
  }|dk  s|t        ||      kD  rt        d      |dkD  r0| d|z
  d	 t	        d      |dz
  z  k7  rt        d      t        d      | d	|  S )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   C   sU   " K IA~?@@:344!!;r?+q=KJ	(BB455GK<=)4+<[+HH !?@@K<+T!Wk!m-DD !CDD	)	+"3"3DI">>q=KJ	(BB455q=[;8$q';q=:QQ?@@011}%%r   N)r   )__all__Crypto.Util.py3compatr   r    r   r   <module>r!      s   D 7
 #!8(&r   