
    Tf                     2   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     rTd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nd Z
d Z	d Zd Zd Zej        Zd ZddZd ZdS )zD
Common functions for providing cross-python version compatibility.
    N)integer_typesc                 ^    | |         }t          |t                    r|S t          |          S )z1Take index'th byte from string, return as integer)
isinstancer   ord)stringindexvals      ?/var/www/html/env/lib/python3.11/site-packages/ecdsa/_compat.pystr_idx_as_intr   
   s-    
-C#}%% 
s88O    )   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                 .    t          j        dd|           S ),Removes all whitespace from passed in string\s+ )resubtexts    r
   remove_whitespacer&   #   s    6&"d+++r   c                      t          |           S r   )strr	   s    r
   compat26_strr*   '   s    s88Or   c                 P    | dk    rdS t          t          |                     dz
  S )Nr   r   )lenbinr)   s    r
   
bit_lengthr.   *   s'    axxqs3xx==1$$r   c                 F    t          j        dd| t           j                  S r   r    r!   )flagsr"   r#   UNICODEr$   s    r
   r&   r&   1   s    6&"d"*====r   c                     | S r   r   r)   s    r
   r*   r*   5   s    Jr   c                 *    |                                  S z8Return number of bits necessary to represent an integer.r.   r)   s    r
   r.   r.   8   s    >>###r   c                 D    t          j        t          |                     S r   )binasciib2a_hexr*   r)   s    r
   r:   r:   <   s    S 1 12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?   ?   sS    	5X-c22333 	5 	5 	5/!3444	5s    # 
A?Ac                     | sdS |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   sl     	1ws||R(((  ws44R4y))2...CDDDr   rE   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 bytesNrE   c              3   (   K   | ]}|z	  d z  V  dS    Nr   .0ir	   s     r
   	<genexpr>zint_to_bytes.<locals>.<genexpr>T   =        &'T!     r   r      rG   c              3   (   K   | ]}|z	  d z  V  dS rN   r   rP   s     r
   rS   zint_to_bytes.<locals>.<genexpr>X   rT   r   z'Only 'big' or 'little' endian supported)byte_lengthr>   reversedrangerA   r	   lengthrJ   s   `  r
   int_to_bytesr\   O   s    > %%F    +3E!VaZ4K4K+L+L            +0FQJ+B+B      BCCCr   c                     | S r   r   )datas    r
   r   r   _   s    r   c                 F    t          |                               d          S )r   B)
memoryviewcastr   s    r
   r   r   b   s    -((--c222r   c                     | S r   r   r)   s    r
   r*   r*   f   r   r   c                 F    t          j        dd| t           j                  S r0   r2   r$   s    r
   r&   r&   i   s    vfb$bj99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   s]    	5X-iW.E.EFFGGG 	5 	5 	5/!3444	5s   .1 
AAAc                 *    |                                  S r6   r7   r)   s    r
   r.   r.   y   s    ~~r   c                     |t          |           }t          | t                    st          |           } t          |                     ||                    S )zConvert integer to bytes.N)r[   rJ   )rW   r   rI   r>   to_bytesrZ   s      r
   r\   r\   }   sO    > %%F#s## 	c((CVyIIJJJr   c                 0    t          |           }|dz   dz  S )z9Return number of bytes necessary to represent an integer.r   rU   r7   )r	   r[   s     r
   rW   rW      s    __FQJ1r   )NrE   )__doc__sysr"   r9   sixr   r   version_infoplatformr   r   systemr&   r*   r.   r:   r?   rK   r\   rI   
from_bytesrW   r   r   r
   <module>rr      s    


 				          fOOO% % %
   	6!!i''8?&&	, 	, 	,	 	 		% 	% 	% 	%	> 	> 	>	 	 		$ 	$ 	$3 3 35 5 5E E ED D D D D   3 3 3  : : :5 5 5 >L     K K K K    r   