
    ÿig                     p    d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZ d Zd Zd	 Zd
 Zd ZdS )    N)AES)SHA512)_bcrypt_hash)strxor)tostrbchrbordc                     t          |           dk     rt          d          t          j        d| d d                   d         }|| dd          fS )N   zInsufficient data>Ir   )len
ValueErrorstructunpack)datavalues     Y/var/www/html/afkarena/venv/lib/python3.11/site-packages/Cryptodome/PublicKey/_openssh.py	read_int4r   (   sP    
4yy1}},---M$RaR))!,E$qrr(?    c                     t          |           \  }} t          |           |k     rt          d          | d |         | |d          fS )NzInsufficient data (V))r   r   r   )r   sizes     r   
read_bytesr   /   sL    4JD$
4yy40111;TUU##r   c                 H    t          |           \  }}t          |          |fS )N)r   r   )r   sds      r   read_stringr   6   s#    dDAq88Q;r   c                     t          |           D ]-\  }}t          |          |dz   dz  k    rt          d          .d S )N      zIncorrect padding)	enumerater	   r   )padvxs      r   check_paddingr$   ;   sR    # 2 2177A~&&0111 '2 2r   c           	          |                      d          st          d          | dd          } t          |           \  }} t          |           \  }} t          |           \  }} t	          |           \  }} |dk    rt          d          t          |           \  }} t          |           \  }} | rt          d          t          |          dz  dk    rt          d	          |d
k    r|}nA||fdk    rt          d|d|          t          |          \  }	}t	          |          \  }
}t          |	          dk    rt          d          |rt          d          t          j        |                                          }g }d}t          dd          D ]$}t          j        |	t          j        d|          z                                             }t          |d||d          }t          j        dgt          j        d|          R  }t          |          }t          d|
          D ]p}t          |dt          j        |                                          |d          }t          j        dgt          j        d|          R  }t          |||           q|                    |d d                    &d                    d t%          | D                       }t'          j        |d d         t&          j        d|dd                   }|                    |          }t	          |          \  }}t	          |          \  }}||k    rt          d          t          |          \  }}||fS ) Ns   openssh-key-v1 zIncorrect magic value   r   zWe only handle 1 key at a timezToo much data   r   zIncorrect payload lengthnone)z
aes256-ctrbcryptzUnsupported encryption scheme /   zIncorrect salt lengthzToo much data in kdfoptionss    OxychromaticBlowfishSwatDynamite   r      Fz	<IIIIIIIIz	>IIIIIIII)output   r   c                 R    g | ]$\  }}t          |          t          |          z   %S  )r   ).0abs      r   
<listcomp>z2import_openssh_private_generic.<locals>.<listcomp>y   s,    GGGv1477477?GGGr       0   )nonceinitial_valuezIncorrect checksum)
startswithr   r   r   r   r   r   newdigestranger   packr   r   	bytearrayr   appendjoinzipr   MODE_CTRdecrypt)r   password
ciphernamekdfname
kdfoptionsnumber_of_keys_	encrypted	decryptedsalt
iterations
pwd_sha512stripesconstantcountsalt_sha512out_leoutaccresultcipher	checkint1	checkint2ssh_names                           r   import_openssh_private_genericr\   A   s    ??011 201119D"4((J%%MGT!$''J$T??ND9:::$GAt &&OIt *)))
9~~Q3444 V		 $<<<*jjjRYRYZ[[[%j11j!*:!6!6
Jt99??4555 	<:;;;Z))0022
61a[[ 		% 		%E *TFKe,D,D%DEELLNNK!*ahNNF+kOFM+v,N,NOOOCC..C1j)) - -%j!VZ__5K5K5M5MxY^__k+Sk60R0RSSSsC,,,,,NN3ss8$$$$GGgGGGHH"'-bh'79 9 9 NN9--	$Y//Iy$Y//IyI-...%i00HiYr   )r   Cryptodome.Cipherr   Cryptodome.Hashr   Cryptodome.Protocol.KDFr   Cryptodome.Util.strxorr   Cryptodome.Util.py3compatr   r   r	   r   r   r   r$   r\   r1   r   r   <module>rb      s   >  ! ! ! ! ! ! " " " " " " 0 0 0 0 0 0 ) ) ) ) ) ) 7 7 7 7 7 7 7 7 7 7  $ $ $  
2 2 2F F F F Fr   