
    ,h!                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
 d dlmZ d Zd dlmZ  G d	 d
e      Z G d de j"                        Zi fdZedk(  rd Z e j,                  d       yy)    N)	unhexlify)list_test_cases)tobytes)AESDES3DES)SHAKE128c                 ^    t        j                  t        |             j                  |      S )N)data)r	   newr   read)taglengths     e/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/Crypto/SelfTest/Cipher/test_OpenPGP.pyget_tag_randomr   '   s     <<WS\*//77    )BlockChainingTestsc                       e Zd Zej                  Zej                  Z edd      Z	 edd      Z
 edd      Z edd      Z edd      Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)OpenPGPTestskey_128   key_192   iv_128iv_64   data_128c                 h   t        j                  | j                  t         j                  | j                        }t        dd      }|j                  |      }|d d |dd  }}t        j                  | j                  t         j                  |      }|j                  |      }| j                  ||       y )N	plaintexti@     )	r   r   r   MODE_OPENPGPr   r   encryptdecryptassertEqualselfcipherptcteivpt2s         r   test_loopback_128zOpenPGPTests.test_loopback_128:   s    s'7'7EK2^^BSb'2bc7Rs'7'7=nnR S!r   c                 h   t        j                  | j                  t         j                  | j                        }t        dd      }|j                  |      }|d d |dd  }}t        j                  | j                  t         j                  |      }|j                  |      }| j                  ||       y )Nr   i   
   )	r   r   r   r!   r   r   r"   r#   r$   r%   s         r   test_loopback_64zOpenPGPTests.test_loopback_64E   s    $,,(9(94::FK1^^BSb'2bc7R$,,(9(93?nnR S!r   c                    t        j                  | j                  t         j                  | j                        }|j                  d      }| j                  |j                  | j                         t        j                  | j                  t         j                  |      }| j                  |j                  | j                         y Nr   )r   r   r   r!   r   r"   r$   ivr&   r'   r*   s      r   test_IV_iv_attributesz"OpenPGPTests.test_IV_iv_attributesP   s|    s'7'7EnnS!DKK0s'7'7=DKK0r   c                 8   t        j                  | j                  t         j                  | j                        }|j                  d      }t        j                  | j                  t         j                  |      }| j                  |j                  d      d       y r1   )r   r   r   r!   r   r"   r$   r#   r3   s      r   test_null_encryption_decryptionz,OpenPGPTests.test_null_encryption_decryptionX   se    s'7'7EnnS!s'7'7=,c2r   c                    t        j                  | j                  t         j                  | j                        }|j                  d      }| j                  t        |j                  d       t        j                  | j                  t         j                  |      }|j                  d       | j                  t        |j
                  d       y r1   )	r   r   r   r!   r   r"   assertRaises	TypeErrorr#   r3   s      r   test_either_encrypt_or_decryptz+OpenPGPTests.test_either_encrypt_or_decrypt_   s    s'7'7EnnS!)V^^S9s'7'7=s)V^^S9r   c                    dgdz  }t        j                  | j                  t         j                  | j                        }|D cg c]  }|j                  |       }}t        j                  | j                  t         j                  | j                        }| j                  dj                  |      |j                  dj                  |                   y c c}w Ns   7777777d   r   )r   r   r   r!   r   r"   r$   joinr&   
plaintextsr'   xciphertextss        r   test_unaligned_data_128z$OpenPGPTests.test_unaligned_data_128h   s    !^c)
s'7'7E3=?aq)??s'7'7E+.sxx
?S0TU @   Cc                    dgdz  }t        j                  | j                  t         j                  | j                        }|D cg c]  }|j                  |       }}t        j                  | j                  t         j                  | j                        }| j                  dj                  |      |j                  dj                  |                   y c c}w r<   )r   r   r   r!   r   r"   r$   r>   r?   s        r   test_unaligned_data_64z#OpenPGPTests.test_unaligned_data_64p   s    !^c)
$,,(9(94::F3=?aq)??$,,(9(94::F+.sxx
?S0TU @rD   c                      y N r&   s    r   test_output_paramzOpenPGPTests.test_output_paramx       r   c                      y rH   rI   rJ   s    r   test_output_param_same_bufferz*OpenPGPTests.test_output_param_same_buffer{   rL   r   c                      y rH   rI   rJ   s    r   test_output_param_memoryviewz)OpenPGPTests.test_output_param_memoryview~   rL   r   c                      y rH   rI   rJ   s    r   test_output_param_negz"OpenPGPTests.test_output_param_neg   rL   r   N)__name__
__module____qualname__r   r!   aes_moder   	des3_moder   r   r   r   r   r   r,   r/   r4   r6   r:   rC   rF   rK   rN   rP   rR   rI   r   r   r   r   -   s    H!!I Y+GY+GHb)F7A&Ej"-H	"	"13:VVr   r   c                       e Zd Zd Zd Zy)TestVectorsc                    d}d}d}d}d}t        |      }t        |      }t        |      }t        |      }t        |      }t        j                  |t        j                  |      }|j	                  |      }| j                  |d d |       | j                  |dd  |       t        j                  |t        j                  |      }|j                  |      }| j                  ||       y )N4ac18620270744fb4f647426c61636b43617457686974654361744dc6b9e1f095de609765c59983db5956ae4f63aea7405389d2ebb 5baa61e4c9b93f3f0682250b6cf8331b 3d7d3e62282add7eb203eeba5c800733$fd934601ef49cb58b6d9aebca6056bdb96efr    )r   r   r   r!   r"   r$   r#   	r&   r   
ciphertextkeyr2   encrypted_ivr'   r)   r(   s	            r   test_aeszTestVectors.test_aes   s    0 K	K
0/;i(	z*
nr] .c..3^^I&CR,/BC*-c..=^^J'Y'r   c                    d}d}d}d}d}t        |      }t        |      }t        |      }t        |      }t        |      }t        j                  |t        j                  |      }|j	                  |      }| j                  |d d |       | j                  |dd  |       t        j                  |t        j                  |      }|j                  |      }| j                  ||       y )N2ac1762037074324fb53ba3596f73656d69746556616c6c657929979238528357b90e2e0be549cb0b2d5999b9a4a447e5c5c7d07ade65b460f5ea9be35f9e14aa883a2048e3824aa616c0b2cd47e2afb8b7e4b06a7eef0b58050e8b904ar.   )r   r   r   r!   r"   r$   r#   r`   s	            r   	test_des3zTestVectors.test_des3   s     I	I
@+i(	z*
nr] .#t00"5^^I&CR,/BC*-#t00,?^^J'Y'r   N)rS   rT   rU   rd   rk   rI   r   r   rY   rY      s    +(Z(r   rY   c                 R    g }|t        t              z  }|t        t              z  }|S rH   )r   r   rY   )configtestss     r   	get_testsro      s*    E	_\**E	_[))ELr   __main__c                  <    t        j                  t                     S rH   )unittest	TestSuitero   rI   r   r   <lambda>rt      s    H&&y{3 r   suite)defaultTest)rr   binasciir   Crypto.SelfTest.st_commonr   Crypto.Util.py3compatr   Crypto.Cipherr   r   r   Crypto.Hashr	   r   Crypto.SelfTest.Cipher.test_CBCr   r   TestCaserY   ro   rS   ru   mainrI   r   r   <module>r      sw   >   5 ) ( (  8 ?U% UpI((## I(X   z3EHMMg& r   