
    tZh|                     Z    d dl Z ddlmZ ddlmZmZ dZdZdZd Z	 G d	 d
      Z
d Zd Zy)    N   )der)compat26_strint_to_bytess   ssh-ed25519s   openssh-key-v1 s   nonec                 .    | dk(  rt         S t        d      )NEd25519zUnsupported key type)_SSH_ED25519
ValueError)names    e/var/www/html/wine-match-dev/backend/winematch-backend/venv/lib/python3.12/site-packages/ecdsa/ssh.py_get_key_typer   
   s    y/00    c                   >    e Zd Zd Zd Zd Zd Zd
dZd Zd Z	d Z
y	)_Serializerc                     d| _         y )Nr   bytesselfs    r   __init__z_Serializer.__init__   s	    
r   c                 .    | xj                   |z  c_         y Nr   r   vals     r   put_rawz_Serializer.put_raw   s    

c
r   c                 F    | xj                   t        |dd      z  c_         y )N   big)length	byteorder)r   r   r   s     r   put_u32z_Serializer.put_u32   s    

l3qEBB
r   c                 b    | j                  t        |             | xj                  |z  c_        y r   )r!   lenr   r   s     r   put_strz_Serializer.put_str   s     SX

c
r   c           	          |t        | j                        |z  z
  }| j                  t        t	        dd|z                      y )Nr   )r#   r   r   	bytearrayrange)r   blklenpadlens      r   put_padz_Serializer.put_pad   s5    3tzz?V34YuQF
345r   c                 R    t        j                  t        | j                              S r   )binascii
b2a_base64r   r   r   s    r   encodez_Serializer.encode#   s    ""<

#;<<r   c                     | j                   S r   r   r   s    r   tobytesz_Serializer.tobytes&   s    zzr   c                 B    t        j                  | j                  d      S )NzOPENSSH PRIVATE KEY)r   topemr   r   s    r   r2   z_Serializer.topem)   s    yy%:;;r   N)   )__name__
__module____qualname__r   r   r!   r$   r*   r.   r0   r2    r   r   r   r      s+    C6=<r   r   c                     t               }t        |       }|j                  |       |j                  |       dj                  ||j	                         g      S )N    )r   r   r$   joinr.   )r   pubserialktypes       r   serialize_publicr>   -   sE    ]F$E
NN5
NN399eV]]_-..r   c                    t               }t        |       }|j                  |       |j                  |       t               }d}|j                  |       |j                  |       |j	                  |j                                |j                  ||z          d}|j                  |       |j                          t               }|j	                  t               t        x}	}
|j                  |	       |j                  |
       d}|j                  |       d}|j                  |       |j                  |j                                |j                  |j                                |j                         S )Nr   r   r   )
r   r   r$   r!   r   r0   r*   	_SK_MAGIC_NONEr2   )r   r;   privspubr=   sprivchecksumcommentmain
ciphernamekdfnamenokdfnkeyss                r   serialize_privaterL   5   s   =D$ELLLL MEH	MM(	MM(	MM$,,.!	MM$*G	MM'	MMO =DLL  JLLLLELLELLLL LL!::<r   )r,    r   _compatr   r   r	   r@   rA   r   r   r>   rL   r7   r   r   <module>rO      s6      /	1< <8/r   