
    5iC                     0   d dl mZmZ d dlmZ d dlZ G d dej                  Zej        Z	ej
        Zej        Zej        Zej        Zej        Zej        Z G d d          Zd Zd	 Z ed
          Z ed          Z ed          Z ed          ZdS )    )ABCabstractmethod)get_preferred_cipherNc                       e Zd Z ej                    Z ej                    Z ej                    Z ej                    Z ej                    Z	 ej                    Z
 ej                    ZdS )
cipherMODEN)__name__
__module____qualname__enumautoECBCBCCTRCCMCFBOFBGCM     I/home/kali/Ninja/venv/lib/python3.11/site-packages/unicrypto/symmetric.pyr   r      si        ty{{ty{{ty{{ty{{ty{{ty{{ty{{r   r   c            	           e Zd Zej        ddfdedededefdZed             Z	ed	             Z
ed
             Zed             Zed             ZdS )symmetricBASEN   keymodeIVsegment_sizec                 t    || _         || _        || _        || _        d | _        |                                  d S N)r   r   r   r   _ciphersetup_cipher)selfr   r   r   r   s        r   __init__zsymmetricBASE.__init__   s>    $($)$'"$$,r   c                     t                      r   NotImplementedErrorr"   s    r   r!   zsymmetricBASE.setup_cipher   s     	r   c                     t                      r   r%   r"   datas     r   encryptzsymmetricBASE.encrypt$       r   c                     t                      r   r%   r'   s    r   decryptzsymmetricBASE.decrypt(   r,   r   c                     t                      r   r%   r)   s     r   updatezsymmetricBASE.update,   r,   r   c                     t                      r   r%   r'   s    r   digestzsymmetricBASE.digest0   r,   r   )r   r	   r
   r   r   bytesintr#   r   r!   r+   r.   r0   r2   r   r   r   r   r      s        1;Ddg   J E _b       .   .   .   .   .  r   r   c                    | d d         } | ddt          |           z
  z  z  } | d         dz	  dz  dz                      dd          }|| d         dz  dz  | d         d	z	  d
z  z  dz                      dd          z  }|| d         dz  dz  | d	         dz	  dz  z  dz                      dd          z  }|| d	         dz  dz  | d         dz	  dz  z  dz                      dd          z  }|| d         dz  dz  | d         dz	  dz  z  dz                      dd          z  }|| d         dz  d	z  | d         dz	  dz  z  dz                      dd          z  }|| d         d
z  dz  | d         dz	  dz  z  dz                      dd          z  }|| d         dz  dz                      dd          z  }|S )N       r         big)	byteorder      ?                  )lento_bytes)r   ss     r   expand_DES_keyrG   5   s   BQB3s88	Q1",,QE,BBQ$1Q1 45!;EEaUZE[[[Q$1Q1 45!;EEaUZE[[[Q$1Q1 45!;EEaUZE[[[Q$1Q1 45!;EEaUZE[[[Q$1Q1 45!;EEaUZE[[[Q$1Q1 45!;EEaUZE[[[Q$1&&qe&<<<	r   c                 n   |                      ddd          }|d         |d         |d         |d         |d         |d         |d         g}|d         |d         |d         |d         |d         |d         |d         g}t          t          |                    t          t          |                    fS )	NrB   littleF)r;   signedr   r8   r=   r?   )rE   rG   r3   )baseKeyr   key1key2s       r   	deriveKeyrN   D   s     Xe<<	Q#a&3q6CFSVc!fs1vF	Q#a&3q6CFSVc!fs1vFuT{{##N5;;$?$???r   DESTDESAESRC4)abcr   r   	unicryptor   r   Enumr   r   MODE_ECBr   MODE_CBCr   MODE_CTRr   MODE_CCMr   MODE_CFBr   MODE_OFBr   MODE_GCMr   rG   rN   rO   rP   rQ   rR   r   r   r   <module>r]      s&   # # # # # # # # * * * * * *         >>>>>>>       >
 
 

@ 
@ 
@ 5!!F##5!!5!!r   