+
    '(jp                        ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	 ^ RI
HtHt ^ RIHt ^ RIHt R	 t ! R
 R] P$                  4      t ! R R] P$                  4      t ! R R] P$                  4      t ! R R] P$                  4      t ! R R] P$                  4      t^ RI
HtHtHtHtHt ]P9                  R]! ]P<                  4      ,           ]]P<                  4       ]P<                   F#  t]P9                  R]! ]4      ,           ]]4       K%  	  ]P<                   F#  t]P9                  R]! ]4      ,           ]]4       K%  	  ]P<                   F#  t]P9                  R]! ]4      ,           ]]4       K%  	  ]P<                   F#  t]P9                  R]! ]4      ,           ]]4       K%  	  / 3R lt ]!R8X  d   R t"] PF                  ! RR7       R# R# )    N)	unhexlify)list_test_cases)load_test_vectors_wycheproof)tobytesbchr)AESDES3)SHAKE128)strxorc                 `    \         P                  ! \        V 4      R 7      P                  V4      # ))data)r
   newr   read)taglengths   &&T/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/Cipher/test_EAX.pyget_tag_randomr   +   s     <<WS\*//77    c                      a  ] tR t^/t o ]! R^4      t]! R^4      t]! R^4      t]! R^4      tR t	R t
R tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )EaxTestskey_128key_192	nonce_128data_128c                p   \         P                  ! V P                  \         P                  V P                  R 7      p\        RR4      pVP                  V4      p\         P                  ! V P                  \         P                  V P                  R 7      pVP                  V4      pV P                  W$4       R# )nonce	plaintextNi@  )	r   r   r   MODE_EAXnonce_96r   encryptdecryptassertEqualselfcipherptctpt2s   &    r   test_loopback_128EaxTests.test_loopback_1286   st    s||4==IK2^^Bs||4==InnR !r   c                p   \         P                  ! V P                  \         P                  V P                  R 7      p\        RR4      pVP                  V4      p\         P                  ! V P                  \         P                  V P                  R 7      pVP                  V4      pV P                  W$4       R# )r   r   Ni   )	r	   r   r   r   r    r   r!   r"   r#   r$   s   &    r   test_loopback_64EaxTests.test_loopback_64?   st    $,,T]]KK1^^B$,,T]]KnnR !r   c                   \         P                  ! V P                  \         P                  4      pVP                  p\         P                  ! V P                  \         P                  4      pVP                  pV P                  \        V4      ^4       V P                  W#4       \         P                  ! V P                  \         P                  V P                  4      pVP                  V P                  4      p\         P                  ! V P                  \         P                  V P                  R7      pV P                  WAP                  V P                  4      4       R# )   r   N)r   r   r   r   r   r#   lenassertNotEqualr    r!   r   )r%   r&   nonce1nonce2r(   s   &    r   
test_nonceEaxTests.test_nonceH   s    s||4s||4Vb)F+s||T]]C^^DMM*s||4==I^^DMM:;r   c                    V P                  \        \        P                  V P                  \        P
                  R R7       R# )test12345678r   N)assertRaises	TypeErrorr   r   r   r   r%   s   &r   test_nonce_must_be_bytes!EaxTests.test_nonce_must_be_bytesW   s,    )SWWdllCLL / 	 	1r   c                b   V P                  \        \        P                  V P                  \        P
                  R R7       \        ^^4       F^  p\        P                  ! V P                  \        P
                  \        ^4      V,          R7      pVP                  \        ^4      4       K`  	  R# )r   r   N)	r9   
ValueErrorr   r   r   r   ranger   r!   )r%   xr&   s   &  r   test_nonce_lengthEaxTests.test_nonce_length[   sp    *cggt||S\\ # 	 	% q#AWWT\\3<<tAw{KFNN47# r   c                    \         P                  ! V P                  \         P                  V P                  R 7      pV P                  VP                  \         P                  4       R# r   N)r   r   r   r   r    r#   
block_sizer%   r&   s   & r   test_block_size_128EaxTests.test_block_size_128d   s:    s||4==I**CNN;r   c                    \         P                  ! V P                  \        P                  V P
                  R 7      pV P                  VP                  \         P                  4       R# rE   )r	   r   r   r   r   r    r#   rF   rG   s   & r   test_block_size_64EaxTests.test_block_size_64h   s:    $,,DMMJ**DOO<r   c                   \         P                  ! V P                  \         P                  V P                  R 7      pV P                  VP                  V P                  4       \         P                  ! V P                  \         P                  4      P                  p\         P                  ! V P                  \         P                  4      P                  pV P                  \        V4      ^4       V P                  W#4       R# rE   )	r   r   r   r   r    r#   r   r1   r2   )r%   r&   r3   r4   s   &   r   test_nonce_attributeEaxTests.test_nonce_attributel   s    s||4==It}}5 s||4::s||4::Vb)F+r   c           	        V P                  \        \        P                  V P                  \        P
                  V P                  ^4       V P                  \        \        P                  V P                  \        P
                  V P                  ^R7       \        P                  ! V P                  \        P
                  V P                  RR7       R# )   )r   unknownF)r   	use_aesniN)r9   r:   r   r   r   r   r    r;   s   &r   test_unknown_parameters EaxTests.test_unknown_parametersv   s    )SWWdllCLL--	,)SWWdllCLL $q 	 	:
 	cll$--	!r   c                    R Fa  p\         P                  ! V P                  \         P                  V P                  R7      p\        W!4      ! R4      pV P                  VR4       Kc  	  R# )r!   r   r   Nr!   r"   )r   r   r   r   r    getattrr#   )r%   funcr&   results   &   r   test_null_encryption_decryption(EaxTests.test_null_encryption_decryption   sI    (DWWT\\3<<t}}MFV*3/FVS) )r   c                   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  R4       V P                  \        VP                  R4       \         P                  ! V P                  \         P                  V P                  R 7      pVP                  R4       V P                  \        VP
                  R4       R# )r   r   N)	r   r   r   r   r    r!   r9   r:   r"   rG   s   & r   test_either_encrypt_or_decrypt'EaxTests.test_either_encrypt_or_decrypt   s    s||4==Is)V^^S9s||4==Is)V^^S9r   c                v   \         P                  ! V P                  \         P                  V P                  R 7      pV P                  \        VP                  R4       \         P                  ! V P                  \         P                  V P                  R 7      pV P                  \        VP                  R4       R# )r   ztest1234567890-*N)	r   r   r   r   r    r9   r:   r!   r"   rG   s   & r   test_data_must_be_bytes EaxTests.test_data_must_be_bytes   sl    s||4==I)V^^5HIs||4==I)V^^5HIr   c           	     &   V P                  \        \        P                  V P                  \        P
                  V P                  ^R7       V P                  \        \        P                  V P                  \        P
                  V P                  ^R7       \        ^^4       Fw  p\        P                  ! V P                  \        P
                  V P                  VR7      pVP                  V P                  4      w  r4V P                  \        V4      V4       Ky  	  \        P                  ! V P                  \        P
                  V P                  R7      pVP                  V P                  4      w  r4V P                  \        V4      ^4       R# )   )r   mac_lenr   N)r9   r?   r   r   r   r   r    r@   encrypt_and_digestr   r#   r1   )r%   re   r&   _macs   &    r   test_mac_lenEaxTests.test_mac_len   s   *cggt||S\\ $s 	 	<*cggt||S\\ $t 	 	= Q'GWWT\\3<<t}}%,.F..t}}=FASXw/	 ( s||4==I**4==9S2&r   c                   ^ RI Hp \        P                  ! V P                  \        P
                  V P                  R7      pVP                  V P                  4      w  r4V! V^4      p\        P                  ! V P                  \        P
                  V P                  R7      pV P                  \        VP                  VV4       R# )r   )strxor_cr   N)Crypto.Util.strxorrl   r   r   r   r   r    rf   r   r9   r?   decrypt_and_verify)r%   rl   r&   r(   rh   invalid_macs   &     r   test_invalid_macEaxTests.test_invalid_mac   s    /s||4==I++DMM:sD)s||4==I*f&?&?%	'r   c                   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  4       pV P                  VP                  4       \        V4      4       \         P                  ! V P                  \         P                  V P                  R 7      pVP                  V4       R# rE   )
r   r   r   r   r    	hexdigestr#   digestr   	hexverify)r%   r&   mac_hexs   &  r   test_hex_macEaxTests.test_hex_mac   su    s||4==I""$)G*<=s||4==I!r   c                   \        R ^4      p\        R^4      p\        P                  ! V P                  \        P                  V P
                  R7      pVP                  V4       VP                  V4      w  rER pR F  p\        P                  ! V P                  \        P                  V P
                  R7      pV! W4       F  pVP                  V4       K  	  Rp	V! WG4       F  pWP                  V4      ,          p	K  	  V P                  W)4       VP                  V4       K  	  R F  p\        P                  ! V P                  \        P                  V P
                  R7      pV! W4       F  pVP                  V4       K  	  Rp
V! W'4       F  pWP                  V4      ,          p
K  	  V P                  WJ4       V P                  VP                  4       V4       K  	  R# )zauthenticated datar   r   c                 h    \        ^ \        V 4      V4       Uu. uF  q W"V,            NK  	  up# u upi )r   )r@   r1   )r   chunk_lengthis   && r   break_up.EaxTests.test_message_chunks.<locals>.break_up   s?    49!SY 5" # 5"q\>* 5" # # #s   /r   N)
   rd      rQ   
      r0   (   P      )r   r   r   r   r   r    updaterf   r"   r#   verifyr!   rt   )r%   	auth_datar   r&   
ciphertextref_macr}   r{   chunkr)   ct2s   &          r   test_message_chunksEaxTests.test_message_chunks   su    ##7=	";4	s||4==Ii $77	B
	#
 @LWWT\\3<<t}}MF!):e$ ;C!*;~~e,, <Y,MM'" @ @LWWT\\3<<t}}MF!):e$ ;C!):~~e,, ;Z-V]]_g6 @r   c                   \        V P                  4      p\        V P                  4      p\        V P                  4      p\        V P                  4      p\        P
                  ! V P                  \        P                  V P                  R 7      pVP                  V P                  4       VP                  V P                  4      pVP                  4       p\        P
                  ! V\        P                  VR 7      pRVR&   RVR&   VP                  V4       RVR&   VP                  V4      p	RVR&   VP                  4       p
V P                  Wi4       V P                  Wz4       V P                  VP                  VP                  4       \        V P                  4      p\        V P                  4      p\        V P                  4      p\        V4      p\        V4      p?\        P
                  ! V\        P                  VR 7      pRVR&   RVR&   VP                  V4       RVR&   VP                  V4      pRVR&   VP                  V4       V P                  WP                  4       R# r   s   :Nr   Ns   N)	bytearrayr   r    r   r   r   r   r   r!   rt   r#   r   r"   r   )r%   key_banonce_ba	header_badata_bacipher1r(   r   cipher2ct_testtag_testct_batag_bacipher3pt_tests   &              r   test_bytearrayEaxTests.test_bytearray   s    4<<(T]]+dmm,	DMM*''$,,,, $/ 	t}}%__T]]+nn''&,, (* %r
&y!'	"//'*%>>#%'6 4<<(T]]+dmm,	"3''&,, (* %r
&y!'	"//%(#b	v--0r   c                z   \        \        V P                  4      4      p\        \        V P                  4      4      p\        \        V P                  4      4      p\        \        V P                  4      4      p\
        P                  ! V P                  \
        P                  V P                  R 7      pVP                  V P                  4       VP                  V P                  4      pVP                  4       p\
        P                  ! V\
        P                  VR 7      pRVR&   RVR&   VP                  V4       RVR&   VP                  V4      p	RVR&   VP                  4       p
V P                  Wi4       V P                  Wz4       V P                  VP                  VP                  4       \        \        V P                  4      4      p\        \        V P                  4      4      p\        \        V P                  4      4      p\        \        V4      4      p\        \        V4      4      p?\
        P                  ! V\
        P                  VR 7      pRVR&   RVR&   VP                  V4       RVR&   VP                  V4      pRVR&   VP                  V4       V P                  WP                  4       R# r   )
memoryviewr   r   r    r   r   r   r   r   r!   rt   r#   r   r"   r   )r%   key_mvnonce_mv	header_mvdata_mvr   r(   r   r   r   r   ct_mvtag_mvr   r   s   &              r   test_memoryviewEaxTests.test_memoryview  s    Idll34i67y78	Yt}}56''$,,,, $/ 	t}}%__T]]+nn''&,, (* %r
&y!'	"//'*%>>#%'6 Idll34i67y78	9R=)IcN+''&,, (* %r
&y!'	"//%(#b	v--0r   c                   Rp\         P                  ! V P                  \         P                  V P                  R7      pVP                  V4      pVP                  4       p\        ^4      p\         P                  ! V P                  \         P                  V P                  R7      pVP                  WR7      pV P                  W54       V P                  VR4       \         P                  ! V P                  \         P                  V P                  R7      pVP                  W5R7      pV P                  W4       V P                  VR4       \         P                  ! V P                  \         P                  V P                  R7      pVP                  WR7      w  rgV P                  W54       V P                  VR4       V P                  WG4       \         P                  ! V P                  \         P                  V P                  R7      pVP                  W4VR7      pV P                  W4       V P                  VR4       R#    5r   outputNs   55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555)r   r   r   r   r    r!   rt   r   r#   r"   rf   rn   )r%   r'   r&   r(   r   r   restag_outs   &       r   test_output_paramEaxTests.test_output_paramL  s   s||4==I^^Bmmo3s||4==InnRn/$d#s||4==InnRn/$d#s||4==I000C$d#&s||4==I'''?$d#r   c                B   Rp\         P                  ! V P                  \         P                  V P                  R7      pVP                  V4      p\        \        ^4      4      p\         P                  ! V P                  \         P                  V P                  R7      pVP                  WR7       V P                  W44       \         P                  ! V P                  \         P                  V P                  R7      pVP                  W4R7       V P                  W4       R# r   )
r   r   r   r   r    r!   r   r   r#   r"   )r%   r'   r&   r(   r   s   &    r   test_output_param_memoryview%EaxTests.test_output_param_memoryviewi  s    s||4==I^^BIcN+s||4==Ir)$s||4==Ir)$r   c                   ^pRV,          p\         P                  ! V P                  \         P                  V P                  R7      pVP                  V4      p\         P                  ! V P                  \         P                  V P                  R7      pV P                  \        VP
                  VRV,          R7       \         P                  ! V P                  \         P                  V P                  R7      pV P                  \        VP                  VRV,          R7       \        V^,
          4      p\         P                  ! V P                  \         P                  V P                  R7      pV P                  \        VP
                  W%R7       \         P                  ! V P                  \         P                  V P                  R7      pV P                  \        VP                  WER7       R# )r0   r   r      0r   N)r   r   r   r   r    r!   r9   r:   r"   r   r?   )r%   LEN_PTr'   r&   r(   shorter_outputs   &     r   test_output_param_negEaxTests.test_output_param_negx  s2   F]s||4==I^^Bs||4==I)V^^RvNs||4==I)V^^RvN"6A:.s||4==I*fnnbPs||4==I*fnnbPr    N) __name__
__module____qualname____firstlineno__r   r   r   r    r   r*   r-   r5   r<   rB   rH   rK   rN   rT   r[   r^   ra   ri   rp   rw   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r   /   s     Y+GY+Gk2.Hj"-H""<1$<=,	!*:J'&	'"'7R11f11f$:%Q Qr   r   c                      a  ] tR tRt o ]! R^4      t]! R^4      t]! R^4      tR tR t	R t
R tR	 tR
 tR tR tR tR tR tRtV tR# )EaxFSMTestsi  r   r   r   c                   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4      pVP                  4       p\         P                  ! V P                  \         P                  V P                  R 7      pVP                  V4       VP                  V4       R# rE   )
r   r   r   r   r    r!   r   rt   r"   r   r%   r&   r(   rh   s   &   r   -test_valid_init_encrypt_decrypt_digest_verify9EaxFSMTests.test_valid_init_encrypt_decrypt_digest_verify  s}     s||#}}.^^DMM*mmo s||#}}.rcr   c                   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4       VP                  4       p\         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4       VP                  V4       R# rE   )	r   r   r   r   r    r   r   rt   r   r%   r&   rh   s   &  r   $test_valid_init_update_digest_verify0EaxFSMTests.test_valid_init_update_digest_verify  s     s||#}}.dmm$mmo s||#}}.dmm$cr   c                   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4       VP                  V P                  4      pVP                  4       p\         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4       VP                  V4       VP                  V4       R# rE   )r   r   r   r   r    r   r   r!   rt   r"   r   r   s   &   r   test_valid_full_path EaxFSMTests.test_valid_full_path  s     s||#}}.dmm$^^DMM*mmo s||#}}.dmm$rcr   c                    \         P                  ! V P                  \         P                  V P                  R 7      pVP                  4        R# rE   )r   r   r   r   r    rt   rG   s   & r   test_valid_init_digest"EaxFSMTests.test_valid_init_digest  s)    s||4==Ir   c                4   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  4       p\         P                  ! V P                  \         P                  V P                  R 7      pVP                  V4       R# rE   )r   r   r   r   r    rt   r   r   s   &  r   test_valid_init_verify"EaxFSMTests.test_valid_init_verify  sU    s||4==Immos||4==Icr   c                   R F  pRRV P                   V P                   R,           3 F  pVf   RpM\        V4      p\        P                  ! V P                  \        P
                  V P                  R7      pVe   VP                  V4       \        WA4      pV! V P                   4       V! V P                   4       V! V P                   4       V! V P                   4       K  	  K  	  R# )r!   Ns   333   3r   rW   )	r   r1   r   r   r   r   r    r   rX   )r%   method_namer   	assoc_lenr&   methods   &     r   &test_valid_multiple_encrypt_or_decrypt2EaxFSMTests.test_valid_multiple_encrypt_or_decrypt  s    /K"FDMM"mmd24	$ $I #IIs||'+}}6(MM), 5t}}%t}}%t}}%t}}%4 0r   c                &   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4       VP                  4       p\        ^4       F"  pV P                  W!P                  4       4       K$  	  \         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4       \        ^4       F  pVP                  V4       K  	  R# rE   )r   r   r   r   r    r   r   rt   r@   r#   r   )r%   r&   	first_macrA   s   &   r   $test_valid_multiple_digest_or_verify0EaxFSMTests.test_valid_multiple_digest_or_verify  s    s||4==Idmm$MMO	qAY8  s||4==Idmm$qAMM)$ r   c                   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4       VP                  V P                  4      w  r#\         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4       VP                  W#4      pV P                  V P                  V4       R# rE   )
r   r   r   r   r    r   r   rf   rn   r#   )r%   r&   r(   rh   r'   s   &    r   0test_valid_encrypt_and_digest_decrypt_and_verify<EaxFSMTests.test_valid_encrypt_and_digest_decrypt_and_verify  s    s||4==Idmm$++DMM: s||4==Idmm$&&r/+r   c           	     t   R F  w  rR F  p\         P                  ! V P                  \         P                  V P                  R7      pV'       d   VP                  V P                  4       \        WA4      ! V P                  4       V P                  \        \        WB4      V P                  4       K  	  K  	  R# )r!   r   N)rW   )r"   r!   )TF)
r   r   r   r   r    r   r   rX   r9   r:   )r%   method1_namemethod2_nameassoc_data_presentr&   s   &    r   #test_invalid_mixing_encrypt_decrypt/EaxFSMTests.test_invalid_mixing_encrypt_decrypt  s    +C&L&3"s||'+}}6%MM$--0-dmm<!!)WV-J"&--1 '4+Cr   c                   R F  p\         P                  ! V P                  \         P                  V P                  R7      pVP                  V P                  4       VP                  4        V P                  \        \        W!4      V P                  4       \         P                  ! V P                  \         P                  V P                  R7      pVP                  V P                  4       K  	  R# )r!   r   N)r!   r   )r   r   r   r   r    r!   r   rt   r9   r:   rX   rf   )r%   r   r&   s   &  r   +test_invalid_encrypt_or_update_after_digest7EaxFSMTests.test_invalid_encrypt_or_update_after_digest  s    .KWWT\\3<<t}}MFNN4==)MMOi)E"mm- WWT\\3<<t}}MF%%dmm4 /r   c                   \         P                  ! V P                  \         P                  V P                  R 7      pVP                  V P                  4      pVP                  4       pR EF  p\         P                  ! V P                  \         P                  V P                  R 7      pVP                  V4       VP                  V4       V P                  \        \        W4      V P                  4       \         P                  ! V P                  \         P                  V P                  R 7      pVP                  W#4       V P                  \        \        W4      V P                  4       EK  	  R# )r   N)r"   r   )r   r   r   r   r    r!   r   rt   r"   r   r9   r:   rX   rn   )r%   r&   r(   rh   r   s   &    r   +test_invalid_decrypt_or_update_after_verify7EaxFSMTests.test_invalid_decrypt_or_update_after_verify  s    s||4==I^^DMM*mmo.KWWT\\3<<t}}MFNN2MM#i)E"mm- WWT\\3<<t}}MF%%b.i)E"mm- /r   r   N)r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @r   r   r     se     Y+Gk2.Hj"-H 
&$%
,1	5- -r   r   c            
          a ] tR tRt oRt. ROt] U Uu. uF  q  Uu. uF  p\        V4      NK  	  upNK  	  upp tR tRt	Vt
R# u upi u upp i )TestVectorsPaperi!  z`Class exercising the EAX test vectors found in
http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdfc           	        V P                    F  w  rr4rV\        P                  ! V\        P                  V\	        V4      R 7      pVP                  V4       VP                  V4      w  rV P                  W84       V P                  WI4       \        P                  ! V\        P                  V\	        V4      R 7      pVP                  V4       VP                  W44      p
V P                  W*4       K  	  R# )re   N)	test_vectorsr   r   r   r1   r   rf   r#   rn   )r%   
assoc_datar'   r(   rh   keyr   r&   r   mac2r)   s   &          r   runTestTestVectorsPaper.runTestx  s    373D3D/JBSWWS#,,s3xHFMM*%11"5ICR%S' WWS#,,s3xHFMM*%++B4CR% 4Er   r   N)
)6bfb914fd07eae6b r    e037830e8389f27b025a2d6527e79d01 233952dee4d5ed5f9b9c6d6ff80ff478 62EC67F9C3A4A407FCB2A8C49031A8B3)fa3bfd4806eb53faf7fb19dd 5c4c9331049d0bdab0277408f67967e5 91945d3f4dcbee0bf45ef52255f095a4 BECAF043B0A23D843194BA972C66DEBD)234a3463c1264ac6
1a47cb4933
d851d5bae0 3a59f238a23e39199dc9266626c40f80 01f74ad64077f2e704c0f60ada3dd523 70C3DB4F0D26368400A10ED05D2BFF5E)33cce2eabff5a79d
481c9e39b1
632a9d131a d4c168a4225d8e1ff755939974a7bede d07cf6cbb7f313bdde66b727afd3c5e8 8408DFFF3C1A2B1292DC199E46B7D617)aeb96eaebe2970e940d0c07da5e4071dfe16c675 cb0677e536f73afe6a14b74ee49844dd 35b6d0580005bbc12b0587124557d2c2 FDB6B06676EEDC5C61D74276E1F8E816)d4482d1ca78dce0f4de3b35c3fc039245bd1fb7d835bb4f15d743e350e728414 abb8644fd6ccb86947c5e10590210a4f bd8e6e11475e60b268784c38c62feb22 6EAC5C93072D8E8513F750935E46DA1B)65d2017990d62528"8b0a79306c9ce7ed99dae4f87f8dd61636"02083e3979da014812f59f11d52630da30 137327d10649b0aa6e1c181db617d7f2 7c77d6e813bed5ac98baa417477a2e7d 1A8C98DCD73D38393B2BF1569DEEFC19)54b9f04e6a09189a$1bda122bce8a8dbaf1877d962b8592dd2d56$2ec47b2c4954a489afc7ba4897edcdae8cc3 3b60450599bd02c96382902aef7f832a 5fff20cafab119ca2fc73549e20f5b0d DDE59B97D722156D4D9AFF2BC7559826)899a175897561d7e$6cf36720872b8513f6eab1a8a44438d5ef11$0de18fd0fdd91e7af19f1d8ee8733938b1e8 e7f6d2231618102fdb7fe55ff1991700 a4a4782bcffd3ec5e7ef6d8c34a56123 B781FCF2F75FA5A8DE97A9CA48E522EC)126735fcc320d25a*ca40d7446e545ffaed3bd12a740a659ffbbb3ceab7*cb8920f87a6c75cff39627b56e3ed197c552d295a7 cfc46afc253b4652b1af3795b124ab6e 8395fcf1e95bebd697bd010bc766aac3 22E7ADD93CFC6393C57EC0B3C17D6B44)r   r   r   r   __doc__test_vectors_hexr   r   r   r   r   )tvrA   r   s   00@r   r   r   !  sR     <Ob :JJ9I22.2aYq\2.9IJL& & /Js   A
AA
A
r   c                   P   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
tV tR# )TestVectorsWycheproofi  c                ^    \         P                  P                  V 4       Wn        R V n        R# )NoneN)unittestTestCase__init___wycheproof_warnings_id)r%   wycheproof_warningss   &&r   r@  TestVectorsWycheproof.__init__  s#    ""4($7!r   c                8    R  p\        RRRRV/R7      V n        R# )c                 "    V R ,          ^,          # )tagSizer   )groups   &r   
filter_tag/TestVectorsWycheproof.setUp.<locals>.filter_tag  s    #q((r   zaes_eax_test.jsonzWycheproof EAXtag_size)	group_tagN)Cipher
wycheproof)r   r9  )r%   rI  s   & r   setUpTestVectorsWycheproof.setUp  s'    	) //G/B/?:Dj9QSr   c                    V P                   # N)rB  r;   s   &r   shortDescription&TestVectorsWycheproof.shortDescription  s    xxr   c                    VP                   '       dI   V P                  '       d5   ^ RIpVP                  RV P                  : RVP
                  : R24       R# R# R# )r   NzWycheproof warning: z ())warningrA  warningswarnrB  comment)r%   r9  rX  s   && r   rY  TestVectorsWycheproof.warn  s9    :::$333MM488RZZPQ 4:r   c                   R \        VP                  4      ,           V n         \        P                  ! VP
                  \        P                  VP                  VP                  R7      pTP                  TP                  4       TP                  TP                  4      w  rETP                  '       dJ   T P!                  YAP"                  4       T P!                  YQP$                  4       T P'                  T4       R# R#   \         d8   p\        TP                  4      ^ 8X  d   R\        T4      9   g   Q h Rp?R# Rp?ii ; i)zWycheproof Encrypt EAX Test #r   Nonce cannot be emptyN)stridrB  r   r   r   r   ivrK  r?   r1   r   aadrf   msgvalidr#   r(   r   rY  )r%   r9  r&   er(   r   s   &&    r   test_encrypt"TestVectorsWycheproof.test_encrypt  s    2SZ?	WWRVVS\\255"++NF
 	bff++BFF3888R'S&&)IIbM   	ruu:?'>#a&'HHH	s   AC> >E 	,D;;E c                   R \        VP                  4      ,           V n         \        P                  ! VP
                  \        P                  VP                  VP                  R7      pTP                  TP                  4        TP                  TP                  TP                  4      pTP                   '       g   Q hT P#                  YAP$                  4       T P'                  T4       R#   \         d8   p\        TP                  4      ^ 8X  d   R\        T4      9   g   Q h Rp?R# Rp?ii ; i  \         d    TP                   '       d   Q h R# i ; i)zWycheproof Decrypt EAX Test #r   r]  N)r^  r_  rB  r   r   r   r   r`  rK  r?   r1   r   ra  rn   r(   r   rc  r#   rb  rY  )r%   r9  r&   rd  r'   s   &&   r   test_decrypt"TestVectorsWycheproof.test_decrypt  s    2SZ?	WWRVVS\\255"++NF
 	bff	**255"&&9B 888O8R(IIbM  	ruu:?'>#a&'HHH	  	 xxx<x	 s0   AC- &D2 -D/8,D**D/2EEEc                H   R \        VP                  4      ,           V n        \        VP                  4      ^ 8X  g   \        VP
                  4      ^8  d   R# \        P                  ! VP                  \        P                  VP                  VP                  R7      pVP                  VP                  4       \        VP
                  R\        VP
                  4      ^,
          ,          R,           4      pV P                  \        VP                   W1P"                  4       R# )z%Wycheproof Corrupt Decrypt EAX Test #Nr          )r^  r_  rB  r1   r`  r(   r   r   r   r   rK  r   ra  r   r9   r?   rn   r   )r%   r9  r&   
ct_corrupts   &&  r   test_corrupt_decrypt*TestVectorsWycheproof.test_corrupt_decrypt  s    :SZGruu:?c"%%j1nruubkkJbffBEE7c"%%j1n#=#GH
*f&?&?VVTr   c                    V P                    F6  pV P                  V4       V P                  V4       V P                  V4       K8  	  R # rR  )r9  re  rh  rn  )r%   r9  s   & r   r   TestVectorsWycheproof.runTest  s:    ''Bb!b!%%b) r   )rB  rA  r9  N)r   r   r   r   r@  rO  rS  rY  re  rh  rn  r   r   r   r   s   @r   r;  r;    s5     
SR
 &U* *r   r;  c                   0   a  ] tR tRt o ]R 4       tRtV tR# )TestOtherCiphersi  c                :    W#3R  lp\        V RV,           V4       R# )c                    VP                  \        R V4      VP                  RR7      pVP                  R4      w  rEVP                  \        R V4      VP                  RR7      pVP	                  WE4      pV P                  RV4       R# )r&   s   noncer   s	   plaintextN)r   r   r   rf   rn   r#   )r%   factorykey_sizer&   r(   rh   r)   s   &&&    r   test_template3TestOtherCiphers.create_test.<locals>.test_template  s    [[(!C!(!1!1'/ ! 1F //=GB[[(!C!(!1!1'/ ! 1F ++B4C\3/r   test_N)setattr)clsnamerv  rw  rx  s   &&&& r   create_testTestOtherCiphers.create_test  s     )0 	0 	Wt^]3r   r   N)r   r   r   r   classmethodr~  r   r   r   s   @r   rs  rs    s     4 4r   rs  )DESr	   ARC2CASTBlowfishDES_DES3_ARC2_CAST_	Blowfish_c                     V P                  R 4      p. pV\        \        4      ,          pV\        \        4      ,          pV\	        4       .,          pV\        V4      .,          pV\        \        4      ,          pV# )rC  )getr   r   r   r   r;  rs  )configrC  testss   &  r   	get_testsr    so     **%:;E	_X&&E	_[))E	!##E	$%89;;E	_-..ELr   __main__c                  >    \         P                  ! \        4       4      # rR  )r>  	TestSuiter  r   r   r   <lambda>r    s    H&&y{3r   suite)defaultTest)$r>  binasciir   Crypto.SelfTest.st_commonr   Crypto.SelfTest.loaderr   Crypto.Util.py3compatr   r   Crypto.Cipherr   r	   Crypto.Hashr
   rm   r   r   r?  r   r   r   r;  rs  r  r  r  r  r~  r^  rw  ksr  r   r  mainr   r   r   <module>r     s  >   5 ? / #   %8ZQx   ZQz
R-(## R-jd&x(( d&NJ*H-- J*Z4x(( 4* : 9   Vc#,,&77cll K
--B  3r7!2D"= 
--B  3r7!2D"= 
--B  3r7!2D"= 


B  s2w!6"E   	 z3EMMg& r   