B
    d                 @   s   d dl Z d dlZd dlmZmZmZ e Ze jd  dk rhd dl	m
Z
mZ dddZddd	Zd
d ZndddZddd	Zdd ZdS )    N)oct2intnullensureString   )a2b_hexb2a_hexFc             C   sF   | sdS t tt| d}|rBt| d d@ rB|dt| d >  S |S )Nr               )longr   r   r   len)octetssignedvalue r   G/var/www/html/venv/lib/python3.7/site-packages/pyasn1/compat/integer.py
from_bytes   s    r   c             C   s>  | dk r4|r*t | }d|> }| | | }qPtdn| dkrH|dkrHtS d}| }t|dd  }|drv|d d }t|d@ rd| }| |ks|rt|d }t||}||krd	|| d d
 d  | }n|r|| dkrtdt|d d d}	|r2|	d@ r | dkr2d	| }n| dk r2d| }t|}
|
S )Nr   r
   z&can't convert negative int to unsigned   L0   Z00r      zint too big to convertr   r	   ff)		bitLengthOverflowErrorr   hexendswithr   maxintr   )r   r   lengthbitsZmaxValueZvalueToEncodehexValueZ	hexLengthZ	padLengthZ
firstOctetZoctets_valuer   r   r   to_bytes   s>    






r$   c             C   sF   t t| }t|d }|dr*|d8 }|d@ r:|d7 }|d9 }|S )Nr   r   r
   r   )r   absr   r   )numberr#   r"   r   r   r   r   M   s    
r   c             C   s   t jt| d|dS )Nbig)r   )r    r   bytes)r   r   r   r   r   r   [   s    c             C   sJ   t |  |}|r&|d dkr&|d7 }| j|d |d r<dp>d d|dS )Nr   r   r
   r'   )r   )r   
bit_lengthr$   )r   r   r!   r   r   r   r$   ^   s    c             C   s   t |  S )N)r    r)   )r&   r   r   r   r   f   s    )F)Fr   )F)Fr   )sysplatformZpyasn1.compat.octetsr   r   r   python_implementationimplementationversion_infobinasciir   r   r   r$   r   r   r   r   r   <module>   s   

0


