+
    i"                     T    R t ^ RIHtHt ^ RIHt ^ RIHt ^ RIH	t	  ! R R]	4      t
R# )z1passlib.tests -- unittests for passlib.crypto.des)with_statementdivision)partial)getrandbytes)TestCasec                      a  ] tR t^t o Rt. R	NR
NRNRNRNRNR	NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NtR tR tR tR t	R t
RtV tR# )*DesTestzpasslib.crypto.desc                   ^ RI HpHpHpHp V P
                   F/  w  p pV! V4      pV! V4      pV P                  WV,          4       K1  	  V P                  \        VR4       V P                  \        W^,           4       V P                  \        VR4       V P                  \        VR4       V P                  \        VR4       R# )zexpand_des_key())expand_des_keyshrink_des_key_KDATA_MASKINT_56_MASK      ?N                    )
passlib.crypto.desr
   r   r   r   des_test_vectorsassertEqualassertRaises	TypeError
ValueError)	selfr
   r   r   r   key1_key2key3s	   &        [/var/www/html/photoedit/myenv/lib/python3.14/site-packages/passlib/tests/test_crypto_des.pytest_01_expandDesTest.test_01_expand;   s    	F 	F
 //JD!Q!$'D!$'DT+#56	 0 	)^S9 	*n!mD*ni@ 	*nb9*ni@    c                   ^ RI HpHpHp V P	                  4       p\        ^4       F0  p\        V^4      pV! V4      pV! V4      pV P                  W4       K2  	  V P                  \        VR4       V P                  \        W#^,           4       V P                  \        VR4       V P                  \        VR4       V P                  \        VR4       R# )zshrink_des_key())r
   r   INT_64_MASKr   Ns	            r             )r   r
   r   r"   	getRandomranger   r   r   r   r   )	r   r
   r   r"   rngir   r   r   s	   &        r   test_02_shrinkDesTest.test_02_shrinkS   s    RRnn rAQ'D!$'D!$'DT(	  	)^S9 	*n!mD*ni@ 	*nb9*ni@r    c                    ^ RI HpHpHp V P	                  4       pW,          VP                  ^ V4      V,          ,          # )zrandomize parity bits)r   _KPARITY_MASKr"   )r   r   r+   r"   r$   randint)r   keyr   r+   r"   r&   s   &&    r   _random_parityDesTest._random_parityk   s2    NNnn!ckk!K&@=&PQQr    c                "   ^ RI HpHpHpHp V P
                   F  w  rVpV! V4      pV! V4      pV! V4      pV! WV4      pV P                  WRV: RV: R24       V! V4      p	V! W4      pV P                  WRV: RV	: RV: R24       \        ^4       FG  p
V! V P                  V! V4      4      4      pV! W4      pV P                  WRV: RV: RV: R24       KI  	  K  	  R
pV P                  \        V^ V4       V P                  \        VRV4       V P                  \        W^ 4       V P                  \        WR4       V P                  \        WVRR7       V P                  \        WVRR7       V P                  \        WV^ ^ R7       R	# )zdes_encrypt_block())des_encrypt_blockr   _pack64	_unpack64key= plaintext=:z shrink(key)= rndparity(key)=saltroundsNr   r   r#   r      )r   r1   r   r2   r3   r   r   r%   r.   r   r   r   )r   r1   r   r2   r3   r-   	plaintextcorrectresultr   r   r   stubs   &            r   test_03_encrypt_bytesDesTest.test_03_encrypt_bytesq   s   	B 	B (,'<'<#CG#,C	*Ig&G 's6FVW/2I/? @ "#&D&t7FVW/2D)/E F 2Yt229S>BC*4;  36i3I J % (=2 )%64@*&7DI 	)%6a@*&7yI 	*&7t"M*&7t%P 	*&7tQqQr    c                v   ^ RI Hp V P                   Fs  w  r#pV! W#4      pV P                  WTRV: RV: R24       \	        ^4       F;  pV P                  V4      pV! Ws4      pV P                  WTRV: RV: RV: R24       K=  	  Ku  	  V P                  \        VR^ 4       V P                  \        VR
^ 4       V P                  \        V^ R4       V P                  \        V^ R
4       V P                  \        V^ ^ R
R7       V P                  \        V^ ^ RR7       V P                  \        V^ ^ ^ ^ R7       R	# )zdes_encrypt_int_block())des_encrypt_int_blockr4   r5   r6   r7       r8   r:   Nr   r<   )	r   rD   r   r   r%   r.   r   r   r   )r   rD   r-   r=   r>   r?   r   r   s   &       r   test_04_encrypt_intsDesTest.test_04_encrypt_ints   s9   < (,'<'<#CG*3:FVW/2I/? @ 2Y**3/.t?  36i3I J  (= 	)%:GQG*&;RC 	)%:AwG*&;QC 	*&;QK*&;QN 	*&;Q1QOr     N)    rI   l   #b72e )    rJ   l   X\|XH )l            l           l   {U
t9s,	 )   ""DD rK   l   3E<f  )   MW	rK   l   -S$e74; )rK   rL   l   rq5R )   2lajv rL   l   <tCei )l   Wn4Ae l   Bgr@[l   M46lzH )l   n7;e	l   W{2f l   qRj@tQ )l   &L=l   rqPFl   YhGmu4 )l   1L0KB l   
D[`-*
 l   * )l   5V%l   2 l   @?my
 )l   rizel   :#!x,l   [X+5 )l   5El   anc:l   	\C hf)l   sq~K l   jH~SR(1 l   z+o,;S )l   *M8=l   (nAF^ l   ^9*~ )l   /;DD#l   `^k}4 l   @qrb )l   Fu-.> l   2RNyj2 l   w+:WQ)l   ^F54Ax l   \>ka8+X l   ZW;@x )l   vat5B l   b`.[^l   Vn.6E )l   0SYXl   b]di@ l   VUE
 )l   %fszK l   <S! l   Vr} )l   sV+Tx} l   Rnj9l   !Vny )l   )DuJO l   *q/Ul   JN[S )l   &6qCl   (1@ql l   A.V";`z )l   O$'p|b l   Z)ZH l   wi@ )l   rL   l    qQ3h )l   ||x rL   l   Fq\ )l   qc rL   l   LSXGm )rI   rJ   l   Q$*B* )rJ   rI   l   [U7=UU )rL   rI   l   =@?. )rM   rJ   l   B/?#@]Q )__name__
__module____qualname____firstlineno__descriptionPrefixr   r   r(   r.   rA   rF   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s    ,$D$ 	E$ 	E	$
 	E$ 	E$ 	E$ 	E$ 	E$ 	E$ 	E$ 	E$ 	E$ 	E$ 	E$  	E!$" 	E#$$ 	E%$& 	E'$( 	E)$* 	E+$, 	E-$. 	E/$0 	E1$2 	E3$4 	E5$6 	E7$8 	E9$: 	E;$< 	E=$> 	E?$@ 	EA$B 	EC$D 	EE$F 	EG$LA0A0R,R\P Pr    r   N)__doc__
__future__r   r   	functoolsr   passlib.utilsr   passlib.tests.utilsr   r   rH   r    r   <module>r[      s(    7 0  ' (
mPh mPr    