Current File : //lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyo
�
�<Uc@s�ddlmZmZmZmZmZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZmZdefd��YZdd&d��YZd	efd
��YZdefd��YZe�Zd
efd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd ��YZ d!efd"��YZ!ie�ej"j#6e�ej$j#6e�ej%j#6e�ej&j#6e�ej'j#6e�ej(j#6e�ej)j#6e�ej*j#6e�ej+j#6e�ej,j#6e�ej-j#6e �ej.j#6e�ej/j#6e�ej0j#6e�ej1j#6e�ej2j#6e�ej3j#6e�ej4j#6e�ej5j#6e�ej6j#6e�ej7j#6e�ej8j#6e�ej9j#6e�ej:j#6e�ej;j#6e�ej<j#6Z=ie�ej>j?6e�ej-j?6e�ej@j?6e�ej,j?6e �ej.j?6e!�ejAj?6ZBd#d'd$��YZCeCe=eB�ZDd%S((i����(tbasettagtunivtchartuseful(teoo(tint2octtoct2intt	ints2octstnulltstr2octs(tdebugterrortErrorcBseZRS((t__name__t
__module__(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR
stAbstractItemEncodercBs;eZdZd�Zd�Zd�Zd�Zd�ZRS(icCs�|j�\}}}||B}|r5|tjB}n|dkrOt||B�St|d@�}|d?}x,|r�td|d@B�|}|d?}qlWt|dB�|SdS(Niiii�(tasTupleRttagFormatConstructedR(tselfttt
isConstructedttagClasst	tagFormatttagIdtvts((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyt	encodeTags

	cCs�|r|jrtd�S|dkr0t|�St}x(|r`t|d@�|}|d?}q9Wt|�}|dkr�td|��ntd|B�|SdS(Ni�i�ii~sLength octets overflow (%d)(tsupportIndefLenModeRR	tlenR
(RtlengthtdefModet	substratetsubstrateLen((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pytencodeLengths

	cCstd��dS(NsNot implemented(R
(Rt	encodeFuntvalueRtmaxChunkSize((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pytencodeValue)scCs(|s|jrtS|tj|�SdS(N(RR	RtendOfOctets(RR#R((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyt_encodeEndOfOctets,scCs�|j||||�\}}|j�}|r}|s?d}n|j|d|�|jt|�|�||j||�S|SdS(Nii����(R&t	getTagSetRR"RR((RR#R$RR%R RttagSet((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pytencode2s	>(RRRRR"R&R(R+(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR	s				tEndOfOctetsEncodercBseZd�ZRS(cCs
tdfS(Ni(R	(RR#R$RR%((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&Cs(RRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR,BstExplicitlyTaggedItemEncodercBseZd�ZRS(cCsit|tj�r7|jd|j�d dd�}n|jd|j�d �}||||�dfS(NR*i����tcloneValueFlagi(t
isinstanceRtAbstractConstructedAsn1ItemtcloneR)(RR#R$RR%((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&Gs
(RRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR-FstBooleanEncodercBs/eZdZed�Zed�Zd�ZRS(iicCs|r|jp|jdfS(Ni(t_truet_false(RR#R$RR%((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&Us(i(i(RRRRR3R4R&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR2QstIntegerEncodercBseZdZeZd�ZRS(icCs)|dkr2|jrtdfStd�dfSng}t|�}x=|jd|d@�|dkss|dkrwPn|d?}qG|dkr�|dd@r�|jdd�nxet|�dkr|ddkr�|dd@dks|ddkr|dd@dkr|d=q�Wt|�dfS(Nii�i����ii�i(i(tsupportCompactZeroR	RtinttinsertR(RR#R$RR%toctets((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&[s$	

$$(RRRtFalseR6R&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR5XstBitStringEncodercBseZd�ZRS(c
Cs,|st|�|dkr�t|�dd}|dg}d}d}xQ|D]I}	|d7}|dkr�|d7}d}n|||	d|>B||<qQWtd|�t|�dfSd}
t}xS|j||
d|
d|d!�}|s�Pn|||||�}|
|}
q�|dfSdS(Niiii����i(RRRR	R1(
RR#R$RR%tout_lentout_listtjtitvaltposR R((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&ss*



	&
(RRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR;rstOctetStringEncodercBseZd�ZRS(cCs�|st|�|kr)|j�dfSd}t}xG|j||||!�}|s\Pn|||||�}||}q8|dfSdS(Nii(RtasOctetsR	R1(RR#R$RR%RAR R((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&�s
(RRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyRB�stNullEncodercBseZdZd�ZRS(icCs
tdfS(Ni(R	(RR#R$RR%((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&�s(RRRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyRD�stObjectIdentifierEncodercBs+eZdZidd	6d
d6Zd�ZRS(ii+iiiiic	
Cs|j�}|d |jkr=|j|d }|d}nt|�dkrhtjd|f��nd}|ddkr�d|dko�dknr�|df|d}n�|ddkrd|dko�dknr|ddf|d}nI|ddkr.|ddf|d}ntjd	|d |f��x�|D]�}|d
kr�|dkr�||d@f}qR|dkr�tjd
||f��qR|d@f}|d?}x/|dkr�d|d@Bf|}|d?}q�W||7}qRWt|�dfS(NiisShort OID %siii'i(iPs Impossible initial arcs %s at %si����i�isNegative OID arc %s at %si((RtprecomputedValuesRRtPyAsn1ErrorR(	RR#R$RR%toidR9tsubIdtres((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&�s8
00


(i+iii(iiiii(i+iii(iiiii(RRRRFR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyRE�s

tRealEncodercBs/eZdZdZd�Zd�Zd�ZRS(iicCsd	\}}|dkr!d}n|dkr6d}n||9}|dkr|dt|�d|}t|�d|}n?|dkr�|dt|�d|}t|�d|}nx0t|�|kr�||9}|d8}q�nPq�|t|�||fS(
Niii����iiiii(ii(tabsR7(Rtmtencbasetetmstes((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyt_dropFloatingPoint�s&		


cCsg|\}}}dddg}|j|krC|j||j|�S|j|krh|j||j|�S|||g}|||g}d}td�}x�td�D]�}	|j||	||	||	�\}
||	<||	<||	<t||	�t|�ks,t||	�t|�kr�||	|kr�||	}t||	�}||	}q�q�W|
|||fS(Niiitinfi(t
binEncBaseRRtfloattrangeRLR7(RR$RMtbRORtmantissat	exponentaRNR?tsign((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyt_chooseEncBase�s$9,
cCs�|j�rtd�dfS|j�r8td�dfS|\}}}|sWtdfS|dkr�td||dkr~dp�d|f�dfS|dkr�d	}|j|�\}	}}
}|	dkr�|dB}n|
dkrx�|d
@dkr|d
L}|d
7}q�Wny|
dkrVx(|d@dkrH|d
L}|d
7}q!W|dO}n5x(|d@dkr�|dL}|d
7}qYW|dO}d}x(|d
@dkr�|d
L}|d
7}q�W|d
kr�tjd��n||d>O}t}|dks|dkrt|d@�}n�x.|dkrIt|d@�|}|dL}qW|dkr�|r�t|d�d	@r�td�|}n|dkr�|r�t|d�d	@r�td�|}nt	|�}
|
dkr�tjd��n|
d
kr�nP|
dkr|d
O}n7|
d
kr(|dO}n|d
O}t|
d@�|}t}x(|rvt|d@�|}|dL}qOWt|�||}|dfStjd|��dS(Ni@iiAi
s%dE%s%dt+tii�iiiiiiii sScale factor overflowi����i�sReal exponent overflowsProhibited Real base %s(ii����(
tisPlusInfinityRtisMinusInfinityR	R
R[RRGRR(RR#R$RR%RMRWROtfoRPRNtsfteotntpoR ((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&�s|
/






&'


	
(RRRRTRRR[R&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyRK�s
		tSequenceEncodercBseZd�ZRS(cCs�|j�|j�t}t|�}x{|dkr�|d}||dkrUq)n|j|�}|dk	r�|||kr�q)n|||||�|}q)W|dfS(Nii(tsetDefaultComponentstverifySizeSpecR	RtNonetgetDefaultComponentByPosition(RR#R$RR%R tidxt	component((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&Es


(RRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyReDstSequenceOfEncodercBseZd�ZRS(cCs]|j�t}t|�}x4|dkrR|d}|||||�|}qW|dfS(Nii(RgR	R(RR#R$RR%R Rj((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&Vs

(RRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyRlUst
ChoiceEncodercBseZd�ZRS(cCs||j�||�dfS(Ni(tgetComponent(RR#R$RR%((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&as(RRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyRm`st
AnyEncodercBseZd�ZRS(cCs|j�|dkfS(Ni(RC(RR#R$RR%((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyR&es(RRR&(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyRodstEncodercBs)eZeZid�Zedd�ZRS(cCs||_||_dS(N(t_Encoder__tagMapt_Encoder__typeMap(RttagMapttypeMap((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyt__init__�s	icCs�|r#|jr#tjd��ntjtj@ohtjd|rIdpLd||j�|j�f�|j�}t	|�dkr�t
}n�|jdk	r�|j|j
kr�|j
|j}nZ||jkr�|j|}n;|j}||jkr|j|}ntd|f��tjtj@oJtjd|jj|f�|j||||�}tjtj@o�tjdt	|�tj|�f�|S(	Ns6Indefinite length encoding not supported by this codecsBencoder called in %sdef mode, chunk size %s for type %s, value:
%stinR]isNo encoder for %ss!using value codec %s chosen by %ss2built %s octets of substrate: %s
encoder completed(tsupportIndefLengthRRGRtloggertflagEncodertprettyPrintTypetprettyPrintR)RtexplicitlyTaggedItemEncoderttypeIdRhRrRqt
baseTagSetR
t	__class__RR+thexdump(RR$RR%R*tconcreteEncoderR ((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyt__call__�s&F	!	-6(RRtTrueRwRuR�(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyRp�sN(((Etpyasn1.typeRRRRRtpyasn1.codec.berRtpyasn1.compat.octetsRRRR	R
tpyasn1RRt	ExceptionR
RR,R-R|R2R5R;RBRDRERKReRlRmRoR'R*tBooleantIntegert	BitStringtOctetStringtNulltObjectIdentifiert
EnumeratedtRealt
SequenceOftSetOftChoicet
UTF8Stringt
NumericStringtPrintableStringt
TeletexStringtVideotexStringt	IA5Stringt
GraphicStringt
VisibleStringt
GeneralStringtUniversalStringt	BMPStringtObjectDescriptortGeneralizedTimetUTCTimeRstSetR}tSequencetAnyRtRpR+(((s</usr/lib/python2.7/site-packages/pyasn1/codec/ber/encoder.pyt<module>sn((9		2t