B
    h                 @   s2   G d d dZ G dd de ZG dd de ZdS )c               @   s4   e Zd Zdd ZeedddZeedddZdS )	PaddingBasec             C   s
   || _ d S )N)
block_size)selfr    r   QC:\Users\sanjo\AppData\Local\Qlobot\Launcher\ext_packages\py3rijndael\paddings.py__init__   s    zPaddingBase.__init__)sourcereturnc             C   s   t d S )N)NotImplementedError)r   r   r   r   r   encode   s    zPaddingBase.encodec             C   s   t d S )N)r	   )r   r   r   r   r   decode
   s    zPaddingBase.decodeN)__name__
__module____qualname__r   bytesr
   r   r   r   r   r   r      s   r   c               @   s    e Zd ZdZdd Zdd ZdS )ZeroPaddingzb
    Specified for hashes and MACs as Padding Method 1 in ISO/IEC 10118-1 and ISO/IEC 9797-1.
    c             C   s.   | j t|| j  d | j  d  }|d|  S )N       )r   len)r   r   Zpad_sizer   r   r   r
      s    "zZeroPadding.encodec             C   sr   t || j dkstt |}|dkr*dS || j d }x,||krd|d8 }|| r:|d |d  S q:W |d | S )N        r   )r   r   AssertionError)r   r   offsetendr   r   r   r      s    
zZeroPadding.decodeN)r   r   r   __doc__r
   r   r   r   r   r   r      s   r   c               @   s    e Zd ZdZdd Zdd ZdS )Pkcs7PaddingzZ
    Technique for padding a string as defined in RFC 2315, section 10.3,
    note #2
    c             C   s>   | j t|| j   }|dkr"| j n|}t| }|||  S )Nr   )r   r   chrr
   )r   r   Zamount_to_padpadr   r   r   r
   ,   s    zPkcs7Padding.encodec             C   s   |d |d   S )Nr   )r   r   r   r   r   r   2   s    zPkcs7Padding.decodeN)r   r   r   r   r
   r   r   r   r   r   r   &   s   r   N)r   r   r   r   r   r   r   <module>   s   