
    bi	                        d dl mZ d dlZd dlZd dlZddlmZmZmZm	Z	m
Z
mZ ddZedk(  r eej                         yy)    )annotationsN   )DEFAULT_HASH_LENGTHDEFAULT_MEMORY_COSTDEFAULT_PARALLELISMDEFAULT_TIME_COSTPasswordHasherprofilesc                   t        j                  dt         j                        }|j                  dt        dd       |j                  dt        dt
        	       |j                  d
t        dt        	       |j                  dt        dt        	       |j                  dt        dt        	       |j                  dt        dd 	       |j                  | dd        }d}|j                  r<t        j                  t        t        |j                  j!                                     }n7t        |j"                  |j$                  |j&                  |j(                        }|j+                  |      }t-        d|j.                   d       d|j0                  dfd|j2                  dfd|j4                  dfd|j6                  dffD ]  \  }}}t-        | d| d |         t-        d!       t9        j8                  d"|d#|d$d%|j"                  d&|j$                  d'|j&                  d(|j(                  d)	|j.                  *      }	t-        d+|	|j.                  z  d,z  d-d.       y )/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
             J/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/argon2/__main__.pymainr<      s}   $$' >>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	 *eU 	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=   