
    xhp                     X    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          ZdS )   )*)parseencodeConstructedencodePrimitiveDerFieldType)hexFromByteStringbyteStringFromHexbase64FromByteStringbyteStringFromBase64c                   t    e Zd Zd
dZddZddZedd            Zedd            Zd Z	ed
d	            Z
dS )	SignatureNc                 0    || _         || _        || _        d S Nrs
recoveryId)selfr   r   r   s       J/var/www/html/what/lib/python3.11/site-packages/ellipticcurve/signature.py__init__zSignature.__init__   s    $    Fc                     |                                  }t          |          }|s|S t          t          d| j        z                       |z   S )N   )	_toStringr	   toByteschrr   )r   withRecoveryIdhexadecimalencodedSequences       r   toDerzSignature.toDer   sN    nn&&+K88 	#""s2/0011OCCr   c                 F    t          |                     |                    S r   )r
   r    )r   r   s     r   toBase64zSignature.toBase64   s    #DJJ~$>$>???r   c                     d }|rGt          |d         t                    r|d         nt          |d                   }|dz  }|dd          }t          |          }|                     ||          S )N    r   r   )stringr   )
isinstanceintTypesordr   _fromString)clsr%   recoveryByter   r   s        r   fromDerzSignature.fromDer   st    
 	 &0H&E&EY3vVWy>>J"JABBZF'//kjIIIr   c                 L    t          |          }|                     ||          S r   )r   r,   )r*   r%   r+   ders       r   
fromBase64zSignature.fromBase64"   s#    "6**{{3---r   c                     t          t          t          j        | j                  t          t          j        | j                            S r   )r   r   r   integerr   r   )r   s    r   r   zSignature._toString'   s8     L0$&99L0$&99
 
 	
r   c                 V    t          |          d         \  }}t          |||          S )Nr$   r   )r   r   )r*   r%   r   r   r   s        r   r)   zSignature._fromString-   s+    V}}Q11j9999r   r   )F)__name__
__module____qualname__r   r    r"   classmethodr,   r/   r   r)    r   r   r   r      s        % % % %
D D D D@ @ @ @ J J J [J . . . [.
 
 
 : : : [: : :r   r   N)utils.compatibility	utils.derr   r   r   r   utils.binaryr   r	   r
   r   r   r7   r   r   <module>r;      s    " " " " N N N N N N N N N N N N j j j j j j j j j j j j*: *: *: *: *: *: *: *: *: *:r   