
    =[j!                     \    d Z ddlmZ ddlmZmZ  G d de          Z G d d          ZdS )	zSRP password handling.    )Enum)pbkdf2_hmacsha256c                       e Zd ZdZdZdZdS )SrpProtocolTypezSRP password types.s2ks2k_foN)__name__
__module____qualname____doc__S2KS2K_FO     ]/home/thesage/.hermes/hermes-agent/venv/lib/python3.11/site-packages/pyicloud/srp_password.pyr   r      s        
CFFFr   r   c            
       J    e Zd ZdZdeddfdZdededed	eddf
d
Z	defdZ
dS )SrpPasswordzSRP password.passwordreturnNc                     t          |                    d                                                    | _        d | _        d | _        d | _        d | _        d S )Nzutf-8)r   encodedigest_password_hashsalt
iterations
key_lengthprotocol)selfr   s     r   __init__zSrpPassword.__init__   sJ    %+HOOG,D,D%E%E%L%L%N%N"&	&*&*04r   r   r   r   r   c                 >    || _         || _        || _        || _        dS )zSet encrypt info.N)r   r   r   r   )r   r   r   r   r   s        r   set_encrypt_infozSrpPassword.set_encrypt_info   s$     	$$ r   c                 n   | j         | j        | j        t          d          d}| j        t
          j        k    r,| j                                        	                                }n| j        t
          j
        k    r| j        }|t          d          t          d|| j         | j        | j                  S )zEncode password.NzEncrypt info not setzUnsupported SrpPassword typer   )r   r   r   
ValueErrorr   r   r   r   hexr   r   r   )r   password_digests     r   r   zSrpPassword.encode!   s    9 74?;R3444(,=O222"15577>>@@OO]o111"1O";<<<IOO
 
 	
r   )r
   r   r   r   strr    bytesintr   r"   r   r   r   r   r   r      s        5 5 5 5 5 5!!'*!8;!GV!	! ! ! !
 
 
 
 
 
 
r   r   N)r   enumr   hashlibr   r   r   r   r   r   r   <module>r,      s            ' ' ' ' ' ' ' '    d   (
 (
 (
 (
 (
 (
 (
 (
 (
 (
r   