????

Your IP : 216.73.217.84


Current Path : /usr/lib/python3.9/site-packages/pyasn1/codec/ber/__pycache__/
Upload File :
Current File : //usr/lib/python3.9/site-packages/pyasn1/codec/ber/__pycache__/encoder.cpython-39.pyc

a

.�]]l�8@s�ddlZddlmZddlmZddlmZddlmZddlm	Z	m
Z
mZmZm
Z
mZddlmZddlmZdd	lmZdd
lmZdgZejeejd�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gdd �d e�Z#Gd!d"�d"e�Z$Gd#d$�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�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�iZBej)jCe�ej*jCe�ej+jCe�ej,jCe�ej-jCe �ej.jCe!�ej/jCe�ej0jCe"�ejDjCe#�ej2jCe$�ejEjCe#�ej1jCe$�ej3jCe%�ejFjCe&�ej4jCe�ej5jCe�ej6jCe�ej7jCe�ej8jCe�ej9jCe�ej:jCe�ej;jCe�ej<jCe�ej=jCe�ej>jCe�ej?jCe�ej@jCe�ejAjCe�iZGGd'd(�d(e�ZHeHeBeG�ZIdS))�N)�debug)�error)�eoo)�to_bytes)�int2oct�oct2int�	ints2octs�null�str2octs�isOctetsType)�char)�tag)�univ)�useful�encode)�flagsc@s>eZdZdZdZee�Zdd�Zdd�Zdd�Z	dd
d�Z
d	S)
�AbstractItemEncoderT)rrcCsv|\}}}||B}|r |tjO}|dkr2||BfS|d@f}|dL}|rdd|d@Bf|}|dL}qD|dBf|SdS)N����)r
ZtagFormatConstructed)�self�	singleTag�
isConstructedZtagClassZ	tagFormatZtagIdZ
encodedTag�	substrate�r�</usr/lib/python3.9/site-packages/pyasn1/codec/ber/encoder.py�	encodeTag!s




zAbstractItemEncoder.encodeTagcCsl|s|jrdS|dkr|fSd}|r<|d@f|}|dL}q t|�}|dkrZt�d|��d|Bf|SdS)N)rrr���~zLength octets overflow (%d))�supportIndefLenMode�lenr�PyAsn1Error)r�length�defModerZsubstrateLenrrr�encodeLength5s

z AbstractItemEncoder.encodeLengthcKst�d��dS)NzNot implemented)rr#�r�value�asn1Spec�	encodeFun�optionsrrr�encodeValueIszAbstractItemEncoder.encodeValueNc
Ks�|dur|j}n|j}|s:|j|||fi|��\}}}|S|�dd�}	t}t|j�D�]d\}
}|	}|
�sz |j|||fi|��\}}}Wn2tjy�t�	�}
t�d||
df��Yn0t
r�t
d|r�dp�d||f�|s�|r�|�dd	�r�|S|�sd}t
�rt
d
�|�||�}t
�rHt
d|�r0d�p2d|t�
t|��f�||�t|�|�7}t
�r�t
dt|�t�
t|��f�|�r�t|�|}|�s�||j7}qT||}|sT||j7}qT|�s�t|�}|S)
Nr%TzError encoding %r: %s�zencoded %svalue %s into %szconstructed ��
ifNotEmptyFz;overridden encoding mode into definitive for primitive typezencoded %stag %s into %sz)encoded %s octets (tag + payload) into %s)�tagSetr,�getr	�	enumerateZ	superTagsrr#�sys�exc_info�LOGrr�hexdumprr&r"�eooOctetsSubstrate�eooIntegerSubstrate)rr(r)r*r+r0rrZisOctetsr%�idxrZdefModeOverride�exc�headerrrrrLsr�����
���zAbstractItemEncoder.encode)NN)�__name__�
__module__�__qualname__r!r8rr7rr&r,rrrrrrsrc@seZdZdd�ZdS)�EndOfOctetsEncodercKs
tddfS�NFT�r	r'rrrr,�szEndOfOctetsEncoder.encodeValueN�r<r=r>r,rrrrr?�sr?c@seZdZdZdd�ZdS)�BooleanEncoderFcKs|rdp
dddfS)N)r-�rFrr'rrrr,�szBooleanEncoder.encodeValueN�r<r=r>r!r,rrrrrC�srCc@seZdZdZdZdd�ZdS)�IntegerEncoderFcKsF|dkr0tr"td|jrdpd�|jr,dSdStt|�dd�d	dfS)
Nrz#encoding %spayload for zero INTEGERzno r.)rFF)rDFFT)ZsignedF)r5�supportCompactZeror�intr'rrrr,�s�zIntegerEncoder.encodeValueN)r<r=r>r!rGr,rrrrrF�srFc@seZdZdd�ZdS)�BitStringEncoderc
Ks|dur|�|�}t|�}|dr4|d|d>}n|}|�dd�}|rXt|�|dkr~|��}tt|�d|�|ddfStr�td|�|jj}	|	r�t�	|	|	�}
nt�	�}
|j|
d�}d}t
}||k�r|}t||d|�}|||||�|fi|��7}q�|ddfS)Nr�maxChunkSizerFT�#encoding into up to %s-octet chunks�r0)�cloner"r1�asOctetsrr5r0�baseTagr
�TagSetr	�min)
rr(r)r*r+ZvalueLengthZalignedValuerJrrOr0�stop�startrrrr,�s0

 zBitStringEncoder.encodeValueNrBrrrrrI�srIc@seZdZdd�ZdS)�OctetStringEncodercKs|dur|��}nt|�s*|�|���}n|}|�dd�}|rJt|�|krT|ddfStrdtd|�|dur�|jj}|r�t�	||�}nt�	�}|j|d�}n6t|�s�|jj}|r�t�	||�}nt�	�}|j|d�}d}	t
}||	|	|�}
|
s�q|||
|fi|��7}|	|7}	q�|ddfS)NrJrFTrKrL)rNrrMr1r"r5r0rOr
rPr	)rr(r)r*r+rrJrOr0�pos�chunkrrrr,�s<


zOctetStringEncoder.encodeValueNrBrrrrrT�srTc@seZdZdZdd�ZdS)�NullEncoderFcKs
tddfSr@rAr'rrrr,$szNullEncoder.encodeValueNrErrrrrW!srWc@seZdZdZdd�ZdS)�ObjectIdentifierEncoderFcKs�|dur|�|�}|��}z|d}|d}Wn"tyPt�d|f��Yn0d|krfdkr�nnn|dkr�|df|dd�}nL|dkr�|f|dd�}n0|dkr�|df|dd�}nt�d|f��n0|dkr�|df|dd�}nt�d|f��d	}|D]�}	d|	k�r,d
k�r<nn||	f7}n\|	d
k�r�|	d
@f}
|	dL}	|	�r|d|	d
@Bf|
}
|	dL}	�qX||
7}nt�d
|	|f���q|ddfS)Nrr-zShort OID %s�'�(��Pz"Impossible first/second arcs at %srrrrzNegative OID arc %s at %sF)rMZasTuple�
IndexErrorrr#)rr(r)r*r+Zoid�first�second�octetsZsubOid�resrrrr,+s@



z#ObjectIdentifierEncoder.encodeValueNrErrrrrX(srXc@s0eZdZdZdZedd��Zdd�Zdd�Zd	S)
�RealEncoderrr[cCs�d\}}|dkrd}|dkr d}||9}|dkrZ|dt|�d|9}t|�d|}n0|dkr�|dt|�d|9}t|�d|}t|�|kr�||9}|d	8}q�q�q�|t|�||fS)
N)r-r-r���rr[���r-)�absrH)�m�encbase�e�ms�esrrr�_dropFloatingPointgs$zRealEncoder._dropFloatingPointcCs|\}}}gd�}|j|vr,|�||j|�S|j|vrF|�||j|�S|||g}|||g}d}d}	td�}td�D]�}
|�||
||
||
�\}||
<||
<||
<t||
�t|�ks�t||
�t|�krr||
|krr||
}t||
�}||
}	qrt�rtd|	|||f�|||	|fS)N)r[rrer-r[�infrdzMautomatically chosen REAL encoding base %s, sign %s, mantissa %s, exponent %s)�
binEncBaserm�float�rangergrHr5)rr(rh�brjZencBaseZmantissaZexponent�signri�irrr�_chooseEncBase�s4




�4

�zRealEncoder._chooseEncBasecKs�|dur|�|�}|jrdS|jr&dS|\}}}|s>tddfS|dkrvtrRtd�td||dkrdd	pfd
|f�ddfS|dk�r�d}|�|�\}	}}
}|	dkr�|d
O}|
dkr�|d@dkr�|dL}|d7}q�n\|
dk�r|d@dkr�|dL}|d7}q�|dO}n*|d@dk�r"|dL}|d7}�q|dO}d}|d@dk�rP|dL}|d7}�q.|dk�rdt�d��||d>O}t}|dk�s�|dk�r�t	|d@�}n�|dv�r�t	|d@�|}|dL}�q�|dk�r�|�r�t
|d�d@�r�t	d�|}|dk�r|�rt
|d�d@�st	d�|}t|�}
|
dk�r4t�d��|
dk�r@n@|
dk�rT|dO}n,|
dk�rh|dO}n|dO}t	|
d@�|}t}|�r�t	|d@�|}|dL}�q�t	|�||}|ddfSt�d|��dS)N))�@FF))�AFFFT�
z!encoding REAL into character formz%dE%s%dr�+r.r[rrvr-rrrdre�rf� zScale factor overflowrcr)rrczReal exponent overflowzProhibited Real base %s)rMZ	isPlusInfZ
isMinusInfr	r5r
rurr#rrr")rr(r)r*r+rhrrrj�forkriZsf�eo�nZporrrrr,�s�


$






""







zRealEncoder.encodeValueN)	r<r=r>r!ro�staticmethodrmrur,rrrrrbcs
!rbc@seZdZdZdd�ZdS)�SequenceEncoderFc	Ks�t}|�d|j�}tr*td|r"dp$d�|du�r~|j}|rB|�|j}t|���D�]"\}	}
|r�||	}|jr�|
j	s�trTtd|f�qT|j
r�|
|jkr�trTtd|f�qT|r�|j|jd�|�rb|j
�rb|j}|jtjjtjjfv�r|||
|fit||jd���7}nR||
|fi|��}
|�|
��r6||
7}n*|||
|fi|��7}t�rxtd	|f�qT|||
|fi|��7}qT�npt|jj�D�]`\}	}z||j}
Wn(t�y�t�d
|j|f��Yn0|j�r�|j|v�r�t�r�td|f��q�|j
�r$|
|jk�r$t�r�td|f��q�|�r8|j|jd�|j}|j
�r�|jtjjtjjfv�r�|||
|fit||jd���7}nR||
|fi|��}
|�|
��r�||
7}n*|||
|fi|��7}t�r�td	|f�n|||
|fi|��7}�q�|ddfS)N�omitEmptyOptionalsz$%sencoding empty OPTIONAL componentsznot r.z"not encoding OPTIONAL component %rz!not encoding DEFAULT component %r)r/)�wrapType�wrapped with wrap type %rz#Component name "%s" not found in %rT)r	r1r�r5�isInconsistent�
componentTyper2�valuesZ
isOptionalZisValueZisDefaultedZ
asn1Object�updateZopenType�typeIdr�SetOf�
SequenceOf�dict�isSameTypeWith�
namedTypes�name�KeyErrorrr#)rr(r)r*r+rr��
inconsistencyr�r9�	component�	namedTyper�rVZ
componentSpecrrrr,s��
�
���

����

zSequenceEncoder.encodeValueN)r<r=r>r�r,rrrrr�
sr�c@seZdZdd�Zdd�ZdS)�SequenceOfEncodercKs�|dur|j}|r|�n|j}g}|�dd�}t|�D]Z\}}	||	|fi|��}
|dur�|�|	�s�||
|fi|��}
tr�td|f�|�|
�q6|S)Nr�r�)r�r��popr2r�r5�append)rr(r)r*r+r��chunksr�r9r�rVrrr�_encodeComponents�s"�z#SequenceOfEncoder._encodeComponentscKs&|j|||fi|��}t�|�ddfS)NT)r�r	�join)rr(r)r*r+r�rrrr,�s��zSequenceOfEncoder.encodeValueN)r<r=r>r�r,rrrrr��sr�c@seZdZdd�ZdS)�
ChoiceEncodercs�|dur���}nX�fdd�|jjD�}t|�dkrRt�dt|�rFdpHd�f��|d}�|}||}|||fi|��ddfS)	Ncsg|]}|j�vr|j�qSr)r�)�.0r��r(rr�
<listcomp>�s
�z-ChoiceEncoder.encodeValue.<locals>.<listcomp>r-z%s components for Choice at %rz	Multiple zNone rT)ZgetComponentr�r�r"rr#)rr(r)r*r+r��namesr�rr�rr,�s
zChoiceEncoder.encodeValueNrBrrrrr��sr�c@seZdZdd�ZdS)�
AnyEncodercKs<|dur|��}nt|�s(|�|���}||�dd�dfS)Nr%T)rNrrMr1r'rrrr,�s

zAnyEncoder.encodeValueNrBrrrrr��sr�c@s*eZdZdZdZifdd�Zddd�ZdS)�EncoderNcCs||_||_dS)N)�_Encoder__tagMap�_Encoder__typeMap)r�tagMap�typeMaprrr�__init__szEncoder.__init__c	Ks�z|dur|j}n|j}Wn"ty<t�d|f��Yn0tr�td|�dd�rXdpZd|�dd�|durt|��pz|��|f�|jdur�|j|jd	�|j	dur�|j|j	d
�z&|j
|}tr�td|jj|f�Wn�t
�yd|dur�|j}n|j}t�|j|j�}z|j|}Wn&t
�yDt�d||f��Yn0t�r`td
|jj|f�Yn0|j|||fi|��}t�r�td|t|�t�|�f�|S)Nz<Value %r is not ASN.1 type instance and "asn1Spec" not givenzBencoder called in %sdef mode, chunk size %s for type %s, value:
%sr%T�inr.rJr)r%)rJz)using value codec %s chosen by type ID %szNo encoder for %r (%s)z(using value codec %s chosen by tagSet %sz;codec %s built %s octets of substrate: %s
encoder completed)r��AttributeErrorrr#r5r1ZprettyPrintType�fixedDefLengthModer��fixedChunkSizer��	__class__r<r�r0r
rPrOr�rr"rr6)	rr(r)r+r�ZconcreteEncoderr0Z
baseTagSetrrrr�__call__sF
�8�


zEncoder.__call__)N)r<r=r>r�r�r�r�rrrrr�	sr�)Jr3Zpyasn1rrZpyasn1.codec.berrZpyasn1.compat.integerrZpyasn1.compat.octetsrrrr	r
rZpyasn1.typerr
rr�__all__ZregisterLoggeer<Z
DEBUG_ENCODERr5�objectrr?rCrFrIrTrWrXrbr�r�r�r�ZendOfOctetsr0ZBooleanZIntegerZ	BitStringZOctetStringZNullZObjectIdentifierZ
EnumeratedZRealr�r�ZChoiceZ
UTF8StringZ
NumericStringZPrintableStringZ
TeletexStringZVideotexStringZ	IA5StringZ
GraphicStringZ
VisibleStringZ
GeneralStringZUniversalStringZ	BMPStringZObjectDescriptorZGeneralizedTimeZUTCTimer�r��Set�Sequence�Anyr�r�rrrrr�<module>s� )=;(z%

























�"



























�#q