+
    '(j                     p    ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
HtHt R tR tR	 tR
 tR tR# )    N)AES)SHA512)_bcrypt_hash)strxor)tostrbchrbordc                     \        V 4      ^8  d   \        R4      h\        P                  ! RV R,          4      ^ ,          pWR,          3# )   zInsufficient data>I:Nr   N:r   NN)len
ValueErrorstructunpack)datavalues   & N/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/PublicKey/_openssh.py	read_int4r   (   s>    
4y1},--MM$R)!,Er(?    c                 d    \        V 4      w  r\        V 4      V8  d   \        R 4      hV RV WR 3# )zInsufficient data (V)N)r   r   r   )r   sizes   & r   
read_bytesr   /   s:    4JD
4y4011;U##r   c                 6    \        V 4      w  r\        V4      V3# )N)r   r   )r   sds   &  r   read_stringr   6   s    dDA8Q;r   c                     \        V 4       F.  w  r\        V4      V^,           ^,          8w  g   K%  \        R4      h	  R# )   zIncorrect paddingN)	enumerater	   r   )padvxs   &  r   check_paddingr#   ;   s2    #7A~&011 r   c           
         V P                  R 4      '       g   \        R4      hV R,          p \        V 4      w  r \        V 4      w  r0\        V 4      w  r@\	        V 4      w  rPV^8w  d   \        R4      h\        V 4      w  r`\        V 4      w  rpV '       d   \        R4      h\        V4      ^,          ^ 8w  d   \        R4      hVR8X  d   TpEMFW#3R8w  d   \        RV: RV: 24      h\        V4      w  r\	        V4      w  r\        V	4      ^8w  d   \        R	4      hV'       d   \        R
4      h\        P                  ! V4      P                  4       p. pRp\        ^^4       EF!  p\        P                  ! V	\        P                  ! RV4      ,           4      P                  4       p\        V^WR4      p\        P                  ! R.\        P                  ! RV4      O5!  p\        V4      p\        ^V
4       Fo  p\        V^\        P                  ! V4      P                  4       VR4      p\        P                  ! R.\        P                  ! RV4      O5!  p\        VVVR7       Kq  	  VP!                  VR,          4       EK$  	  RP#                  \%        V!   UUu. uF!  w  pp\'        V4      \'        V4      ,           NK#  	  upp4      p\(        P                  ! VR,          \(        P*                  RV^ ^0 R7      pVP-                  V4      p\	        V4      w  pp\	        V4      w  ppVV8w  d   \        R4      h\        V4      w  ppVV3# u uppi )s   openssh-key-v1 zIncorrect magic value:   NNzWe only handle 1 key at a timezToo much datazIncorrect payload lengthnonezUnsupported encryption scheme /zIncorrect salt lengthzToo much data in kdfoptionss    OxychromaticBlowfishSwatDynamiter   Fz	<IIIIIIIIz	>IIIIIIII)output:N   Nr   :N    N)nonceinitial_valuezIncorrect checksum)z
aes256-ctrbcrypt)
startswithr   r   r   r   r   r   newdigestranger   packr   r   	bytearrayr   appendjoinzipr   r   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abresultcipher	checkint1	checkint2ssh_names   &&                        r   import_openssh_private_genericrR   A   s    ??0110119D"4(J%MG!$'J$T?N9::$GA &OI))
9~Q344 V	 $<<jRYZ[[%j1!*:!6
t9?455:;;ZZ)002
61a[E **TFKKe,D%DELLNK!*aNF++kOFMM+v,NOCC.C1j)%j!VZZ_5K5K5MxY^_kk+Sk60RSsC, * NN3s8$ ! gGv14747??GH"'-b'79 NN9-	$Y/Iy$Y/IyI-..%i0HiY Hs    'M
)r   Crypto.Cipherr   Crypto.Hashr   Crypto.Protocol.KDFr   Crypto.Util.strxorr   Crypto.Util.py3compatr   r   r	   r   r   r   r#   rR    r   r   <module>rY      s6   >    , % 3 3$
2Fr   