o
    jz                     @   sL   d dl m  m  m  m  mZ d dlmZmZm	Z	 G dd deZ
dS )    N)symmetricBASE
cipherMODEexpand_DES_keyc                   @   s8   e Zd ZejdddfddZdd Zdd Zdd	 ZdS )
TDESNc                 C   s>   t | ||| t|tstd|| _|| _|| _|| _d S )NzKey needs to be bytes!)	r   __init__
isinstancebytes	ExceptionmodeIVpadpadMode)selfkeyr
   r   r   r    r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/unicrypto/backends/pure/TDES.pyr      s   

zTDES.__init__c                 C   s\   | j tjkrtj}t| j|| _d S | j tjkr*tj}tj| j|| jd d| _d S t	d)N)r   zUnknown cipher mode!)
r
   r   ECB_pyDES
triple_desr   _cipherCBCr   r	   )r   r
   r   r   r   setup_cipher   s   zTDES.setup_cipherc                 C      | j |S N)r   encryptr   datar   r   r   r         zTDES.encryptc                 C   r   r   )r   decryptr   r   r   r   r      r   zTDES.decrypt)	__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r      s
    

r   )(unicrypto.backends.pure.external.DES.DESbackendspureexternalDESr   unicrypto.symmetricr   r   r   r   r   r   r   r   <module>   s   $ 