
    tZh                     Z   d Z ddlZddlZddlZddlmZ d Zej                  dk  r`ddlZd Z	d Z
ej                  dk  s#ej                  d	k  s ej                         d
k(  r
d Zd Zd Zn	d Zd Zd Zd Zd Zd ZddZd Zyd Z
d Z	d Zd Zd Zej(                  Zd ZddZd Zy)zD
Common functions for providing cross-python version compatibility.
    N)integer_typesc                 F    | |   }t        |t              r|S t        |      S )z1Take index'th byte from string, return as integer)
isinstancer   ord)stringindexvals      i/var/www/html/wine-match-dev/backend/winematch-backend/venv/lib/python3.12/site-packages/ecdsa/_compat.pystr_idx_as_intr   
   s#    
-C#}%
s8O    )   r   c                     t        |       S )#Cast the input into array of bytes.)bufferbuffer_objects    r
   normalise_bytesr      s     m$$r   c                     | S N )rets    r
   hmac_compatr          
r   )      )r   r      Javac                 0    t        j                  dd|       S ),Removes all whitespace from passed in string\s+ )resubtexts    r
   remove_whitespacer&   #   s    66&"d++r   c                     t        |       S r   )strr	   s    r
   compat26_strr*   '   s    s8Or   c                 <    | dk(  ryt        t        |             dz
  S )Nr   r   )lenbinr)   s    r
   
bit_lengthr.   *   s    axs3x=1$$r   c                 P    t        j                  dd| t         j                        S r   r    r!   )flagsr"   r#   UNICODEr$   s    r
   r&   r&   1   s    66&"d"**==r   c                     | S r   r   r)   s    r
   r*   r*   5   s    Jr   c                 "    | j                         S z8Return number of bits necessary to represent an integer.r.   r)   s    r
   r.   r.   8   s    >>##r   c                 >    t        j                  t        |             S r   )binasciib2a_hexr*   r)   s    r
   r:   r:   <   s    S 122r   c                 ~    	 t        t        j                  |             S # t        $ r}t	        d|z        d }~ww xY w)Nbase16 error: %s	bytearrayr9   a2b_hex	Exception
ValueErrorr	   es     r
   r?   r?   ?   s>    	5X--c233 	5/!344	5s     	<7<c                     | sy|dk(  rt        t        |       d      S |dk(  rt        t        | ddd         d      S t        d      )zConvert bytes to an int.r   big   littleNz(Only 'big' and 'little' endian supported)intr:   rA   )r	   	byteorders     r
   bytes_to_intrK   E   sO    ws|R(( ws4R4y)2..CDDr   c           
           |t               }|dk(  r+t         fdt        t        d|dz  d            D              S |dk(  r"t         fdt        d|dz  d      D              S t	        d      )z Return number converted to bytesrE   c              3   .   K   | ]  }|z	  d z    yw   Nr   .0ir	   s     r
   	<genexpr>zint_to_bytes.<locals>.<genexpr>T         &'T!   r      rG   c              3   .   K   | ]  }|z	  d z    ywrN   r   rP   s     r
   rS   zint_to_bytes.<locals>.<genexpr>X   rT   rU   z'Only 'big' or 'little' endian supported)byte_lengthr>   reversedrangerA   r	   lengthrJ   s   `  r
   int_to_bytesr]   O   s    > %F +3E!VaZ4K+L     +0FQJ+B   BCCr   c                     | S r   r   )datas    r
   r   r   _   s    r   c                 6    t        |       j                  d      S )r   B)
memoryviewcastr   s    r
   r   r   b   s    -(--c22r   c                     | S r   r   r)   s    r
   r*   r*   f   r   r   c                 P    t        j                  dd| t         j                        S r0   r2   r$   s    r
   r&   r&   i   s    vvfb$bjj99r   c                     	 t        t        j                  t        | d                  S # t        $ r}t	        d|z        d }~ww xY w)Nasciir<   r=   rB   s     r
   r?   r?   m   sE    	5X--iW.EFGG 	5/!344	5s   '* 	AAAc                 "    | j                         S r6   r7   r)   s    r
   r.   r.   y   s    ~~r   c                     |t        |       }t        | t              st        |       } t        | j	                  ||            S )zConvert integer to bytes.)r\   rJ   )rX   r   rI   r>   to_bytesr[   s      r
   r]   r]   }   s<    > %F#s#c(CVyIJJr   c                 (    t        |       }|dz   dz  S )z9Return number of bytes necessary to represent an integer.r   rV   r7   )r	   r\   s     r
   rX   rX      s    _FQJ1r   )NrE   )__doc__sysr"   r9   sixr   r   version_infoplatformr   r   systemr&   r*   r.   r:   r?   rK   r]   rI   
from_bytesrX   r   r   r
   <module>rs      s     	   f%
 	6!i'8??&	,		%	>		$35EDpQ3:5 >>L Kr   