+
    '(j04                     r   R t ^ RIt^ 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 ^ RIHt ^ RIHt ^ R	IHt R
RRR]
3R
RRR]
3R
RERR]
3R
RFRR]
3RGRRR]
3RGRRR]
3RGRERR]
3RGRFRR]
3RHRRR]
3RHRRR ]
3RHRER!R"]
3RHRFR#R$]
3RIRR%R&]3RIR'R(R)]3RIRJR*R+]3RIRDR,R-]3RKRR.R/]3RKR'R0R1]3RKRJR2R3]3RKRDR4R5]3.sR6 t ! R7 R8]P*                  4      t ! R9 R:]P*                  4      t ! R; R<]P*                  4      t ! R= R>]P*                  4      t/ 3R? lt]R@8X  d   ^ RItRA t]P:                  ! RBRC7       R# R# )Lz$Self-test suite for Crypto.Hash.CMACN)	unhexlify)tobytes)CMAC)AESDES3)SHAKE128)strxor)list_test_cases)load_test_vectors_wycheproof 2b7e151628aed2a6abf7158809cf4f3c  bb1d6929e95937287fa37d129b756746zRFC 4493 #1 6bc1bee22e409f96e93d7e117393172a 070a16b46b4d4144f79bdd9dd04a287czRFC 4493 #2 dfa66747de9ae63030ca32611497c827zRFC 4493 #3 51f0bebf7e3b9d92fc49741779363cfezRFC 4493 #4 d17ddf46adaacde531cac483de7a9367zNIST SP 800 38B D.2 Example 5 9e99a7bf31e710900662f65e617c5184zNIST SP 800 38B D.2 Example 6 8a1de5be2eb31aad089a82e6ee908b0ezNIST SP 800 38B D.2 Example 7 a1d5df0eed790f794d77589659f39a11zNIST SP 800 38B D.2 Example 8 028962f61b7bf89efc6b551f4667d983zNIST SP 800 38B D.3 Example 9 28a7023f452e8f82bd4bf28d8c37c35czNIST SP 800 38B D.3 Example 10 aaf3d8f1de5640c232f5b169b9c911e6zNIST SP 800 38B D.3 Example 11 e1992190549f6ed5696a2c056c315410zNIST SP 800 38B D.3 Example 12b7a688e122ffaf95zNIST SP 800 38B D.4 Example 136bc1bee22e409f968e8f293136283797zNIST SP 800 38B D.4 Example 14743ddbe0ce2dc2edzNIST SP 800 38B D.4 Example 1533e6b1092400eae5zNIST SP 800 38B D.4 Example 16bd2ebf9a3ba00361zNIST SP 800 38B D.7 Example 174ff2ab813c53ce83zNIST SP 800 38B D.7 Example 1862dd1b471902bd4ezNIST SP 800 38B D.7 Example 1931b1e431dabc4eb8zNIST SP 800 38B D.7 Example 20c                 `    \         P                  ! \        V 4      R 7      P                  V4      # )data)r   newr   read)taglengths   &&S/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/SelfTest/Hash/test_CMAC.pyget_tag_randomr+      s     <<WS\*//77    c                   ,   a  ] tR t^t o R tR tRtV tR# )TestCMACc                   \        R^4      p\        R^4      p\        P                  ! W!\        R7      P	                  4       pR F  p\        ^ \        V4      V4       Uu. uF  qQWUV,            NK  	  pp\        P                  ! V\        R7      pV F  pVP                  V4       K  	  V P                  W7P	                  4       4       K  	  R# u upi )z5Verify that internal caching is implemented correctlydata_to_mackey)msg	ciphermodr3   N)
            
         (   P      )	r+   r   r&   r   digestrangelenupdateassertEqual)	selfr0   r1   ref_macchunk_lengthichunksmacchunks	   &        r*   test_internal_cachingTestCMAC.test_internal_caching   s     %]C8UB'((33?FFH @L As;/>@> 9:!lN3>  @ ((3#.C

5!  Wjjl3 @@s    Cc                   R pRp\         P                  ! W!R,          \        R7      pVP                  4       pV P	                  \
        VP                  VR,          4       \         P                  ! W!\        R7      P                  4       p\         P                  ! W!R,          \        RR7      pV P                  VP                  4       V4       VP                  VR,          4       V P                  VP                  4       V4       R# )s   rrrrttt:N   Nr4   :rN   NNT)r3   update_after_digestNs   4444444444444444)r   r&   r   r?   assertRaises	TypeErrorrB   rC   )rD   r2   r1   hdig1dig2h2s   &      r*   test_update_after_digest!TestCMAC.test_update_after_digest  s     HHSb'S1xxz)QXXs2w7xxC0779 XXcr7ctLd+ 			#b'd+r,    N)__name__
__module____qualname____firstlineno__rK   rV   __static_attributes____classdictcell____classdict__s   @r*   r.   r.      s     4&, ,r,   r.   c                   &   a  ] tR tRt o R tRtV tR# )ByteArrayTestsi&  c                `   RpRp\        V4      p\        V4      p\        P                  ! W\        R7      p\        P                  ! W4\        R7      pRVR&   RVR&   V P	                  VP                  4       VP                  4       4       \        V4      p\        V4      p\        P                  ! V\        R7      p\        P                  ! V\        R7      pVP                  V4       VP                  V4       RVR&   V P	                  VP                  4       VP                  4       4       R# )   0    r4      Nr5   NN   0000000000000000)	bytearrayr   r&   r   rC   r?   rB   )rD   r1   r%   key_badata_bah1rU   s   &      r*   runTestByteArrayTests.runTest(  s     3D/XXc3/XXf5r
biik2 3D/XXcS)XXcS)
		$
		'biik2r,   rX   NrY   rZ   r[   r\   rm   r]   r^   r_   s   @r*   rb   rb   &  s     3 3r,   rb   c                   &   a  ] tR tRt o R tRtV tR# )MemoryViewTestsiC  c                   RpRpR pR pW43 EF=  pV! V4      pV! V4      p\         P                  ! W\        R7      p\         P                  ! Wg\        R7      p	VP                  '       g   RVR&   RVR&   V P	                  VP                  4       V	P                  4       4       V! V4      p\         P                  ! V\        R7      p\         P                  ! V\        R7      p	VP                  V4       V	P                  V4       VP                  '       g   RVR&   V P	                  VP                  4       V	P                  4       4       EK@  	  R# )	rd   re   c                     \        V 4      # N)
memoryviewr$   s   &r*   	get_mv_ro*MemoryViewTests.runTest.<locals>.get_mv_roJ  s    d##r,   c                 *    \        \        V 4      4      # rt   )ru   ri   r$   s   &r*   	get_mv_rw*MemoryViewTests.runTest.<locals>.get_mv_rwM  s    io..r,   r4   rf   rg   Nrh   )r   r&   r   readonlyrC   r?   rB   )
rD   r1   r%   rv   ry   get_mvkey_mvdata_mvrl   rU   s
   &         r*   rm   MemoryViewTests.runTestE  s   	$	/ !,F C[FTlG#s3B&S9B###$r
%RYY["))+6 TlG#-B#-BIIdOIIg###%RYY["))+6- -r,   rX   Nro   r_   s   @r*   rq   rq   C  s     !7 !7r,   rq   c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )TestVectorsWycheproofii  c                ^    \         P                  P                  V 4       Wn        R V n        R# )NoneN)unittestTestCase__init___wycheproof_warnings_id)rD   wycheproof_warningss   &&r*   r   TestVectorsWycheproof.__init__k  s#    ""4($7!r,   c                8    R  p\        RRRRV/R7      V n        R# )c                 "    V R ,          ^,          # )tagSizerX   )groups   &r*   
filter_tag/TestVectorsWycheproof.setUp.<locals>.filter_tagr  s    #q((r,   zaes_cmac_test.jsonzWycheproof CMACtag_size)	group_tagN)Hash
wycheproof)r
   tv)rD   r   s   & r*   setUpTestVectorsWycheproof.setUpp  s'    	) //E/C/@:Dj9QSr,   c                    V P                   # rt   )r   )rD   s   &r*   shortDescription&TestVectorsWycheproof.shortDescriptionz  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# )    NzWycheproof warning: z ())warningr   warningswarnr   comment)rD   r   r   s   && r*   r   TestVectorsWycheproof.warn}  s9    :::$333MM488RZZPQ 4:r,   c                   R \        VP                  4      ,           V n         \        P                  ! VP
                  VP                  \        VP                  R7      P                  4       pTP                  '       d/   T P                  Y!P                  4       T P                  T4       R# R#   \         d8   p\        TP
                  4      R9  d   R\        T4      9   d    Rp?R# ThRp?ii ; i)zWycheproof MAC creation Test #r3   mac_len
key lengthNr;          )stridr   r   r&   r1   r2   r   r   r?   
ValueErrorrA   validrC   r(   r   )rD   r   r(   es   &&  r*   test_create_mac%TestVectorsWycheproof.test_create_mac  s    3c"%%j@	((266266S"++NUUWC
 888S&&)IIbM 	  	266{,.<3q63IG	s   A
B/ /C1:*C,*C,,C1c                   R \        VP                  4      ,           V n         \        P                  ! VP
                  VP                  \        VP                  R7      p TP                  TP                  4       TP                  '       g   Q hT P                  T4       R#   \         d8   p\        TP
                  4      R9  d   R\        T4      9   d    Rp?R# ThRp?ii ; i  \         d    TP                  '       d   Q h R# i ; i)z"Wycheproof MAC verification Test #r   r   Nr   )r   r   r   r   r&   r1   r2   r   r   r   rA   verifyr(   r   r   )rD   r   rI   r   s   &&  r*   test_verify_mac%TestVectorsWycheproof.test_verify_mac  s    7#bee*D	((266266S"++NC
	JJrvv 888O8IIbM  	266{,.<3q63IG	  	 xxx<x	 s5   <B"  C' "C$-*CCC$'D
D
	D
c                p    V P                    F%  pV P                  V4       V P                  V4       K'  	  R # rt   )r   r   r   )rD   r   s   & r*   rm   TestVectorsWycheproof.runTest  s,    ''B  $  $ r,   )r   r   r   N)rY   rZ   r[   r\   r   r   r   r   r   r   rm   r]   r^   r_   s   @r*   r   r   i  s/     
SR
"% %r,   r   c                    ^ RI p^RIHp V P                  R4      p. p\         F5  p\        V4      p\        V^,          R7      V^&   VP                  V4       K7  	  V! \        RV4      pVP                  \        4       4       VP                  \        \        4      4       VP                  \        4       4       V\        V4      .,          pV# )r   N)make_mac_testsr   r4   r   )typescommonr   get	test_datalistdictappendr   rb   r	   r.   rq   r   )configr   r   r   params_test_datarowttestss   &       r*   	get_testsr     s    & **%:; Iad#!" 
 4)9:E	LL!"	LL*+	LL"#	$%89;;ELr,   __main__c                  >    \         P                  ! \        4       4      # rt   )r   	TestSuiter   rX   r,   r*   <lambda>r     s    H&&y{3r,   suite)defaultTest@6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51P6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411ڀ6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c371008e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b@603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff408aa83bf8cbda10620bc1bf19fbb6cd58bc313d4a371ca8b5(6bc1bee22e409f96e93d7e117393172aae2d8a57 4cf15134a2850dd58a3d10ba80570d38)__doc__jsonr   binasciir   Crypto.Util.py3compatr   Crypto.Hashr   Crypto.Cipherr   r   r   Crypto.Util.strxorr   Crypto.SelfTest.st_commonr	   Crypto.SelfTest.loaderr
   r   r+   r   r.   rb   rq   r   r   rY   r   mainrX   r,   r*   <module>r      s  D +    )  #   % 5 ? 	+
*	 	+**	 	+	 	+ 	+	+ 	+ 	
*'	**'		 	+'		+ 	+'		+
*'	+**(	+	 	+(	+	+ 	+(		 	(	 	(		 	(			 	(
	
(	(		 	(		 	(	qC	L8%,x   %,P3X&& 3:#7h'' #7L;%H-- ;%|  , z3EMMg& r,   