o
    6h|                     @   sZ   d dl Z ddlmZ ddlmZmZ dZdZdZdd	 Z	G d
d dZ
dd Zdd ZdS )    N   )der)compat26_strint_to_bytess   ssh-ed25519s   openssh-key-v1 s   nonec                 C   s   | dkrt S td)NEd25519zUnsupported key type)_SSH_ED25519
ValueError)name r
   ]/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/ecdsa/ssh.py_get_key_type
   s   r   c                   @   sN   e Zd Zdd Zdd Zdd Zdd Zdd
dZdd Zdd Z	dd Z
dS )_Serializerc                 C   s
   d| _ d S )N    bytesselfr
   r
   r   __init__   s   
z_Serializer.__init__c                 C   s   |  j |7  _ d S Nr   r   valr
   r
   r   put_raw   s   z_Serializer.put_rawc                 C   s   |  j t|ddd7  _ d S )N   big)length	byteorder)r   r   r   r
   r
   r   put_u32   s   z_Serializer.put_u32c                 C   s    |  t| |  j|7  _d S r   )r   lenr   r   r
   r
   r   put_str   s   z_Serializer.put_str   c                 C   s.   |t | j|  }| ttdd|  d S )Nr   )r   r   r   	bytearrayrange)r   blklenpadlenr
   r
   r   put_pad   s   z_Serializer.put_padc                 C   s   t t| jS r   )binascii
b2a_base64r   r   r   r
   r
   r   encode#   s   z_Serializer.encodec                 C   s   | j S r   r   r   r
   r
   r   tobytes&   s   z_Serializer.tobytesc                 C   s   t | jdS )NzOPENSSH PRIVATE KEY)r   topemr   r   r
   r
   r   r)   )   s   z_Serializer.topemN)r   )__name__
__module____qualname__r   r   r   r   r$   r'   r(   r)   r
   r
   r
   r   r      s    
r   c                 C   s4   t  }t| }|| || d|| gS )N    )r   r   r   joinr'   )r	   pubserialktyper
   r
   r   serialize_public-   s
   

r2   c                 C   s   t  }t| }|| || t  }d}|| || ||  |||  d}|| |  t  }|t t }	}
||	 ||
 d}|| d}|| ||  ||  |	 S )Nr   r   r   )
r   r   r   r   r   r(   r$   	_SK_MAGIC_NONEr)   )r	   r/   privspubr1   sprivchecksumcommentmain
ciphernamekdfnamenokdfnkeysr
   r
   r   serialize_private5   s2   









r?   )r%    r   _compatr   r   r   r3   r4   r   r   r2   r?   r
   r
   r
   r   <module>   s    