
    ^h	                        S SK Jr  S SKrS SKrS SKrSSKJrJrJrJ	r	J
r
Jr  SS jr\S:X  a  \" \R                  5        gg)    )annotationsN   )DEFAULT_HASH_LENGTHDEFAULT_MEMORY_COSTDEFAULT_PARALLELISMDEFAULT_TIME_COSTPasswordHasherprofilesc                   [         R                  " S[         R                  S9nUR                  S[        SSS9  UR                  S[        S[
        S	9  UR                  S
[        S[        S	9  UR                  S[        S[        S	9  UR                  S[        S[        S	9  UR                  S[        SS S	9  UR                  U SS  5      nSnUR                  (       a=  [        R                  " [        [        UR                  R!                  5       5      5      nO4[        UR"                  UR$                  UR&                  UR(                  S9nUR+                  U5      n[-        SUR.                   S35        SUR0                  S4SUR2                  S4SUR4                  S4SUR6                  S44 H  u  pgn[-        U SU S U 35        M     [-        S!5        [8        R8                  " S"U< S#U< S$3S%UR"                  < S&UR$                  < S'UR&                  < S(UR(                  < S)3	UR.                  S*9n	[-        S+XR.                  -  S,-  S- S.35        g )/NzBenchmark Argon2.)descriptionformatter_classz-nd   z Number of iterations to measure.)typedefaulthelpz-tz`time_cost`)r   r   r   z-mz`memory_cost`z-pz`parallelism`z-lz`hash_length`z	--profilez2A profile from `argon2.profiles. Takes precedence.r   s   secret)	time_costmemory_costparallelismhash_lenzRunning Argon2id z times with:r   bytesr   KiBr   threadsr   
iterationsz:  z
Measuring...z
ph.verify(z, )zFfrom argon2 import PasswordHasher

ph = PasswordHasher(
    time_cost=z,
    memory_cost=z,
    parallelism=z,
    hash_len=z,
)
gc.enable())setupnumber
i  z.1fzms per password verification)argparseArgumentParserArgumentDefaultsHelpFormatteradd_argumentintr   r   r   r   str
parse_argsprofiler	   from_parametersgetattrr
   uppertmplhashprintnr   r   r   r   timeit)
argvparserargspasswordphr.   namevalueunitsdurations
             I/home/james-whalen/.local/lib/python3.13/site-packages/argon2/__main__.pymainr<      st   $$' >>F 3*L   3]4E   3_6I   3_6I   3_6I   A	   T!"X&DH||++Hdll0023
 ffVV	
 778D	dffX\
23 
R[['*	.		2	bllL1	U 	bq() 

}}
THBxl!, vvj 
 
 ffZ 	 vvH 
Bx&& 4',,H
IJ    __main__)r2   z	list[str]returnNone)
__future__r   r   sysr1    r   r   r   r   r	   r
   r<   __name__r2    r=   r;   <module>rF      s?    #  
  DKN zN r=   