
    Tf|                     b    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dS )    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    ;/var/www/html/env/lib/python3.11/site-packages/ecdsa/ssh.py_get_key_typer   
   s"    y/000    c                   @    e Zd Zd Zd Zd Zd ZddZd Zd Z	d	 Z
d
S )_Serializerc                     d| _         d S )Nr   bytesselfs    r   __init__z_Serializer.__init__   s    


r   c                 &    | xj         |z  c_         d S Nr   r   vals     r   put_rawz_Serializer.put_raw   s    

c



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

l3qEBBBB



r   c                 j    |                      t          |                     | xj        |z  c_        d S r   )r!   lenr   r   s     r   put_strz_Serializer.put_str   s.    SXX

c



r      c           	          |t          | j                  |z  z
  }|                     t          t	          dd|z                                  d S )Nr   )r#   r   r   	bytearrayrange)r   blklenpadlens      r   put_padz_Serializer.put_pad   sG    3tz??V34YuQF
334455555r   c                 N    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
    zr   c                 6    t          j        | j        d          S )NzOPENSSH PRIVATE KEY)r   topemr   r   s    r   r3   z_Serializer.topem)   s    y%:;;;r   N)r%   )__name__
__module____qualname__r   r   r!   r$   r+   r/   r1   r3    r   r   r   r      s            C C C  6 6 6 6= = =  < < < < <r   r   c                     t                      }t          |           }|                    |           |                    |           d                    ||                                g          S )N    )r   r   r$   joinr/   )r   pubserialktypes       r   serialize_publicr>   -   s[    ]]F$E
NN5
NN399eV]]__-...r   c                    t                      }t          |           }|                    |           |                    |           t                      }d}|                    |           |                    |           |                    |                                           |                    ||z              d}|                    |           |                                 t                      }|                    t                     t          x}	}
|                    |	           |                    |
           d}|                    |           d}|                    |           |                    |                                           |                    |                                           |	                                S )Nr   r   r   )
r   r   r$   r!   r   r1   r+   	_SK_MAGIC_NONEr3   )r   r;   privspubr=   sprivchecksumcommentmain
ciphernamekdfnamenokdfnkeyss                r   serialize_privaterL   5   s   ==D$ELLLL MMEH	MM(	MM(	MM$,,..!!!	MM$*G	MM'	MMOOO ==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      s           / / / / / / / /	1 1 1< < < < < < < <8/ / /    r   