+
    iO                         R t ^ RIHtHtHt ^ RIt]P                  ! ]4      t^ RI	H
t
Ht ^ RIHt ^RIHtHtHt ^RIHt . ROt ! R
 R]]4      t ! R R]4      t ! R R]4      t ! R R	]4      tR# )zI
passlib.tests.test_handlers_cisco - tests for Cisco-specific algorithms
)absolute_importdivisionprint_functionN)hashexc)u)UserHandlerMixinHandlerCaserepeat_string)UPASS_TABLEcisco_pix_testcisco_asa_testcisco_type7_testc                     a  ] tR t^t o RtRt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3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R0NR1NR2NR3NR4NR5NR6NR7NR8N]! R4      P                  R4      R3R3N]! R4      P                  R4      P                  R	4      P                  R4      R3R
3NtR tRtV tR# )9_PixAsaSharedTestz+
class w/ shared info for PIX & ASA tests.
TFCaiIvkLMu2TOHXGTuseru   táblezutf-8Og8fB4NyF0m5Ed9czlatin-1zcMvFC2XVBmK/68yBc                  a  RV 3R llp\        RS P                  P                  4      pV! V4      pVR,           pV! V4      pS P                  WS4       VR,           pV! V4      pS P                  Ws4       S P                  Wu4       V! VRR7       S P	                  \
        P                  WRR7       S P	                  \
        P                  WRR7       R# )	z
_calc_checksum() -- spoil oversize passwords during verify

for details, see 'spoil_digest' flag instead that function.
this helps cisco_pix/cisco_asa implement their policy of
``.truncate_verify_reject=True``.
c                 F   < SP                  VR 7      P                  V 4      # )use_defaults)handler_calc_checksum)secretfor_hashselfs   &&_/var/www/html/photoedit/myenv/lib/python3.14/site-packages/passlib/tests/test_handlers_cisco.pycalc8_PixAsaSharedTest.test_calc_digest_spoiler.<locals>.calc   s    <<X<6EEfMM    1234XYT)r   N)F)r
   r   truncate_sizeassertNotEqualassertRaisesr   PasswordSizeError)r   r   short_secret
short_hashlong_secret	long_hashalt_long_secretalt_long_hashs   f       r   test_calc_digest_spoiler*_PixAsaSharedTest.test_calc_digest_spoiler   s    	N %VT\\-G-GH,'
 #S(%	I2 ',_-M6M5 	\D)#//TR#//QUVr     N))cisco z2KFQnbNIdI.2KYOU))hscr2   zYtT8/k6Np8F1yz2c))r2   r2   8Ry2YjIyt7RRXU24))r1   johnhN7LzeyYjw12FSIU))r1   jackz7DrfeZ7cyOj/PslD))ripperalexzh3mJrcH0901pqX/m))r1   r1   3USUcOPFUiMCO4Jk))r1   cisco1r:   ))z
CscFw-ITC!admcomzlZt7HSIXw3.QP7.R)cangetinTynyB./ftknE77QP))r=   rramseyjgBZqYtsWfGcUKDi))	phonehomerharriszyIIMSYjiPm0L7a6))r=   r2   r>   )test1zTRPEas6f/aa6JSPL)test2OMT6mXmAvGyzrCtp)test3gTC7RIy1XJzagmLm)test4zoWC1WRwqlBlbpf/O)passwordzNuLKvvWGg.x9HEKO)0123456789abcdef.7nfVBEIEu4KbF/1))1234567890123456r2   feCkwUGktTCAgIbD))watag00s1amr2   jMorNbK0514fadBh))r;   r;   jmINXNH6p1BxUppp))r!   r2   RLPMUQ26KL4blgFN))01234567r2   0T52THgnYdV1tlOF))rS   3.z0dT9Alkdc7EIGS))rS   36CC3Lam53t/mHhoE7))rS   3658xPrWpNnBdD2DzdZ))rS   3333rV   ))rS   3636rX   ))rS   3653rZ   ))rS   admdfWs2qiao6KD/P2L))rS   admar_   ))rS   admadr_   ))rS   r   PNZ4ycbbZ0jp1.j1))rS   user1234rb   ))0123456789abr2   S31BxZOGlAigndcJ))rd   rW   wFqSX91X5.YaRKsi))rd   rY   qjgo3kNgTVxExbno))rd   r[   zmcXPL/vIZcIxLUQs))rd   r\   rf   ))rd   r]   rg   ))rd   r   f.T4BKdzdNkjxQl7))rd   rc   rh   )__name__
__module____qualname____firstlineno____doc__ _PixAsaSharedTest__unittest_skiprequires_userr   r   encodedecodepix_asa_shared_hashesr.   __static_attributes____classdictcell____classdict__s   @r   r   r      s     OMy
 	,	y
 	*y
 	'y
 	0y
  	0!y
* 	1+y
, 	1-y
. 	2/y
0 	71y
2 	)3y
4 	65y
> 	7?y
H 	/Iy
J 	6Ky
T 	&Uy
V 	&Wy
X 	&Yy
Z 	&[y
\ 	)]y
^ 	1_y
h 	7iy
j 	2ky
t 	3uy
z 
(){y
f 	+gy
l 	/my
n 	0oy
p 	1qy
r 	2sy
t 	3uy
v 	3wy
x 	3yy
z 	2{y
| 	3}y
~ 	4y
@ 	3Ay
B 	7Cy
H 	3Iy
J 	5Ky
L 	6My
N 	7Oy
P 	7Qy
R 	7Sy
T 	7Uy
V 	;Wy
l J-

w
'	02DEmy
n J-

w
'
.
.y
9
@
@
I

%	'oy
vW Wr    r   c                       ] tR t^t]P
                  t]P                  . 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R%NR&NR'NR(NR)N,           t	Rt
R# )*r   r0   N)0123456789abcr2   eacOpB7vE7ZDukSF))ry   rU   ylJTd/qei66WZe3w)ry   rW   hDx8QRlUhwd6bU8N)ry   rY   vYOOtnkh1HXcMrM7)ry   r[   r{   )ry   r\   r}   )ry   r]   r   )ry   r   f4/.SALxqDo59mfV)ry   rc   r   )0123456789abcdr2   6r8888iMxEoPdLp4)r   rU   f5lvmqWYj9gJqkIH)r   rW   OJJ1Khg5HeAYBH1c)r   rY   r   )r   r[   r   )r   r\   r   )r   r]   r   )r   r^   DbPLCFIkHc2SiyDk)r   r`   r   )r   r   WfO2UiTapPkF/FSn)r   rc   r   )0123456789abcder2   al1e0XFIugTYLai3)r   rU   lYbwBu.f82OIApQB)r   rW   r   )r   rY   r   )r   r[   r   )r   r\   r   )r   r]   r   )r   r^   KgKx1UQvdR/09i9u)r   r`   r   )r   r   qLopkenJ4WBqxaZN)r   rc   r   )rK   r2   rL   )rK   rW   rL   )rK   rY   rL   )rK   r[   rL   )rK   r\   rL   )rK   r]   rL   )rK   r   rL   )rK   rc   rL   )ri   rj   rk   rl   r   	cisco_pixr   r   rr   known_correct_hashesrs   r0   r    r   r   r      s   nnG -BB ;F 	4;F 	5;F  	6!;F" 	7#;F$ 	8%;F& 	8';F( 	8);F* 	8+;F, 	<-;F2 	53;F4 	65;F6 	77;F8 	89;F: 	9;;F< 	9=;F> 	9?;F@ 	8A;FB 	9C;FD 	9E;FF 	=G;FL 	6M;FN 	7O;FP 	8Q;FR 	9S;FT 	:U;FV 	:W;FX 	:Y;FZ 	9[;F\ 	:];F^ 	:_;F` 	>a;Ff 	7g;Fh 	9i;Fj 	:k;Fl 	;m;Fn 	;o;Fp 	;q;Fr 	;s;Ft 	?u;F ;r    c                   T   ] tR tRt]P
                  t]P                  . 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R&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCN,           t	Rt
R# )Dr   i  r0   Nrx   )r|   FRV9JG18UBEgX0.O)r~   NIwkusG9hmmMy6ZQ)r   NmrkP98nT7RAeKZz)r   r   )r   r   )r   8Q/FZeam5ai1A47p)r   r   r   )r   yxGoujXKPduTVaYB)r   W0jckhnhjnr/DiT/)r   HuVOxfMQNahaoF8u)r   r   )r   r   )r   r   )r   RtOmSeoCs4AUdZqZ)r   r   )r   rrucwrcM0h25pr.m)r   r   r   )r   nAZrQoHaL.fgrIqt)r   2GxIQ6ICE795587X)r   QmDsGwCRBbtGEKqM)r   r   )r   r   )r   r   )r   Aj2aP0d.nk62wl4m)r   r   )r   etxiXfo.bINJcXI7)r   r   r   )r   GhI8.yFSC5lwoafg)r   KFBI6cNQauyY6h/G)r   Ghdi1IlsswgYzzMH)r   r   )r   r   )r   IneB.wc9sfRzLPoh)r   r   ))0123456789abcdefqr2   zbKshl.EN.X3CVFRQ))r   rW   JAeTXHs0n30svlaG))r   rY   4fKSSUBHT1ChGqHp))r   r[   zUSEJbxI6.VY4ecBP))r   r\   r   ))r   r]   r   ))r   r   /dwqyD7nGdwSrDwk))r   rc   r   ))0123456789abcdefqwertyuiopar2   z4wp19zS3OCe.2jt5))r   rW   PjUoGqWBKPyV9qOe))r   rY   bfCy6xFAe5O/gzvM))r   r[   zrd/ZMuGTJFIb2BNG))r   r\   r   ))r   r]   r   ))r   r   zynfWw3UtszxLMgL))r   rc   r   ))0123456789abcdefqwertyuiopasr2   W6nbOddI0SutTK7m))r   rW   r   ))r   rY   r   ))r   r   r   ))r   rc   r   )) 0123456789abcdefqwertyuiopasdfghr2   5hPT/iC6DnoBxo6a))r   rW   r   ))r   rY   r   ))r   r   r   ))r   rc   r   )ri   rj   rk   rl   r   	cisco_asar   r   rr   r   rs   r0   r    r   r   r     s   nnG,BB aF 	4aF 	6aF 	7aF  	8!aF" 	8#aF$ 	8%aF& 	8'aF( 	<)aF. 	5/aF0 	61aF2 	73aF4 	85aF6 	97aF8 	99aF: 	9;aF< 	8=aF> 	9?aF@ 	9AaFB 	=CaFH 	6IaFJ 	7KaFL 	8MaFN 	9OaFP 	:QaFR 	:SaFT 	:UaFV 	9WaFX 	:YaFZ 	:[aF\ 	>]aFb 	7caFd 	9eaFf 	:gaFh 	;iaFj 	;kaFl 	;maFn 	;oaFp 	?qaF| 	8}aF~ 	:aF@ 	;AaFB 	<CaFD 	<EaFF 	<GaFH 	<IaFJ 	@KaFP 	BQaFR 	DSaFT 	EUaFV 	FWaFX 	FYaFZ 	F[aF\ 	F]aF^ 	J_aFh 	CiaFj 	EkaFl 	FmaFn 	GoaFp 	KqaFx 	GyaFz 	I{aF| 	J}aF~ 	KaF@ 	OAaF ar    c            	       l   a  ] tR tRt o ]P
                  t^t]t	R	R
RRRRR]
R3.tRR.tR tR tRtV tR# )r   ir  0958EDC8A9F495F6F8A5FD0A480E051A33490E
99400E4812c                B   ^ RI HpHp V P                  pV P                   FX  w  rEV! V4      pV! V4      pV P                  VP                  V4      V4       V P                  VP                  VR4      V4       KZ  	  V P                  \        VP                  RR4       R# )ztest cisco_type7.decode())
to_unicodeto_bytesNr   ascii)	passlib.utilsr   r   r   r   assertEqualrq   r&   UnicodeDecodeError)r   r   r   r   r   r   usecretbsecrets   &       r   test_90_decodecisco_type7_test.test_90_decode  s    6,, 55LF (Gv&GW^^D17;W^^D$7A	 6 	,gnn2G	=r    c                   V P                   pV P                  \        VRR7       V! RRR7       V P                  \        VRR7       V P                  \        VR	R7       V P                  \        V^dR7       V P                  \        VP                  RR7       V P                  \        VP                  R	R7       V P                  \        VP                  ^dR7       V P                  R4      ;_uu_ 4        VP	                  ^dRR7      pRRR4       V P                  X! RR7      P                  ^44       R#   + '       g   i     L5; i)
ztest salt value border casesN)saltT)r   r   abczsalt/offset must be.*)r   relaxedr   i)r   r&   	TypeError
ValueErrorusingassertWarningListr   r   )r   r   subclss   &  r   test_91_saltcisco_type7_test.test_91_salt  s   ,,)W48T-)W59*gC8*gC8)W]]?*gmm#>*gmm#>##$;<<]]T]:F =T277< =<s   6D77E	r0   N)zsecure 04480E051A33490E)zIts time to go to lunch!2153B1F1F443E22292D73212D5300194315591954465A0D0B59)zt35t:pa55w0rd08351F1B1D431516475E1B54382F)zhiImTesting:)020E0D7206320A325847071E5F5E)cisco123060506324F41584B56)r   1511021F07257A767B)zSupe&8ZUbeRp4SS 06351A3149085123301517391C501918)ri   rj   rk   rl   r   cisco_type7r   	salt_bitsint	salt_typer   r   known_unidentified_hashesr   r   rs   rt   ru   s   @r   r   r   r  sr     GII 	(
	? 	:
 	:
 	+*
 	@ 
./M'V 	 	!== =r    )r   r   r   )rm   
__future__r   r   r   logging	getLoggerri   logpasslibr   r   passlib.utils.compatr   utilsr   r	   r
   test_handlersr   __all__r   r   r   r   r0   r    r   <module>r     s~    A @ !  " ? ? &cW(+ cWP?& ?Jd& dTS={ S=r    