
    Iip                     R    S SK 7  S SKJrJrJrJr  S SKJrJrJ	r	J
r
   " S S5      rg)   )*)parseencodeConstructedencodePrimitiveDerFieldType)hexFromByteStringbyteStringFromHexbase64FromByteStringbyteStringFromBase64c                   t    \ rS rSrSS jrSS jrSS jr\SS j5       r\SS j5       r	S r
\SS	 j5       rS
rg)	Signature   Nc                 (    Xl         X l        X0l        g Nrs
recoveryId)selfr   r   r   s       =/venv/lib/python3.13/site-packages/ellipticcurve/signature.py__init__Signature.__init__   s    $    c                     U R                  5       n[        U5      nU(       d  U$ [        [        SU R                  -   5      5      U-   $ )N   )	_toStringr	   toByteschrr   )r   withRecoveryIdhexadecimalencodedSequences       r   toDerSignature.toDer   s?    nn&+K8""s2/01OCCr   c                 6    [        U R                  U5      5      $ r   )r
   r"   )r   r   s     r   toBase64Signature.toBase64   s    #DJJ~$>??r   c                     S nU(       a5  [        US   [        5      (       a  US   O[        US   5      nUS-  nUSS  n[        U5      nU R	                  XCS9$ )N    r   r   )stringr   )
isinstanceintTypesordr   _fromString)clsr)   recoveryByter   r    s        r   fromDerSignature.fromDer   s^    
&0H&E&E3vVWy>J"JABZF'/kIIr   c                 :    [        U5      nU R                  X25      $ r   )r   r0   )r.   r)   r/   ders       r   
fromBase64Signature.fromBase64"   s    "6*{{3--r   c                     [        [        [        R                  U R                  5      [        [        R                  U R
                  5      5      $ r   )r   r   r   integerr   r   )r   s    r   r   Signature._toString'   s7     L00$&&9L00$&&9
 	
r   c                 6    [        U5      S   u  p4[        X4US9$ )Nr(   r   )r   r   )r.   r)   r   r   r   s        r   r-   Signature._fromString-   s    V}Q1j99r   )r   r   r   r   )F)__name__
__module____qualname____firstlineno__r   r"   r%   classmethodr0   r4   r   r-   __static_attributes__ r   r   r   r      sV    %
D@ J J . .
 : :r   r   N)utils.compatibility	utils.derr   r   r   r   utils.binaryr   r	   r
   r   r   rA   r   r   <module>rE      s    " N N j j*: *:r   