B
    è¹`B  ã               @   sN   d Z ddlZej ¡  ejjZdej e¡ Zdd„ Zdd„ Z	dZ
d	d
„ ZdS )z%Encryption module that uses nsscryptoé    Nú c          	   C   sv   t j  t¡}t j  |tt j jt j jt j  |¡¡}t j  tt j  t¡¡}t j  	tt j j||¡}| 
| ¡}| ¡ }|| S )N)ÚnssÚget_best_slotÚ_mechÚimport_sym_keyÚPK11_OriginGeneratedZCKA_ENCRYPTÚSecItemÚparam_from_ivÚ_ivÚcreate_context_by_sym_keyÚ	cipher_opÚdigest_final)ÚdataÚkeyÚslotÚkey_objÚparamÚctxÚl1Úl2© r   ú_/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/beaker/crypto/nsscrypto.pyÚ
aesEncrypt   s    
r   c          	   C   sv   t j  t¡}t j  |tt j jt j jt j  |¡¡}t j  tt j  t¡¡}t j  	tt j j||¡}| 
| ¡}| ¡ }|| S )N)r   r   r   r   r   ZCKA_DECRYPTr   r	   r
   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   Ú
aesDecrypt   s    
r   Tc               C   s   dS )Né    r   r   r   r   r   ÚgetKeyLength.   s    r   )Ú__doc__Znss.nssr   Znss_init_nodbZCKM_AES_CBC_PADr   Zget_iv_lengthr
   r   r   Zhas_aesr   r   r   r   r   Ú<module>   s   
