o
    {j6h#                     @   s,  d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d d	lmZ d d
lmZ dgZejeejdZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZ G d'd( d(eZ!G d)d* d*eZ"i ej#j$e ej%j$e ej&j$e ej'j$e ej(j$e ej)j$e ej*j$e ej+j$e ej,j$e ej-j$e  ej.j$e  ej/j$e! e
j0j$e e
j1j$e e
j2j$e e
j3j$e e
j4j$e e
j5j$e e
j6j$e e
j7j$e e
j8j$e e
j9j$e e
j:j$e ej;j$e ej<j$e ej=j$e i	Z>i ej#j?e ej%j?e ej&j?e ej'j?e ej(j?e ej)j?e ej*j?e ej+j?e ej,j?e ej@j?e ej.j?e  ejAj?e ej-j?e  ej/j?e! ejBj?e" e
j0j?e e
j1j?e e
j2j?e e
j3j?e e
j4j?e e
j5j?e e
j6j?e e
j7j?e e
j8j?e e
j9j?e e
j:j?e ej;j?e ej<j?e ej=j?e iZCG d+d, d,eZDG d-d. d.eZEeD ZFd/eGfd0d1ZHdS )2    )OrderedDictN)debug)error)_MISSING)base)char)tag)univ)usefulencode)flagsc                   @      e Zd Zdd ZdS )AbstractItemEncoderc                 K   s
   t d)NzNot implemented)r   PyAsn1Errorselfvalue	encodeFunoptions r   j/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/pyasn1/codec/native/encoder.pyr      s   
zAbstractItemEncoder.encodeN__name__
__module____qualname__r   r   r   r   r   r          r   c                   @   r   )BooleanEncoderc                 K      t |S N)boolr   r   r   r   r         zBooleanEncoder.encodeNr   r   r   r   r   r      r   r   c                   @   r   )IntegerEncoderc                 K   r   r   )intr   r   r   r   r   #   r    zIntegerEncoder.encodeNr   r   r   r   r   r!   "   r   r!   c                   @   r   )BitStringEncoderc                 K   r   r   strr   r   r   r   r   (   r    zBitStringEncoder.encodeNr   r   r   r   r   r#   '   r   r#   c                   @   r   )OctetStringEncoderc                 K      |  S r   asOctetsr   r   r   r   r   -   r    zOctetStringEncoder.encodeNr   r   r   r   r   r&   ,   r   r&   c                   @   r   )TextStringEncoderc                 K   r   r   r$   r   r   r   r   r   2   r    zTextStringEncoder.encodeNr   r   r   r   r   r*   1   r   r*   c                   @   r   )NullEncoderc                 K   s   d S r   r   r   r   r   r   r   7   s   zNullEncoder.encodeNr   r   r   r   r   r+   6   r   r+   c                   @   r   )ObjectIdentifierEncoderc                 K   r   r   r$   r   r   r   r   r   <   r    zObjectIdentifierEncoder.encodeNr   r   r   r   r   r,   ;   r   r,   c                   @   r   )RelativeOIDEncoderc                 K   r   r   r$   r   r   r   r   r   A   r    zRelativeOIDEncoder.encodeNr   r   r   r   r   r-   @   r   r-   c                   @   r   )RealEncoderc                 K   r   r   )floatr   r   r   r   r   F   r    zRealEncoder.encodeNr   r   r   r   r   r.   E   r   r.   c                   @   s   e Zd ZeZdd ZdS )
SetEncoderc           
      K   sz   |j }|rtd|jj d|j}|  }t| D ]\}\}}	|r0|| j	r0|| j
s0q||	fi |||< q|S )NASN.1 object  is inconsistent)isInconsistentr   r   	__class__r   componentType	protoDict	enumerateitems
isOptionalisValue)
r   r   r   r   inconsistency
namedTypes	substrateidxkeysubValuer   r   r   r   M   s   zSetEncoder.encodeN)r   r   r   dictr6   r   r   r   r   r   r0   J   s    r0   c                   @   s   e Zd ZeZdS )SequenceEncoderN)r   r   r   r   r6   r   r   r   r   rB   ]   s    rB   c                   @   r   )SequenceOfEncoderc                    s4   |j }|rtd|jj d fdd|D S )Nr1   r2   c                    s   g | ]
} |fi qS r   r   ).0xr   r   r   r   
<listcomp>g   s    z,SequenceOfEncoder.encode.<locals>.<listcomp>)r3   r   r   r4   r   )r   r   r   r   r;   r   rF   r   r   b   s   zSequenceOfEncoder.encodeNr   r   r   r   r   rC   a   r   rC   c                   @   s   e Zd ZdS )ChoiceEncoderN)r   r   r   r   r   r   r   rH   j   s    rH   c                   @   r   )
AnyEncoderc                 K   r'   r   r(   r   r   r   r   r   o   r    zAnyEncoder.encodeNr   r   r   r   r   rI   n   r   rI   c                   @   s*   e Zd ZeZeZeefddZdd ZdS )SingleItemEncoderc                 K   s2   |t ur|n| j| _|t ur|| _d S | j| _d S r   )r   TAG_MAP_tagMapTYPE_MAP_typeMap)r   tagMaptypeMapignoredr   r   r   __init__   s   zSingleItemEncoder.__init__c                 K   s
  t |tjstdtr#tjt	|j
 tdt	|j
| f  |j}z| j|j }W n* tyX   t|jj|jj}z| j| }W n tyU   td|f w Y nw tretd|jj
|f  |j|| fi |}trtdt	|j
t|f  tj  |S )Nz;value is not valid (should be an instance of an ASN.1 Item)zencoder called for type %s <%s>zNo encoder for %sz!using value codec %s chosen by %szencoder %s produced: %s)
isinstancer   Asn1Itemr   r   LOGr   scopepushtyper   prettyPrinttagSetrN   typeIdKeyErrorr   TagSetbaseTagrL   r4   r   reprpop)r   r   r   rZ   concreteEncoder
baseTagSetpyObjectr   r   r   __call__   sD   

zSingleItemEncoder.__call__N)r   r   r   rK   rM   r   rR   rd   r   r   r   r   rJ      s
    rJ   c                   @   s"   e Zd ZeZdd ZdddZdS )Encoderc                 K   s   | j di || _d S )Nr   )SINGLE_ITEM_ENCODER_singleItemEncoder)r   r   r   r   r   rR      s   zEncoder.__init__Nc                 K   s   | j |fd|i|S )Nasn1Spec)rg   )r   rc   rh   r   r   r   r   rd      s   zEncoder.__call__r   )r   r   r   rJ   rf   rR   rd   r   r   r   r   re      s    re   attrc                 C   s>   ddd |  }rt|  d| dt t | S t| )NrK   rM   )rO   rP   z is deprecated. Please use z	 instead.)getwarningswarnDeprecationWarningglobalsAttributeError)ri   newAttrr   r   r   __getattr__  s   
rq   )Icollectionsr   rk   pyasn1r   r   pyasn1.compatr   pyasn1.typer   r   r   r	   r
   __all__registerLoggeer   DEBUG_ENCODERrU   objectr   r   r!   r#   r&   r*   r+   r,   r-   r.   r0   rB   rC   rH   rI   BooleanrZ   Integer	BitStringOctetStringNullObjectIdentifierRelativeOID
EnumeratedReal
SequenceOfSetOfChoice
UTF8StringNumericStringPrintableStringTeletexStringVideotexString	IA5StringGraphicStringVisibleStringGeneralStringUniversalString	BMPStringObjectDescriptorGeneralizedTimeUTCTimerK   r[   SetSequenceAnyrM   rJ   re   r   r%   rq   r   r   r   r   <module>   s   	








	
















!








	



















$1.