U
    bp                     @   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   w/var/www/html/staging.mfahmagazine.net/magazine_api/magazine_env/lib/python3.8/site-packages/ellipticcurve/signature.py__init__   s    zSignature.__init__Fc                 C   s.   |   }t|}|s|S ttd| j | S )N   )	_toStringr   ZtoByteschrr   )r   withRecoveryIdhexadecimalZ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   )
isinstanceZintTypesordr   _fromString)clsr   recoveryByter   r   r   r   r   fromDer   s    "zSignature.fromDerc                 C   s   t |}| ||S r   )r
   r#   )r!   r   r"   Z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._fromString)N)F)F)F)F)N)__name__
__module____qualname__r   r   r   classmethodr#   r$   r   r    r   r   r   r   r      s   



r   N)Zutils.compatibilityZ	utils.derr   r   r   r   Zutils.binaryr   r   r	   r
   r   r   r   r   r   <module>   s   