o
    w+fp                     @   sJ   d dl T d dlmZmZmZmZ d dlmZmZm	Z	m
Z
 G dd dZdS )   )*)parseencodeConstructedencodePrimitiveDerFieldType)hexFromByteStringbyteStringFromHexbase64FromByteStringbyteStringFromBase64c                   @   s\   e Zd ZdddZdddZdddZedd	d
ZedddZdd Z	edddZ
dS )	SignatureNc                 C   s   || _ || _|| _d S Nrs
recoveryId)selfr   r   r    r   J/var/www/html/venv/lib/python3.10/site-packages/ellipticcurve/signature.py__init__   s   
zSignature.__init__Fc                 C   s.   |   }t|}|s|S ttd| j | S )N   )	_toStringr   toByteschrr   )r   withRecoveryIdhexadecimalencodedSequencer   r   r   toDer   s
   zSignature.toDerc                 C   s   t | |S r   )r	   r   )r   r   r   r   r   toBase64   s   zSignature.toBase64c                 C   sT   d }|rt |d tr|d nt|d }|d8 }|dd  }t|}| j||dS )N    r   r   )stringr   )
isinstanceintTypesordr   _fromString)clsr   recoveryByter   r   r   r   r   fromDer   s   "zSignature.fromDerc                 C   s   t |}| ||S r   )r
   r&   )r$   r   r%   derr   r   r   
fromBase64"   s   zSignature.fromBase64c                 C   s   t ttj| jttj| jS r   )r   r   r   integerr   r   )r   r   r   r   r   '   s   zSignature._toStringc                 C   s   t |d \}}t|||dS )Nr   r   )r   r   )r$   r   r   r   r   r   r   r   r#   -   s   zSignature._fromStringr   )F)__name__
__module____qualname__r   r   r   classmethodr&   r(   r   r#   r   r   r   r   r      s    



r   N)utils.compatibility	utils.derr   r   r   r   utils.binaryr   r   r	   r
   r   r   r   r   r   <module>   s    