+
    '(j$                        ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHtH	t	H
t
 ^ RIHt ^ RIHt R t^ R	IHt  ! R
 R]4      t^ RIHt  ! R R]4      tRtRt] F  t]3R lt]! ]R],           ]4       K  	  ] F  t]3R lt]! ]R],           ]4       K  	  AARt] F  t]3R lt]! ]R],           ]4       K  	   ! R R] P6                  4      t/ 3R lt]R8X  d   R t] P@                  ! RR7       R# R# )    N)	unhexlify)list_test_cases)tobytes)AESDES3DES)SHAKE128)load_test_vectors_wycheproofc                 `    \         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_OFB.pyget_tag_randomr   (   s     <<WS\*//77    )BlockChainingTestsc                   \   a  ] tR t^-t o ]P
                  t]P
                  tR t	R t
RtV tR# )OfbTestsc                   R .^d,          p\         P                  ! V P                  \         P                  V P                  ^R7      pV Uu. uF  q2P                  V4      NK  	  pp\         P                  ! V P                  \         P                  V P                  ^R7      pV P                  RP                  V4      VP                  RP                  V4      4      4       \         P                  ! V P                  \         P                  V P                  ^R7      pV Uu. uF  q2P                  V4      NK  	  pp\         P                  ! V P                  \         P                  V P                  ^R7      pV P                  RP                  V4      VP                  RP                  V4      4      4       R# u upi u upi s   7777777)segment_sizer   N)r   r   key_128MODE_CFBiv_128encryptassertEqualjoinself
plaintextscipherxciphertextss   &    r   test_unaligned_data_128 OfbTests.test_unaligned_data_1284   s&   !^c)
s||T[[qQ3=?:aq):?s||T[[qQ+.sxx
?S0TUs||T[[sS3=?:aq):?s||T[[sS+.sxx
?S0TU @
 @   F9!F>c                   R .^d,          p\         P                  ! V P                  \         P                  V P                  ^R7      pV Uu. uF  q2P                  V4      NK  	  pp\         P                  ! V P                  \         P                  V P                  ^R7      pV P                  RP                  V4      VP                  RP                  V4      4      4       \         P                  ! V P                  \         P                  V P                  ^@R7      pV Uu. uF  q2P                  V4      NK  	  pp\         P                  ! V P                  \         P                  V P                  ^@R7      pV P                  RP                  V4      VP                  RP                  V4      4      4       R# u upi u upi r   )r   r   key_192r   iv_64r   r   r   r    s   &    r   test_unaligned_data_64OfbTests.test_unaligned_data_64A   s*   !^c)
$,,tzzPQR3=?:aq):?$,,tzzPQR+.sxx
?S0TU$,,tzzPRS3=?:aq):?$,,tzzPRS+.sxx
?S0TU @
 @r(    N)__name__
__module____qualname____firstlineno__r   MODE_OFBaes_moder   	des3_moder&   r,   __static_attributes____classdictcell____classdict__s   @r   r   r   -   s)     ||HIV
V 
Vr   r   )NistBlockChainingVectorsc                   ^    ] tR t^Pt]P
                  t]P
                  t]	P
                  t
RtR# )NistOfbVectorsr.   N)r/   r0   r1   r2   r   r3   r4   r   des_moder   r5   r6   r.   r   r   r<   r<   P   s    ||H||HIr   r<   c                 (    V P                  V4       R # N)_do_kat_aes_testr!   	file_names   &&r   new_funcrC   q       i(r   	test_AES_c                 (    V P                  V4       R # r?   )_do_mct_aes_testrA   s   &&r   rC   rC   v   rD   r   c                 (    V P                  V4       R # r?   )_do_tdes_testrA   s   &&r   rC   rC      s    9%r   
test_TDES_c                   6   a  ] tR t^t o RtR tR tR tRtV t	R# )SP800TestVectorszLClass exercising the OFB test vectors found in Section F.4
of NIST SP 800-3Ac                   RpRpRpRp\        V4      p\        V4      p\        V4      p\        V4      p\        P                  ! V\        P                  V4      pV P	                  VP                  V4      V4       \        P                  ! V\        P                  V4      pV P	                  VP                  V4      V4       \        P                  ! V\        P                  V4      pV P	                  VP                  VRR 4      VRR 4       \        P                  ! V\        P                  V4      pV P	                  VP                  VRR 4      VRR 4       R# ) 6bc1bee22e409f96e93d7e117393172a 2b7e151628aed2a6abf7158809cf4f3c 000102030405060708090a0b0c0d0e0fNڀ6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710ڀ3b3fd92eb72dad20333449f8e83cfb4a7789508d16918f03f53c52dac54ed8259740051e9c5fecf64344f7a82260edcc304c6528f659c77866a510d9c1d6ae5er   r   r   r3   r   r   decryptr!   	plaintext
ciphertextkeyivr#   s   &     r   test_aes_128SP800TestVectors.test_aes_128   s   ;	;
 ;:nr]i(	z*
cllB/	2J?cllB/
3Y?cllB/	#27CRIcllB/
3B8)CR.Ir   c                   RpRpRpRp\        V4      p\        V4      p\        V4      p\        V4      p\        P                  ! V\        P                  V4      pV P	                  VP                  V4      V4       \        P                  ! V\        P                  V4      pV P	                  VP                  V4      V4       \        P                  ! V\        P                  V4      pV P	                  VP                  VRR 4      VRR 4       \        P                  ! V\        P                  V4      pV P	                  VP                  VRR 4      VRR 4       R# )rN   08e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7brP   NrQ   ڀcdc80d6fddf18cab34c25909c99a4174fcc28b8d4c63837c09e81700c11004018d9a9aeac0f6596f559c6d4daf59a5f26d9f200857ca6c3e9cac524bd9acc92arS   rT   rV   s   &     r   test_aes_192SP800TestVectors.test_aes_192   s   ;	;
 K:nr]i(	z*
cllB/	2J?cllB/
3Y?cllB/	#27CRIcllB/
3B8)CR.Ir   c                   RpRpRpRp\        V4      p\        V4      p\        V4      p\        V4      p\        P                  ! V\        P                  V4      pV P	                  VP                  V4      V4       \        P                  ! V\        P                  V4      pV P	                  VP                  V4      V4       \        P                  ! V\        P                  V4      pV P	                  VP                  VRR 4      VRR 4       \        P                  ! V\        P                  V4      pV P	                  VP                  VRR 4      VRR 4       R# )rN   @603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4rP   NrQ   ڀdc7e84bfda79164b7ecd8486985d38604febdc6740d20b3ac88f6ad82a4fb08d71ab47a086e86eedf39d1c5bba97c4080126141d67f37be8538f5a8be740e484rS   rT   rV   s   &     r   test_aes_256SP800TestVectors.test_aes_256   s   ;	;
 [:nr]i(	z*
cllB/	2J?cllB/
3Y?cllB/	#27CRIcllB/
3B8)CR.Ir   r.   N)
r/   r0   r1   r2   __doc__r[   r`   re   r6   r7   r8   s   @r   rL   rL      s"     J6J6J Jr   rL   c                     . pV\        \        4      ,          pV P                  R 4      '       d   V\        \        4      ,          pV\        \        4      ,          pV# )
slow_tests)r   r   getr<   rL   )configtestss   & r   	get_testsrm      sI    E	_X&&Ezz,00	_-..ELr   __main__c                  >    \         P                  ! \        4       4      # r?   )unittest	TestSuiterm   r.   r   r   <lambda>rr      s    H&&y{3r   suite)defaultTest)zOFBGFSbox128.rspzOFBGFSbox192.rspzOFBGFSbox256.rspzOFBKeySbox128.rspzOFBKeySbox192.rspzOFBKeySbox256.rspzOFBVarKey128.rspzOFBVarKey192.rspzOFBVarKey256.rspzOFBVarTxt128.rspzOFBVarTxt192.rspzOFBVarTxt256.rspzOFBMMT128.rspzOFBMMT192.rspzOFBMMT256.rsp)zOFBMCT128.rspzOFBMCT192.rspzOFBMCT256.rsp)zTOFBMMT2.rspzTOFBMMT3.rspzTOFBinvperm.rspzTOFBpermop.rspzTOFBsubtab.rspzTOFBvarkey.rspzTOFBvartext.rsp)!rp   binasciir   Crypto.SelfTest.st_commonr   Crypto.Util.py3compatr   Crypto.Cipherr   r   r   Crypto.Hashr	   Crypto.SelfTest.loaderr
   r   Crypto.SelfTest.Cipher.test_CBCr   r   r:   r<   nist_aes_kat_mmt_filesnist_aes_mct_filesrB   rC   setattrnist_tdes_filesTestCaserL   rm   r/   rs   mainr.   r   r   <module>r      s  >   5 ) ( (   ?8 ?V! VB E-  &  (I!* )NK)3X> (
 $I!* )NK)3X> $ x !I!* &NL94h? !SJx(( SJl   z3EMMg& r   