HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/cryptography/hazmat/__pycache__/_der.cpython-38.pyc
U

�)%ae�@s�ddlZddlmZdZdZdZdZdZdZd	Z	d
eBZ
deBZdZd
Z
dZGdd�de�Zeed�dd�Zeeed�dd�ZdS)�N)�int_to_bytes� �����������c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zed�dd
�Z	e
d�dd�Zej
edfd�dd�Zedd�dd�Zedd�dd�Zeejdd�dd�Zed�dd�ZdS)�	DERReadercCst|�|_dS�N)�
memoryview�data)�selfr�r�:/usr/lib/python3/dist-packages/cryptography/hazmat/_der.py�__init__"szDERReader.__init__cCs|Srr�rrrr�	__enter__%szDERReader.__enter__cCs|dkr|��dSr)�check_empty)r�exc_type�	exc_value�tbrrr�__exit__(szDERReader.__exit__cCst|j�dkS�Nr)�lenrrrrr�is_empty,szDERReader.is_emptycCs|��std��dS)Nz Invalid DER input: trailing data)r �
ValueErrorrrrrr/szDERReader.check_empty)�returncCs4t|j�dkrtd��|jd}|jdd�|_|S)N��$Invalid DER input: insufficient datar�rrr!)r�retrrr�	read_byte3s

zDERReader.read_bytecCs8t|j�|krtd��|jd|�}|j|d�|_|S)Nr$r%)r�nr&rrr�
read_bytes:s
zDERReader.read_bytescCs�|��}|d@dkrtd��|��}|d@dkr6|}n^|dM}|dkrNtd��d}t|�D](}|dK}||��O}|dkrZtd��qZ|dkr�td��|�|�}|t|�fS)	N�z-Invalid DER input: unexpected high tag numberrr�z?Invalid DER input: indefinite length form is not allowed in DER�z3Invalid DER input: length was not minimally-encoded)r'r!�ranger)r)r�tagZlength_byte�length�i�bodyrrr�read_any_elementAs2���
zDERReader.read_any_element)�expected_tagr"cCs |��\}}||krtd��|S)Nz!Invalid DER input: unexpected tag)r2r!)rr3r.r1rrr�read_elementeszDERReader.read_elementc
Cs&|�|�|�W5QR�SQRXdSr)r4�rr3rrr�read_single_elementkszDERReader.read_single_elementcCs*t|j�dkr&|jd|kr&|�|�SdSr)rrr4r5rrr�read_optional_elementos
zDERReader.read_optional_elementcCsvt|j�dkrtd��|jd}|d@dkr4td��t|j�dkrh|jd}|dkrh|d@dkrhtd��t�|jd�S)Nrz)Invalid DER input: empty integer contentsrz'Negative DER integers are not supportedr#z0Invalid DER input: integer not minimally-encoded�big)rrr!�int�
from_bytes)r�first�secondrrr�
as_integervs

�zDERReader.as_integerN)�__name__�
__module__�__qualname__rrrr rr9r'rr)�typing�Tupler2r4r6�Optionalr7r=rrrrr!s$�r)�xr"cCs<t|t�std��|dkr"td��|��dd}t||�S)NzValue must be an integerrz#Negative integers are not supportedr,r#)�
isinstancer9r!�
bit_lengthr)rDr(rrr�encode_der_integer�s
rG)r.�childrenr"cGs~d}|D]}|t|�7}qt|g�g}|dkr@|�t|g��n*t|�}|�tdt|�Bg��|�|�|�|�d�|�S)Nrr�)r�bytes�appendr�extend�join)r.rHr/Zchild�chunksZlength_bytesrrr�
encode_der�s

rO)rAZcryptography.utilsrZCONSTRUCTEDZCONTEXT_SPECIFIC�INTEGERZ
BIT_STRINGZOCTET_STRING�NULLZOBJECT_IDENTIFIER�SEQUENCEZSETZPRINTABLE_STRINGZUTC_TIMEZGENERALIZED_TIME�objectrr9rJrGrOrrrr�<module>s f