Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib/python3.7/site-packages/pyasn1/codec/ber/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/pyasn1/codec/ber/__pycache__/encoder.cpython-37.pyc

B

�<U�?�4@s�ddlmZmZmZmZmZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZmZGdd�de�ZGdd�d�ZGd	d
�d
e�ZGdd�de�Ze�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd �d e�Z Gd!d"�d"e�Z!ej"j#e�ej$j#e�ej%j#e�ej&j#e�ej'j#e�ej(j#e�ej)j#e�ej*j#e�ej+j#e�ej,j#e�ej-j#e�ej.j#e �ej/j#e�ej0j#e�ej1j#e�ej2j#e�ej3j#e�ej4j#e�ej5j#e�ej6j#e�ej7j#e�ej8j#e�ej9j#e�ej:j#e�ej;j#e�ej<j#e�iZ=ej>j?e�ej-j?e�ej@j?e�ej,j?e�ej.j?e �ejAj?e!�iZBGd#d$�d$�ZCeCe=eB�ZDd%S)&�)�base�tag�univ�char�useful)�eoo)�int2oct�oct2int�	ints2octs�null�str2octs)�debug�errorc@seZdZdS)�ErrorN)�__name__�
__module__�__qualname__�rr�I/opt/alt/python37/lib/python3.7/site-packages/pyasn1/codec/ber/encoder.pyrsrc@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�AbstractItemEncoder�cCs�|��\}}}||B}|r$|tjB}|dkr8t||B�St|d@�}|d?}x$|rptd|d@B�|}|d?}qNWt|dB�|SdS)N����)�asTuplerZtagFormatConstructedr)�self�t�
isConstructedZtagClassZ	tagFormatZtagId�v�srrr�	encodeTags
zAbstractItemEncoder.encodeTagcCsx|s|jrtd�S|dkr"t|�St}x |rFt|d@�|}|d?}q(Wt|�}|dkrdtd|��td|B�|SdS)Nr���~zLength octets overflow (%d))�supportIndefLenModerr�lenr)r�length�defMode�	substrateZsubstrateLenrrr�encodeLengths
z AbstractItemEncoder.encodeLengthcCstd��dS)NzNot implemented)r)r�	encodeFun�valuer(�maxChunkSizerrr�encodeValue)szAbstractItemEncoder.encodeValuecCs|s
|jstS|tj|�SdS)N)r%rr�endOfOctets)rr+r(rrr�_encodeEndOfOctets,s
z&AbstractItemEncoder._encodeEndOfOctetscCs`|�||||�\}}|��}|rX|s(d}|�|d|�|�t|�|�||�||�S|SdS)Nr���)r.�	getTagSetr!r*r&r0)rr+r,r(r-r)r�tagSetrrr�encode2s0zAbstractItemEncoder.encodeN)	rrrr%r!r*r.r0r4rrrrr	src@seZdZdd�ZdS)�EndOfOctetsEncodercCstdfS)Nr)r)rr+r,r(r-rrrr.CszEndOfOctetsEncoder.encodeValueN)rrrr.rrrrr5Bsr5c@seZdZdd�ZdS)�ExplicitlyTaggedItemEncodercCsPt|tj�r(|j|��dd�dd�}n|j|��dd�d�}||||�dfS)Nr1r)r3ZcloneValueFlag)r3)�
isinstancerZAbstractConstructedAsn1Item�cloner2)rr+r,r(r-rrrr.Gs

z'ExplicitlyTaggedItemEncoder.encodeValueN)rrrr.rrrrr6Fsr6c@s(eZdZdZed�Zed�Zdd�ZdS)�BooleanEncoderr)r)rcCs|r
|jp|jdfS)Nr)�_true�_false)rr+r,r(r-rrrr.UszBooleanEncoder.encodeValueN)rrrr%r
r:r;r.rrrrr9Qsr9c@seZdZdZdZdd�ZdS)�IntegerEncoderrFcCs�|dkr"|jrtdfStd�dfSg}t|�}x.|�d|d@�|dksP|dkrRP|d?}q0W|dkr~|dd@r~|�dd�xNt|�dkr�|ddkr�|dd@dks�|ddkr�|dd@dkr�|d=q�Wt|�dfS)Nr)rr"r1r#rr)�supportCompactZerorr
�int�insertr&)rr+r,r(r-�octetsrrrr.[s$
zIntegerEncoder.encodeValueN)rrrr%r=r.rrrrr<Xsr<c@seZdZdd�ZdS)�BitStringEncoderc
Cs�|rt|�|dkr�t|�dd}|dg}d}d}x@|D]8}	|d7}|dkr\|d7}d}|||	d|>B||<q<Wtd|�t|�dfSd}
t}xD|�||
d|
d|d��}|s�P|||||�}|
|}
q�W|dfSdS)Nr#rrr1r)r&rr
rr8)
rr+r,r(r-Zout_lenZout_list�j�i�val�posr)rrrrr.ss*

"zBitStringEncoder.encodeValueN)rrrr.rrrrrArsrAc@seZdZdd�ZdS)�OctetStringEncodercCsj|rt|�|kr|��dfSd}t}x8|�||||��}|sBP|||||�}||}q&W|dfSdS)Nrr)r&�asOctetsrr8)rr+r,r(r-rEr)rrrrr.�szOctetStringEncoder.encodeValueN)rrrr.rrrrrF�srFc@seZdZdZdd�ZdS)�NullEncoderrcCstdfS)Nr)r)rr+r,r(r-rrrr.�szNullEncoder.encodeValueN)rrrr%r.rrrrrH�srHc@s"eZdZdZddd�Zdd�ZdS)�ObjectIdentifierEncoderr)�+�r�)rJrKr�))r�rKrrL)rrNrKrrMc	Cs�|��}|dd�|jkr:|j|dd�}|dd�}n�t|�dkrVt�d|f��d}|ddkr�d|dkr~dkr�nn|df|dd�}n�|ddkr�d|dkr�dkr�nn|ddf|dd�}nD|ddk�r|dd	f|dd�}nt�d
|dd�|f��x�|D]�}|dk�rP|dk�rP||d
@f}nd|dk�rnt�d||f��nF|d
@f}|d?}x*|dk�r�d|d
@Bf|}|d?}�q�W||7}�q(Wt|�dfS)N�rLzShort OID %srrr�'�(�Pz Impossible initial arcs %s at %sr1rrzNegative OID arc %s at %sr)r�precomputedValuesr&r�PyAsn1Errorr
)	rr+r,r(r-Zoidr@ZsubId�resrrrr.�s8((


z#ObjectIdentifierEncoder.encodeValueN)rrrr%rSr.rrrrrI�srIc@s,eZdZdZdZdd�Zdd�Zdd�Zd	S)
�RealEncoderrrLcCs�d\}}|dkrd}|dkr d}||9}|dkrZ|dt|�d|}t|�d|}n0|dkr�|dt|�d|}t|�d|}x$t|�|kr�||9}|d	8}q�Pq�W|t|�||fS)
N)rrrr1r#rLrN�rMr)�absr>)r�m�encbase�e�ms�esrrr�_dropFloatingPoint�s&zRealEncoder._dropFloatingPointcCs|\}}}dddg}|j|kr.|�||j|�S|j|krH|�||j|�S|||g}|||g}d}td�}x�td�D]�}	|�||	||	||	�\}
||	<||	<||	<t||	�t|�ks�t||	�t|�krr||	|krr||	}t||	�}||	}qrW|
|||fS)NrLr#rW�infrN)�
binEncBaser^�float�rangerXr>)rr,rY�br[rZmantissaZ	exponentarZrC�signrrr�_chooseEncBase�s$





. zRealEncoder._chooseEncBasecCs�|��rtd�dfS|��r(td�dfS|\}}}|s>tdfS|dkrhtd||dkrXdpZd|f�dfS|dk�r�d	}|�|�\}	}}
}|	dkr�|dB}|
dkr�x�|d
@dkr�|d
L}|d
7}q�Wn`|
dkr�x |d@dkr�|d
L}|d
7}q�W|dO}n,x"|d@dk�r|dL}|d
7}q�W|dO}d}x$|d
@dk�rL|d
L}|d
7}�q*W|d
k�rbt�d��||d>O}t}|dk�s�|dk�r�t|d@�}n�x(|dk�r�t|d@�|}|dL}�q�W|dk�r�|�r�t|d�d	@�r�td�|}|dk�r|�rt|d�d	@�std�|}t	|�}
|
dk�r6t�d��|
d
k�rBn@|
dk�rV|d
O}n,|
d
k�rj|dO}n|d
O}t|
d@�|}t}x$|�r�t|d@�|}|dL}�q�Wt|�||}|dfSt�d|��dS)N�@r�A�
z%dE%s%d�+�rLrrr#rrNrW�rM� zScale factor overflowr1r")rr1zReal exponent overflowzProhibited Real base %s)
ZisPlusInfinityrZisMinusInfinityrrrerrTr	r&)rr+r,r(r-rYrcr[�for\rZZsf�eo�nZpor)rrrr.�s|
"



""






zRealEncoder.encodeValueN)rrrr%r`r^rer.rrrrrV�s
rVc@seZdZdd�ZdS)�SequenceEncodercCs||��|��t}t|�}xV|dkrr|d}||dkr<q|�|�}|dk	r\|||kr\q|||||�|}qW|dfS)Nrr)ZsetDefaultComponents�verifySizeSpecrr&ZgetDefaultComponentByPosition)rr+r,r(r-r)�idxZ	componentrrrr.Es


zSequenceEncoder.encodeValueN)rrrr.rrrrrpDsrpc@seZdZdd�ZdS)�SequenceOfEncodercCsF|��t}t|�}x(|dkr<|d}|||||�|}qW|dfS)Nrr)rqrr&)rr+r,r(r-r)rrrrrr.Vs

zSequenceOfEncoder.encodeValueN)rrrr.rrrrrsUsrsc@seZdZdd�ZdS)�
ChoiceEncodercCs||��||�dfS)Nr)ZgetComponent)rr+r,r(r-rrrr.aszChoiceEncoder.encodeValueN)rrrr.rrrrrt`srtc@seZdZdd�ZdS)�
AnyEncodercCs|��|dkfS)Nr)rG)rr+r,r(r-rrrr.eszAnyEncoder.encodeValueN)rrrr.rrrrrudsruc@s&eZdZdZifdd�Zddd�ZdS)	�EncoderTcCs||_||_dS)N)�_Encoder__tagMap�_Encoder__typeMap)r�tagMap�typeMaprrr�__init__�szEncoder.__init__rcCs&|s|jst�d��tjtj@oFt�d|r0dp2d||��|��f�|��}t	|�dkrbt
}nd|jdk	r�|j|jkr�|j|j}n@||j
kr�|j
|}n*|j}||j
kr�|j
|}ntd|f��tjtj@o�t�d|jj|f�|�||||�}tjtj@�o t�dt	|�t�|�f�|S)	Nz6Indefinite length encoding not supported by this codeczBencoder called in %sdef mode, chunk size %s for type %s, value:
%s�inrjrzNo encoder for %sz!using value codec %s chosen by %sz2built %s octets of substrate: %s
encoder completed)�supportIndefLengthrrTr
�loggerZflagEncoderZprettyPrintTypeZprettyPrintr2r&�explicitlyTaggedItemEncoder�typeIdrxrwZ
baseTagSetr�	__class__rr4Zhexdump)rr,r(r-r3ZconcreteEncoderr)rrr�__call__�s&

4

"*zEncoder.__call__N)Tr)rrrr}r{r�rrrrrv�srvN)EZpyasn1.typerrrrrZpyasn1.codec.berrZpyasn1.compat.octetsrr	r
rr�pyasn1r
r�	Exceptionrrr5r6rr9r<rArFrHrIrVrprsrtrur/r3ZBooleanZIntegerZ	BitStringZOctetStringZNullZObjectIdentifierZ
Enumerated�RealZ
SequenceOfZSetOfZChoiceZ
UTF8StringZ
NumericStringZPrintableStringZ
TeletexStringZVideotexStringZ	IA5StringZ
GraphicStringZ
VisibleStringZ
GeneralStringZUniversalStringZ	BMPStringZObjectDescriptorZGeneralizedTimeZUTCTimery�Setr��Sequence�Anyrzrvr4rrrr�<module>sj9	2t