
    (i                         d dl mZmZ d dlmZmZmZ  ee      dededee   fd       Z	dedeeef   fdZ
 ee      d	edee   fd
       Zdedeeef   fdZy)    )IteratorTuple)apply_to_return_valuebig_endian_to_intint_to_big_endiansignature_rsignature_sreturnc              #      K   d t        |       }t        |      }t        |      t        |      z    |E d{    |E d{    y7 7 w)a  
    Encode two integers using DER, defined as:

    ::

        ECDSASpec DEFINITIONS ::= BEGIN
              ECDSASignature ::= SEQUENCE {
                 r   INTEGER,
                 s   INTEGER
             }
        END

    Only a subset of integers are supported: positive, 32-byte ints.

    See: https://docs.microsoft.com/en-us/windows/desktop/seccertenroll/about-sequence
    0   N)_encode_intlen)r   r	   encoded1encoded2s       C/var/www/br/venv/lib/python3.12/site-packages/eth_keys/utils/der.pytwo_int_sequence_encoderr      sQ     & J;'H;'H h-#h-
'' s!   9AA	AAAAencodedc                     | d   dk7  rt        d| d          t        | dd       \  }}t        |      \  }}t        |      dk7  rt        dt        |             ||fS )a  
    Decode bytes to two integers using DER, defined as:

    ::

        ECDSASpec DEFINITIONS ::= BEGIN
              ECDSASignature ::= SEQUENCE {
                 r   INTEGER,
                 s   INTEGER
             }
        END

    Only a subset of integers are supported: positive, 32-byte ints.

    r is returned first, and s is returned second

    See: https://docs.microsoft.com/en-us/windows/desktop/seccertenroll/about-sequence
    r   r   z4Encoded sequence must start with 0x30 byte, but got    Nz=Encoded sequence must not contain any trailing data, but had )
ValueError_decode_intr   repr)r   int1restint2emptys        r   two_int_sequence_decoderr   9   s    & qzTB71:,O
 	

 WQR[)JD$d#KD%
5zQKE{m
 	

 :    	primitivec              #      K   d t        |       }|d   dk\  rt        |      dz    d nt        |       |E d {    y 7 w)Nr   r         )r   r   )r   r   s     r   r   r   ^   sL     
 J	*GqzS 'lQ
'ls   ?A	AA	c                 t    | d   dk7  rt        d| d          | d   }t        | dd|z          }|| d|z   d  fS )Nr   r   zFEncoded value must be an integer, starting with on 0x02 byte, but got r"   )r   r   )r   lengthdecoded_ints      r   r   r   q   sd     qzTTqzl
 	

 QZF#GAF
$;<KF
---r   N)typingr   r   	eth_utilsr   r   r   bytesintr   r   r   r    r   r   <module>r+      s   
  u# C HSM  <"e "c3h "J u3 8C=  $. .5e#4 .r   