
|
Server : Apache System : Linux 182.49.167.72.host.secureserver.net 4.18.0-553.92.1.el8_10.x86_64 #1 SMP Wed Jan 14 06:31:58 EST 2026 x86_64 User : kikai ( 1014) PHP Version : 8.3.30 Disable Function : NONE Directory : /var/opt/nydus/ops/asn1crypto/__pycache__/ |
Upload File : |
�
��i�# � � � d Z ddlmZmZmZmZ ddlZddlmZm Z m
Z
ddlmZm
Z
ej dk ZdZd Zd
� Zdd�Zd� Zdd
�Zd� Zy)z�
Functions for parsing and dumping using the ASN.1 DER encoding. Exports the
following items:
- emit()
- parse()
- peek()
Other type classes are defined that help compose the types listed above.
� )�unicode_literals�division�absolute_import�print_functionN� )�byte_cls�chr_cls� type_name)�int_from_bytes�int_to_bytes)� z<Insufficient data - %s bytes requested but only %s available�
c �� � t | t � st dt | � z � �| dk s| dkD rt d| z � �t |t � st dt |� z � �|dk s|dkD rt d|z � �t |t � st dt |� z � �|dk rt d |z � �t |t
� st d
t |� z � �t
| |||� |z S )a�
Constructs a byte string of an ASN.1 DER-encoded value
This is typically not useful. Instead, use one of the standard classes from
asn1crypto.core, or construct a new class with specific fields, and call the
.dump() method.
:param class_:
An integer ASN.1 class value: 0 (universal), 1 (application),
2 (context), 3 (private)
:param method:
An integer ASN.1 method value: 0 (primitive), 1 (constructed)
:param tag:
An integer ASN.1 tag value
:param contents:
A byte string of the encoded byte contents
:return:
A byte string of the ASN.1 DER value (header and contents)
z!class_ must be an integer, not %sr r
z*class_ must be one of 0, 1, 2 or 3, not %sz!method must be an integer, not %sr zmethod must be 0 or 1, not %sztag must be an integer, not %sz%tag must be greater than zero, not %s�&contents must be a byte string, not %s)�
isinstance�int� TypeErrorr
�
ValueErrorr �_dump_header)�class_�method�tag�contentss �B/opt/nydus/tmp/pip-target-4r_833n3/lib/python/asn1crypto/parser.py�emitr s� � �2 �f�c�"��;�i��>O�O�P�P�
��z�V�a�Z��E��N�O�O��f�c�"��;�i��>O�O�P�P�
��z�V�a�Z��8�6�A�B�B��c�3���8�9�S�>�I�J�J�
�Q�w��@�3�F�G�G��h��)��@�9�X�CV�V�W�W�����X�6��A�A� c � � t | t � st dt | � z � �t | � }t | |� \ }}|r||k7 rt
d||z
z � �|S )al
Parses a byte string of ASN.1 BER/DER-encoded data.
This is typically not useful. Instead, use one of the standard classes from
asn1crypto.core, or construct a new class with specific fields, and call the
.load() class method.
:param contents:
A byte string of BER/DER-encoded data
:param strict:
A boolean indicating if trailing data should be forbidden - if so, a
ValueError will be raised when trailing data exists
:raises:
ValueError - when the contents do not contain an ASN.1 header or are truncated in some way
TypeError - when contents is not a byte string
:return:
A 6-element tuple:
- 0: integer class (0 to 3)
- 1: integer method
- 2: integer tag
- 3: byte string header
- 4: byte string content
- 5: byte string trailer
r z4Extra data - %d bytes of trailing data were provided)r r r r
�len�_parser )r �strict�contents_len�info�consumeds r �parser$ K sd � �: �h��)��@�9�X�CV�V�W�W��x�=�L��H�l�3�N�D�(�
�(�l�*��O�S_�bj�Sj�k�l�l��Kr c � � t | t � st dt | � z � �t | t | � � \ }}|S )aW
Parses a byte string of ASN.1 BER/DER-encoded data to find the length
This is typically used to look into an encoded value to see how long the
next chunk of ASN.1-encoded data is. Primarily it is useful when a
value is a concatenation of multiple values.
:param contents:
A byte string of BER/DER-encoded data
:raises:
ValueError - when the contents do not contain an ASN.1 header or are truncated in some way
TypeError - when contents is not a byte string
:return:
An integer with the number of bytes occupied by the ASN.1 value
r )r r r r
r r )r r"