
    K}bg"                     Z    d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	  G d de	          Z
dS )	z1passlib.tests -- unittests for passlib.crypto.des    )with_statementdivision)partial)getrandbytes)TestCasec                   8    e Zd ZdZg dZd Zd Zd Zd Zd Z	dS )	DesTestzpasslib.crypto.des)"r   r   l   #b72e )    r   l   X\|XH )l            l           l   {U
t9s,	 )   ""DD r   l   3E<f  )   MW	r   l   -S$e74; )r   r   l   rq5R r
   )   2lajv r   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   r   l    qQ3h )l   ||x r   l   Fq\ )l   qc r   l   LSXGm )r   r   l   Q$*B* )r   r   l   [U7=UU )r   r   l   =@?. )r   r   l   B/?#@]Q c                    ddl m}m}m}m} | j        D ]5\  }}} ||          } ||          }|                     |||z             6|                     t          |d           |                     t          ||dz              |                     t          |d           |                     t          |d           |                     t          |d           dS )	zexpand_des_key()r   )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	            p/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/passlib/tests/test_crypto_des.pytest_01_expandzDesTest.test_01_expand;   s(   	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F
 / 	7 	7JD!Q!>$''D!>$''DT4+#56666 	)^S999 	*nk!mDDD*ni@@@ 	*nb999*ni@@@@@    c                    ddl m}m}m} |                                 }t          d          D ]>}t          |d          } ||          } ||          }|                     ||           ?|                     t          |d           |                     t          ||dz              |                     t          |d           |                     t          |d           |                     t          |d	           d
S )zshrink_des_key()r   )r   r   INT_64_MASK      r   r   s	            r             N)r   r   r   r(   	getRandomranger   r   r   r   r   )	r   r   r   r(   rngir    r"   r#   s	            r$   test_02_shrinkzDesTest.test_02_shrinkS   s   RRRRRRRRRRnn r 	) 	)AQ''D!>$''D!>$''DT4(((( 	)^S999 	*nk!mDDD*ni@@@ 	*nb999*ni@@@@@r&   c                 |    ddl m}m}m} |                                 }||z  |                    d|          |z  z  S )zrandomize parity bitsr   )r   _KPARITY_MASKr(   )r   r   r2   r(   r,   randint)r   keyr   r2   r(   r.   s         r$   _random_parityzDesTest._random_parityk   sR    NNNNNNNNNNnnk!ckk!K&@&@=&PQQr&   c                    ddl m}m}m}m} | j        D ]\  }}} ||          } ||          } ||          } |||          }|                     ||d|d|d            ||          }	 ||	|          }|                     ||d|d|	d|d           t          d          D ]V}
 ||                      ||                              } |||          }|                     ||d|d|d|d           Wd	}| 	                    t          |d|           | 	                    t          |d
|           | 	                    t          ||d           | 	                    t          ||d           | 	                    t          |||d           | 	                    t          |||d           | 	                    t          |||dd           dS )zdes_encrypt_block()r   )des_encrypt_blockr   _pack64	_unpack64key= plaintext=:z shrink(key)=r)    rndparity(key)=r   r   r+   r   salt   roundsN)r   r7   r   r8   r9   r   r   r-   r5   r   r   r   )r   r7   r   r8   r9   r4   	plaintextcorrectresultr"   r!   r#   stubs                r$   test_03_encrypt_byteszDesTest.test_03_encrypt_bytesq   s   	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B (,'< 	J 	J#CG'#,,C	**Igg&&G '&sI66FVWW/2ssIII/? @ @ @ ">#&&D&&tY77FVWW/2ssDDD)))/E F F F 2YY J Jwt2299S>>BBCC**4;;  3633iii3I J J J JJ )%64@@@*&7DIII 	)%6a@@@*&7yIII 	*&7t"MMM*&7t%PPP 	*&7tQqQQQQQr&   c                    ddl m} | j        D ]\  }}} |||          }|                     ||d|d|d           t	          d          D ]D}|                     |          } |||          }|                     ||d|d|d|d           E|                     t          |dd           |                     t          |d	d           |                     t          |dd           |                     t          |dd	           |                     t          |ddd	
           |                     t          |ddd
           |                     t          |dddd           dS )zdes_encrypt_int_block()r   )des_encrypt_int_blockr:   r;   r<   r)   r=       r   r>   r@   rA   N)	r   rI   r   r   r-   r5   r   r   r   )r   rI   r4   rC   rD   rE   r!   r#   s           r$   test_04_encrypt_intszDesTest.test_04_encrypt_ints   s   <<<<<< (,'< 	J 	J#CG**3	::FVWW/2ssIII/? @ @ @ 2YY J J**3//..tY??  3633iii3I J J J JJ 	)%:GQGGG*&;RCCC 	)%:AwGGG*&;QCCC 	*&;QKKK*&;QNNN 	*&;Q1QOOOOOr&   N)
__name__
__module____qualname__descriptionPrefixr   r%   r0   r5   rG   rK    r&   r$   r	   r	      s        ,$ $ $LA A A0A A A0R R R,R ,R ,R\P P P P Pr&   r	   N)__doc__
__future__r   r   	functoolsr   passlib.utilsr   passlib.tests.utilsr   r	   rP   r&   r$   <module>rV      s    7 7 0 / / / / / / /       ' & & & & & ( ( ( ( ( (
mP mP mP mP mPh mP mP mP mP mPr&   