
    ":h                         d dl mZ d dlZd dlZ G d de      Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)    )divisionNc                       e Zd Zy)UnexpectedDERN)__name__
__module____qualname__     \/var/www/html/turnos/venv/lib/python3.12/site-packages/ccxt/static_dependencies/ecdsa/der.pyr   r      s    r
   r   c                 f    t         j                  d| z   dd      t        t        |            z   |z   S )N      big)intto_bytesencode_lengthlen)tagvalues     r   encode_constructedr      s,    <<S!U+mCJ.GG%OOr
   c                    | dk\  sJ d| z  j                         }t        |      dz  rd|z   }t        j                  |      }t	        |d   t
              r|d   nt        |d         }|dk  r&dt
        j                  t        |      dd      z   |z   S dt
        j                  t        |      dz   dd      z   d	z   |z   S )
Nr   %x      0      r   r       )encoder   binascii	unhexlify
isinstancer   ordr   )rhsnums       r   encode_integerr'      s    6M6	A
1vz1H1AQqT3'!A$S1YC
d{c!fa77!;;
 c!fQh599GCaGGr
   c                 6    dt        t        |             z   | z   S )N   r   r   r%   s    r   encode_bitstringr,          ]3q6**Q..r
   c                 6    dt        t        |             z   | z   S )N   r*   r+   s    r   encode_octet_stringr0   #   r-   r
   c                     | dk  sJ |dk  sJ t         j                  d| z  |z   dd      g|D cg c]  }t        |       c}z   }dj                  |      }dt	        t        |            z   |z   S c c}w )Nr   '   (   r   r   r
      )r   r   encode_numberjoinr   r   )firstsecondpiecespencoded_piecesbodys         r   
encode_oidr=   '   s    A::R<<ll2e8F?Au=>=CBE89 CPPQBR BE EN88N#D]3t9--44BEs   A2c                      t        | D cg c]  }t        |       c}      }dt        |      z   dj                  |       z   S c c}w )Nr   r
   )sumr   r   r6   )r;   r:   	total_lens      r   encode_sequencerA   0   s>    ^4SV45I]9--0HHH 5s   Ac           
          g }| r |j                  d| dz  dz         | dz	  } | r |s|j                  d       |dxx   dz  cc<   dj                  |D cg c]  }t        j	                  |dd       c}      S c c}w )	Nr   r         r
   r   r   )insertappendr6   r   r   )nb128_digitsds      r   r5   r5   5   s|    K
1q4x4/0F  1OtO88D1S\\!Q.DEEDs   A9c                     t        | d   t              r| d   nt        | d         }|dz  dk7  rt        d|z        |dz  }t	        | dd        \  }}| d|z   d|z   |z    }| d|z   |z   d  }|||fS )Nr      r   z.wanted constructed tag (0xa0-0xbf), got 0x%02x   r   )r!   r   r"   r   read_length)strings0r   lengthllenr<   rests          r   remove_constructedrT   @   s     C0c&)nB
T	dL ! " 	"
t)Cvabz*LFD!D&4'D!D&-.!Dd?r
   c                     | j                  d      s4t        | d   t              r| d   nt        | d         }t	        d|z        t        | dd        \  }}d|z   |z   }| d|z   | | |d  fS )Nr   r   z"wanted sequence (0x30), got 0x%02xr   
startswithr!   r   r"   r   rN   )rO   rH   rQ   lengthlengthendseqs        r   remove_sequencerZ   L   s    W%#F1Is3F1IVAY@1DEE&vabz2FL|^F"F!L.(&/99r
   c                     | j                  d      s4t        | d   t              r| d   nt        | d         }t	        d|z        t        | dd        \  }}| d|z   d|z   |z    }| d|z   |z   d  }||fS )Nr/   r   z%wanted octetstring (0x04), got 0x%02xr   rV   )rO   rH   rQ   rR   r<   rS   s         r   remove_octet_stringr\   U   s    W%#F1Is3F1IVAYCaGHHvabz*LFD!D&4'D!D&-.!D:r
   c                    | j                  d      s4t        | d   t              r| d   nt        | d         }t	        d|z        t        | dd        \  }}| d|z   d|z   |z    }| d|z   |z   d  }g }|r't        |      \  }}|j                  |       ||d  }|r'|j                  d      }|dz  }	|d|	z  z
  }
|j                  d|	       |j                  d|
       t        |      |fS )Nr4   r   z wanted object (0x06), got 0x%02xr   r3   )rW   r!   r   r"   r   rN   read_numberrG   poprF   tuple)rO   rH   rQ   rX   r<   rS   numberslln0r7   r8   s              r   remove_objectrd   _   s   W%#F1Is3F1IVAY>BCC&vabz2FL!L.<!67D!L.'()DG
D!2qBCy  
QBFEE]FNN1eNN1f>4r
   c                 |   | j                  d      s4t        | d   t              r| d   nt        | d         }t	        d|z        t        | dd        \  }}| d|z   d|z   |z    }| d|z   |z   d  }t        |d   t              r|d   nt        |d         }|dk  sJ t        t        j                  |      d      |fS )Nr   r   z!wanted integer (0x02), got 0x%02xr   rC      )rW   r!   r   r"   r   rN   r   hexlify)rO   rH   rQ   rR   numberbytesrS   nbytess          r   remove_integerrj   s   s    W%#F1Is3F1IVAY?!CDDvabz*LFD4$v.K!D&-.!D)+a.#>[^CTUDWFD==x,b1477r
   c                     d}d}	 |t        |       kD  rt        d      |dz  }t        | |   t              r| |   nt	        | |         }||dz  z  }|dz  }|dz  s	 ||fS \)Nr   ran out of length bytesrD   r   r   rC   )r   r   r!   r   r"   )rO   numberrR   rJ   s       r   r^   r^      s    FD
#f+ 9::1&vd|S9F4Ls6$<?P1t8	4x4< r
   c                    | dk\  sJ | dk  rt         j                  | dd      S d| z  j                         }t        |      dz  rd|z   }t	        j
                  |      }t        |      }t         j                  d|z  dd      |z   S )Nr   rC   r   r   r   r   r   )r   r   r   r   r   r    )lr%   rR   s      r   r   r      s    6M64x||Aq%((	A
1vz1H1Aq6D<<tQ.22r
   c                     t        | d   t              r| d   nt        | d         }|dz  s|dz  dfS |dz  }|t        |       dz
  kD  rt	        d      t        t        j                  | dd|z          d      d|z   fS )Nr   rC   r   r   rl   rf   )r!   r   r"   r   r   r   rg   )rO   r&   rR   s      r   rN   rN      s    !&)S1&)s6!9~C$Jd
Q :Dc&k!m566xq4 0126$>>r
   c                     t        | d   t              r| d   nt        | d         }| j                  d      st	        d|z        t        | dd        \  }}| d|z   d|z   |z    }| d|z   |z   d  }||fS )Nr   r)   z#wanted bitstring (0x03), got 0x%02xr   )r!   r   r"   rW   r   rN   )rO   r&   rQ   rR   r<   rS   s         r   remove_bitstringrr      s    !&)S1&)s6!9~CW%ACGHHvabz*LFD!D&4'D!D&-.!D:r
   c                    t        | t              r| j                         } dj                  | j	                  d      D cg c]%  }|r!|j                  d      s|j                         ' c}      }t        j                  |      S c c}w )Nr
      
s   -----)	r!   strr   r6   splitrW   stripbase64	b64decode)pemro   rJ   s      r   unpemr{      sl    #sjjlSYYu%5 9h!7 '') 9 	:AA9s   *Bc           	      <   t        j                  |       }d|z  j                         g}|j                  t	        dt        |      d      D cg c]  }|||dz    dz    c}       |j                  d|z  j                                dj                  |      S c c}w )Nz-----BEGIN %s-----
r   @   rt   z-----END %s-----
r
   )rx   	b64encoder   extendranger   rG   r6   )dernameb64linesstarts        r   topemr      s    


3
C$t+3356E	LL$QC"57 eE"H%e+ 7 8	LL&-557888E?7s   B)
__future__r   r   rx   	Exceptionr   r   r'   r,   r0   r=   rA   r5   rT   rZ   r\   rd   rj   r^   r   rN   rr   r{   r   r	   r
   r   <module>r      sy      	I 	PH //5I
F	: (	8 	3
?Lr
   