
    }tf                        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      }|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)                  |      }|j*                  df|j,                  df|j.                  df|j0                  dfd}t3        d|j4                  fz         t7        |j9                               D ]  \  }}t3        d||d   |d   fz          t3        d       t;        j:                  d|d|dd |j                   d!|j"                  d"|j$                  d#|j&                  d$	|j4                  %      }	t3        d&|	|j4                  z  d'z  d(d)       y )*NzBenchmark Argon2.)descriptionz-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_len
iterationsKiBthreadsbyteszRunning Argon2id %d times with:z	%s: %d %sr   z
Measuring...z
ph.verify(z, )zLfrom argon2 import PasswordHasher, Type

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add_argumentintr   r   r   r   str
parse_argsprofiler	   from_parametersgetattrr
   uppertmplhashr   r   r   r   printnsorteditemstimeit)
argvparserargspasswordphr+   paramskvdurations
             Y/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/argon2/__main__.pymainr;      su   $$1DEF
3*L   3]4E   3_6I   3_6I   3_6I   A	   T!"X&DH||++Hdll0023
 ffVV	
 778D llL1.	2[['*	F 

+tvvi
78v||~& -1kQ!adO+,- 

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