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__/decoder.cpython-37.pyc

B

�<Uz��2@s�ddlmZmZmZmZmZddlmZddlm	Z	m
Z
ddlmZm
Z
Gdd�d�ZGdd�de�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�ZGd!d"�d"e�ZGd#d$�d$e�ZGd%d&�d&e�ZGd'd(�d(e�Z Gd)d*�d*e�Z!Gd+d,�d,e�Z"Gd-d.�d.e�Z#Gd/d0�d0e�Z$Gd1d2�d2e�Z%Gd3d4�d4e�Z&Gd5d6�d6e�Z'Gd7d8�d8e�Z(Gd9d:�d:e�Z)Gd;d<�d<e�Z*Gd=d>�d>e�Z+Gd?d@�d@e�Z,GdAdB�dBe�Z-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"�ej=j/e#�ej>j/e$�ej?j/e%�ej@j/e&�ejAj/e'�ejBj/e(�ejCj/e)�ejDj/e*�ejEj/e+�ejFj/e,�ejGj/e-�iZHej8jIe�ejJjIe�ej7jIe�ejKjIe�ej9jIe�ejLjIe�iZMdCdD�eNdE�D�\
ZOZPZQZRZSZTZUZVZWZXGdFdG�dG�ZYeYeHeM�ZZdHS)I�)�tag�univ�char�useful�tagmap)�eoo)�oct2int�isOctetsType)�debug�errorc@s eZdZdZdd�Zdd�ZdS)�AbstractDecoderNc		Cst�d|f��dS)NzDecoder not implemented for %s)r�PyAsn1Error)	�self�
fullSubstrate�	substrate�asn1Spec�tagSet�length�state�	decodeFun�substrateFun�r�I/opt/alt/python37/lib/python3.7/site-packages/pyasn1/codec/ber/decoder.py�valueDecoder	szAbstractDecoder.valueDecoderc		Cst�d|f��dS)Nz5Indefinite length mode decoder not implemented for %s)rr
)	rrrrrrrrrrrr�indefLenValueDecoder
sz$AbstractDecoder.indefLenValueDecoder)�__name__�
__module__�__qualname__�protoComponentrrrrrrrsrc@seZdZejfZddd�ZdS)�AbstractSimpleDecoderNcCs^|dd|jkr.t�d|d|j��f��|dkrD|j�||�S|dkrP|S|�|�SdS)Nr�zInvalid tag format %s for %s)�
tagFormatsrr
r�prettyPrintType�clone)rrr�valuerrr�_createComponentsz&AbstractSimpleDecoder._createComponent)N)rrrr�tagFormatSimpler!r%rrrrrsrc@seZdZejfZddd�ZdS)�AbstractConstructedDecoderNcCsN|dd|jkr.t�d|d|j��f��|dkrB|j�|�S|��SdS)Nrr zInvalid tag format %s for %s)r!rr
rr"r#)rrrr$rrrr%s
z+AbstractConstructedDecoder._createComponent)N)rrrr�tagFormatConstructedr!r%rrrrr'sr'c@s.eZdZe�d�ZejfZdd�Z	dd�Z
dS)�ExplicitTagDecoder�c	
CsN|r||�||d�||�S|d|�||d�}	}
||	|||�\}}||
fS)Nr*)r%)
rrrrrrrrr�head�tailr$�_rrrr*szExplicitTagDecoder.valueDecoderc	Csh|r||�||d�||�S|||||�\}	}||dd�\}
}tj�|
�rZ|
tjkrZ|	|fSt�d��dS)Nr*T)�allowEooz Missing end-of-octets terminator)r%r�endOfOctets�isSameTypeWithrr
)rrrrrrrrrr$�
terminatorrrrr5s
z'ExplicitTagDecoder.indefLenValueDecoderN)rrrr�Anyrrr(r!rrrrrrr)'s
r)c@sBeZdZe�d�Zddddddddd	d
ddd
ddd�Zdd�ZdS)�IntegerDecoderrr ��������	���������������)����������	�ÿ�þ�ý�ü�ûc	Cs�|d|�||d�}	}
|	s0|�||d�|
fS|	|jkrF|j|	}n<t|	d�}|d@r`d}nd}x|	D]}
|d>t|
�B}qjW|�|||�|
fS)Nr�r<r:)r%�precomputedValuesr)rrrrrrrrrr+r,r$�
firstOctet�octetrrrrZs

zIntegerDecoder.valueDecoderN)rrrr�IntegerrrQrrrrrr3Fs"
r3c@s eZdZe�d�Zddd�ZdS)�BooleanDecoderrNcCst�||||rdpd�S)Nr r)r3r%)rrrr$rrrr%mszBooleanDecoder._createComponent)N)rrrr�Booleanrr%rrrrrUks
rUc@s2eZdZe�d�ZejejfZ	dd�Z
dd�ZdS)�BitStringDecoderrc	Cs:|d|�||d�}	}
|ddtjkr�|	s:t�d��t|	d�}|dkr\t�d|��|	dd�}	d}}
t|	�d}g}xX|
|kr�|
|kr�|}d}t|	|
�}x&||kr�|�||?d@�|d}q�W|
d}
q�W|�|||�|
fS|�||d�}|�r||||�Sx$|	�r0||	|j�\}}	||}�qW||
fS)Nrr zEmpty substrater9zTrailing bits overflow %sr)	rr&rr
r�len�appendr%r)rrrrrrrrrr+r,ZtrailingBitsZlsb�p�l�b�j�o�r�	componentrrrrss:



zBitStringDecoder.valueDecoderc	Csn|�||d�}	|r||	||�SxF|rZ|||jdd�\}
}tj�|
�rP|
tjkrPP|	|
}	q Wt�d��|	|fS)Nr*T)r.z!No EOO seen before substrate ends)r%rrr/r0r�SubstrateUnderrunError)rrrrrrrrrr_r`rrrr�s
z%BitStringDecoder.indefLenValueDecoderN)rrrr�	BitStringrrr&r(r!rrrrrrrWps
rWc@s2eZdZe�d�ZejejfZ	dd�Z
dd�ZdS)�OctetStringDecoderr*c	
Cs�|d|�||d�}	}
|ddtjkr>|�|||	�|
fS|�||d�}|r\||||�Sx |	r|||	|j�\}}	||}q^W||
fS)Nrr r*)rr&r%r)
rrrrrrrrrr+r,r_r`rrrr�szOctetStringDecoder.valueDecoderc	Csn|�||d�}	|r||	||�SxF|rZ|||jdd�\}
}tj�|
�rP|
tjkrPP|	|
}	q Wt�d��|	|fS)Nr*T)r.z!No EOO seen before substrate ends)r%rrr/r0rra)rrrrrrrrrr_r`rrrr�s
z'OctetStringDecoder.indefLenValueDecoderN)rrrr�OctetStringrrr&r(r!rrrrrrrc�s

rcc@seZdZe�d�Zdd�ZdS)�NullDecoderr*c	Cs@|d|�||d�}	}
|�||�}|	r8t�d|��||
fS)Nz&Unexpected %d-octet substrate for Null)r%rr
)rrrrrrrrrr+r,r_rrrr�s
zNullDecoder.valueDecoderN)rrrr�Nullrrrrrrre�s
rec@seZdZe�d�Zdd�ZdS)�ObjectIdentifierDecoderrc	Cs�|d|�||d�}	}
|	s(t�d��d}d}t|	�}
x�||
kr�t|	|�}|d7}|dkrj||f}q:|dkr�|}d}xH|dkr�|d>|d@}||
kr�t�d|f��t|	|�}|d7}q|W||d>|f}q:|dkr:t�d	��q:Wd|dk�r
d
k�rnn
d|}n|d|dk�r4d
k�rVnnd|ddf|dd�}n>|ddk�r�d|ddf|dd�}nt�d|	d��|�|||�|
fS)NzEmpty substraterrr rPr9�z#Short substrate for sub-OID past %sz"Invalid octet 0x80 in OID encoding�')r�(�O�Pr4zMalformed first OID octet: %s)rr
rXrrar%)rrrrrrrrrr+r,Zoid�indexZsubstrateLenZsubIdZ	nextSubIdrrrr�s@


 
 z$ObjectIdentifierDecoder.valueDecoderN)rrrr�ObjectIdentifierrrrrrrrg�s
rgc@seZdZe��Zdd�ZdS)�RealDecoderc	Cs�|d|�||d�}	}
|	s0|�||d�|
fSt|	d�}|	dd�}	|d@�r�|	s`t�d��|d@d}|dkr�t|	d�}|	dd�}	|	d|�|	|d�}
}	|
r�|	s�t�d��t|
d�d@r�d	p�d}x.|
�r�|d
K}|t|
d�O}|
dd�}
q�W|d?d@}|dk�r t�d��|dk�r4|d9}n|dk�rF|d9}d}x0|	�rz|d
K}|t|	d�O}|	dd�}	�qLW|d
@�r�|}|d?d@}|d|9}|d|f}n�|d
@�r�|d@�r�d�p�d}n�|d@dk�rr|	�s�t�d��y`|d@dk�rt|	�ddf}n>|d@dk�r&t|	�}n&|d@dk�r>t|	�}nt�d|��Wn tk
�rnt�d��YnXnt�d|��|�|||�|
fS)Ngrr rPzIncomplete floating-point valuer5r6zReal exponent screwedr<r:r4zIllegal Real base�@z-inf�inf��
zUnknown NR (tag %s)zBad character Real syntaxzUnknown encoding (tag %s))r%rrr
�int�floatra�
ValueError)rrrrrrrrrr+r,�fo�n�eo�er\rZZsfr$rrrrsr













zRealDecoder.valueDecoderN)rrrr�Realrrrrrrrosroc@s4eZdZe��Zdd�Zdd�Zdd�Zdd�Z	d	S)
�SequenceDecodercCs&y
|�|�Stjk
r dSXdS)N)ZgetComponentTagMapNearPositionrr
)rr_�idxrrr�_getComponentTagMapDs
z#SequenceDecoder._getComponentTagMapcCs|�||�S)N)ZgetComponentPositionNearType)rr_�tr}rrr�_getComponentPositionByTypeJsz+SequenceDecoder._getComponentPositionByTypec	Cs�|d|�||d�}	}
|�||�}d}|r:||||�SxN|	r�|�||�}||	|�\}
}	|�||
��|�}|�||
|dk�|d}q<W|��|��||
fS)Nrr )r%r~r��getEffectiveTagSet�setComponentByPosition�setDefaultComponents�verifySizeSpec)rrrrrrrrrr+r,r_r}r`rrrrMszSequenceDecoder.valueDecoderc	Cs�|�||�}	|r||	||�Sd}
xt|r�|�|	|
�}|||dd�\}}tj�|�r\|tjkr\P|�|	|��|
�}
|	�|
||dk�|
d}
q"Wt�	d��|	�
�|	��|	|fS)NrT)r.r z!No EOO seen before substrate ends)r%r~rr/r0r�r�r�rrar�r�)rrrrrrrrrr_r}r`rrrr`s&
z$SequenceDecoder.indefLenValueDecoderN)
rrrr�Sequencerr~r�rrrrrrr|Bs
r|c@s$eZdZe��Zdd�Zdd�ZdS)�SequenceOfDecoderc	Cs�|d|�||d�}	}
|�||�}|r6||||�S|��}d}x0|	rr||	|�\}
}	|�||
|dk�|d}qDW|��||
fS)Nrr )r%�getComponentTyper�r�)rrrrrrrrrr+r,r_r}r`rrrr{szSequenceOfDecoder.valueDecoderc	Cs�|�||�}	|r||	||�S|	��}d}
xV|rt|||dd�\}}tj�|�rX|tjkrXP|	�|
||dk�|
d}
q*Wt�d��|	��|	|fS)NrT)r.r z!No EOO seen before substrate ends)	r%r�rr/r0r�rrar�)rrrrrrrrrr_r}r`rrrr�s 
z&SequenceOfDecoder.indefLenValueDecoderN)rrrr�
SequenceOfrrrrrrrr�ysr�c@s$eZdZe��Zdd�Zdd�ZdS)�
SetDecodercCs|��S)N)�getComponentTagMap)rr_r}rrrr~�szSetDecoder._getComponentTagMapcCs|�|�}|dkr|S|SdS)N)ZgetComponentPositionByType)rr_rr}ZnextIdxrrrr��s
z&SetDecoder._getComponentPositionByTypeN)rrrr�Setrr~r�rrrrr��sr�c@seZdZe��ZdS)�SetOfDecoderN)rrrr�SetOfrrrrrr��sr�c@s0eZdZe��ZejejfZ	dd�Z
dd�ZdS)�
ChoiceDecoderc	Cs�|d|�||d�}	}
|�||�}|r6||||�S|��|krV||	|���\}}	n||	|��|||�\}}	t|tj�r�|��}
n|��}
|�|
|d|dk�||
fS)Nr)r%�	getTagSetr��
isinstancer�Choicer��setComponentByType)rrrrrrrrrr+r,r_r`�effectiveTagSetrrrr�s
zChoiceDecoder.valueDecoderc	
Cs�|�||�}	|r||	||�S|	��|krl|||	���\}
}||dd�\}}tj�|�r`|tjkr�t�d��n|||	��|||�\}
}t|
t	j
�r�|
��}n|
��}|	�||
d|dk�|	|fS)NT)r.z!No EOO seen before substrate endsr)
r%r�r�rr/r0rr
r�rr�r�r�)
rrrrrrrrrr_r`Z	eooMarkerr�rrrr�s 

z"ChoiceDecoder.indefLenValueDecoderN)rrrrr�rrr&r(r!rrrrrrr��sr�c@s0eZdZe��ZejejfZ	dd�Z
dd�ZdS)�
AnyDecoderc	Csz|dks|dk	r4||��kr4|t|�t|�}|}|rL||�||�||�S|d|�||d�}	}
|j|||	d�|
fS)N)r$)r�rXr%)rrrrrrrrrr+r,rrrr�szAnyDecoder.valueDecoderc	Cs�|dk	r||��krd}	n|dt|��}	|�|||	�}
|j}|rP||
||�SxD|r�|||dd�\}}tj�|�r�|tjkr�P|
|}
qRWt�d��|
|fS)Nr*T)r.z!No EOO seen before substrate ends)	r�rXr%rrr/r0rra)rrrrrrrrr�headerr_r`rrrr�s 
zAnyDecoder.indefLenValueDecoderN)rrrrr2rrr&r(r!rrrrrrr��s
r�c@seZdZe��ZdS)�UTF8StringDecoderN)rrrr�
UTF8Stringrrrrrr�
sr�c@seZdZe��ZdS)�NumericStringDecoderN)rrrr�
NumericStringrrrrrr�sr�c@seZdZe��ZdS)�PrintableStringDecoderN)rrrr�PrintableStringrrrrrr�sr�c@seZdZe��ZdS)�TeletexStringDecoderN)rrrr�
TeletexStringrrrrrr�sr�c@seZdZe��ZdS)�VideotexStringDecoderN)rrrr�VideotexStringrrrrrr�sr�c@seZdZe��ZdS)�IA5StringDecoderN)rrrr�	IA5Stringrrrrrr�sr�c@seZdZe��ZdS)�GraphicStringDecoderN)rrrr�
GraphicStringrrrrrr�sr�c@seZdZe��ZdS)�VisibleStringDecoderN)rrrr�
VisibleStringrrrrrr�sr�c@seZdZe��ZdS)�GeneralStringDecoderN)rrrr�
GeneralStringrrrrrr�sr�c@seZdZe��ZdS)�UniversalStringDecoderN)rrrr�UniversalStringrrrrrr�sr�c@seZdZe��ZdS)�BMPStringDecoderN)rrrr�	BMPStringrrrrrr�sr�c@seZdZe��ZdS)�ObjectDescriptorDecoderN)rrrr�ObjectDescriptorrrrrrr�"sr�c@seZdZe��ZdS)�GeneralizedTimeDecoderN)rrrr�GeneralizedTimerrrrrr�$sr�c@seZdZe��ZdS)�UTCTimeDecoderN)rrrr�UTCTimerrrrrr�&sr�cCsg|]}|�qSrr)�.0�xrrr�
<listcomp>Ssr�rsc@s>eZdZeZe�ZdZifdd�Zddde	dddfdd�Z
dS)	�DecoderTcCs||_||_i|_i|_dS)N)�_Decoder__tagMap�_Decoder__typeMap�_Decoder__tagCache�_Decoder__tagSetCache)r�tagMap�typeMaprrr�__init__ZszDecoder.__init__Nr Fc	
Cs�tjtj@r.t�dtj|t|�t�|�f�|}	�xT|tk�r�|tk�r4|sXt�	d��t
|�svt|tj
�svt�d��|d}
|dd�}|
|jkr�|j|
}�nt|
�}|dk�r(|�rt|d�dk�r|�r|j�rtjo�tjtj@o�t�d�tj|dd�}
}t}q6n
t�d��n
t�d��|d	@}|d
@}|d@}|dk�r�d}xJ|�s`t�	d��t|d�}|d
>|d@B}|dd�}|d@�sPP�qPWtj|||d�}|dk�r�||j|
<|dk�r|
|jk�r�|j|
}n"t�d|�}|
|jk�r||j|
<n||}t}tj�o2tjtj@�o2t�d|�|tk�r�|�sNt�	d��t|d�}
|
dk�rnd}d}n�|
dk�r�|
d}}nj|
d@}d}|d|d�}t|�|k�r�t�	d|t|�|f��x|D]}|d>t|�B}�q�W|d}||d�}|dk�r(t|�|k�r(t�	d|t|���|dk�rD|j�sDt�d�t}tj�o�tjtj@�o�t�d|t�|dk�rz|�p�|d|��f�|tk�r�|dk�r�t}nt}|tk�r�||jk�r�|j|}nd}|�r�t}n8|dd�}||jk�r|j|}nd}|�rt}nt}tj�r�tjtj@�r�t�d|�rB|jj �pDd|tk�rTd�pVdf�tj�!|dk�rtd�p||j"jj �|tk�r�t|t#t$j%f��rt||k�r�||}nd}tj�r�tjtj@�r�t�d�x0|�&��'�D] \}}t�d ||jj f��q�W|�(��rLt�d!�x0|�(��'�D] \}}t�d ||jj f��q(Wt�d"|dk�rbd�ph|�)�|f�n,|}tj�o�tjtj@�o�t�d#|jj �|dk	�rt||�*�k�s�||�+�k�rt|j,}|j-dk	�r|j-|j.k�r|j.|j-}tj�otjtj@�ot�d$|j-f�nB||jk�rZ|j|}tj�oVtjtj@�oVt�d%|f�nd}|�rn|}t}nt}nd}t}tj�r�tjtj@�r�t�d&|tk�r�|jj �p�d|tk�r�d�p�df�tj�!|dk�r�d�p�|jj �|tk�r||�r*|ddtj/k�r*|ddtj0k�r*t1}t}n
d}|j2}tj�oztjtj@�ozt�d'|�r`|jj �pbd|tk�rrd�ptd(f�|t3k�r�|j4}tj�o�tjtj@�o�t�d)|jj �t}|tk�rl|dk�r�|�s�d*d+�}|dk�r|�5|	||||t||�\}
}n|�6|	||||t||�\}
}t}tj�ojtjtj@�ojt�d,|jj |
jj |
�7�|�rbt�|��pddf�|t8kr6t�d-||f��q6Wtj�r�tjtj@�r�tj�9�t�d.tj�|
|fS)/NzWdecoder called at scope %s with state %d, working with up to %d octets of substrate: %sz"Short octet stream on tag decodingzBad octet stream typerr zend-of-octets sentinel foundz#Unexpected end-of-contents sentinelzZero tag encounteredrr� �z'Short octet stream on long tag decodingr9rhrP)�tagClass�	tagFormat�tagIdrz$tag decoded into %s, decoding lengthz%Short octet stream on length decodingr<z%s<%s at %sr:z%d-octet shortz6Indefinite length encoding not supported by this codecz6value length decoded into %d, payload substrate is: %sz/codec %s chosen by a built-in type, decoding %sz<none>r$zas explicit tag�?z!candidate ASN.1 spec is a map of:z
  %s -> %szbut neither of: z,new candidate ASN.1 spec is %s, chosen by %szcandidate ASN.1 spec is %sz8value decoder chosen for an ambiguous type by type ID %szvalue decoder chosen by base %sz*codec %s chosen by ASN.1 spec, decoding %szcodec %s chosen, decoding %sz
as failurezcodec %s chosen, decoding valuecSs||d|�fS)Nr)�ar\�crrr�<lambda>0�z"Decoder.__call__.<locals>.<lambda>z@codec %s yields type %s, value:
%s
...remaining substrate is: %sz%s not in asn1Spec: %sz%decoder left scope %s, call completed):r
�loggerZflagDecoderZscoperXZhexdump�stStop�stDecodeTagrrar	r�rrdr
r�r�supportIndefLengthrr/rZTagr�ZTagSet�stDecodeLength�stGetValueDecoder�stGetValueDecoderByTag�stGetValueDecoderByAsn1Specr��
stDecodeValue�stTryAsExplicitTag�	__class__r�pushr�dictrZTagMapZ	getPosMap�itemsZ	getNegMapr"r�Z	getTagMap�
baseTagSet�typeIdr�r(ZtagClassUniversal�explicitTagDecoder�defaultErrorState�stDumpRawValue�defaultRawDecoderrrZprettyPrint�stErrorCondition�pop)rrrrrrZ
recursiveFlagrr.rrRZlastTagrr$r�r�r��sizeZlengthStringrZconcreteDecoderZ_kZ_Decoder__chosenSpec�vr�rrr�__call__asR"









$




F


2"





((
*
(6 
H
(



J
zDecoder.__call__)rrrr�r�r�r�r�r�r�r�rrrrr�Usr�N)[Zpyasn1.typerrrrrZpyasn1.codec.berrZpyasn1.compat.octetsrr	�pyasn1r
rrrr'r)r�r3rUrWrcrergror|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rTrrVrbrdrfrnZ
Enumeratedr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r2r��ranger�r�r�r�r�r�r�r�r�r�r��decoderrrr�<module>s�

%4"
0B7&/-




























&r