PHP WebShell
Текущая директория: /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__
Просмотр файла: decode_asn1.cpython-310.pyc
o
�)%a�} � @ s� d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl m
Z
d dlmZ d dl
mZmZmZmZ dd� Zd d
� Zdd� Zd
d� Zdd� Zdd� Zdd� Zdd� ZG dd� de�Zdd� Zdd� Zdd� Zdd � Zd!d"� Z d#d$� Z!d%d&� Z"d'd(� Z#d)d*� Z$d+d,� Z%d-d.� Z&d/d0� Z'd1d2� Z(d3d4� Z)d5d6� Z*d7d8� Z+d9d:� Z,d Z-d;Z.d<d=� Z/ej0j1ej0j2ej0j3ej0j4ej0j5ej0j6ej0j7ej0j8d>�Z9d?d@� Z:dAdB� Z;dCdD� Z<dEdF� Z=dGdH� Z>dIdJ� Z?dKdL� Z@dMdN� ZAej0jBej0j1ej0j2ej0j3ej0j4ej0j5ej0j6ej0jCej0j7ej0j8dO�
ZDej0jBd ej0j1d;ej0j2dPej0j3dQej0j4dRej0j5dSej0j6dTej0jCdUej0j7dVej0j8dWi
ZEdXdY� ZFdZd[� ZGd\d]� ZHd^d_� ZId`da� ZJdbdc� ZKddde� ZLdfdg� ZMdheNfdidj�ZOdkdl� ZPdmdn� ZQdodp� ZRi ejSe�ejTe�ejUe$�ejVe&�ejWe,�ejXe �ejYe"�ejZe#�ej[e�ej\e<�ej]e=�ej^e�ej_e>�ej`e'�ejae(�ejbe+�Zcejde@iZeejfeFejgeGejheHiZiejjeejkeejXe ej`e'ejYe"ejle*ej]e=iZmejneRiZoejneRiZpejqeAiZrdS )q� N)�x509)� DERReader�INTEGER�NULL�SEQUENCE��_TLS_FEATURE_TYPE_TO_ENUM)�_ASN1_TYPE_TO_ENUM)�CRLEntryExtensionOID�CertificatePoliciesOID�ExtensionOID�OCSPExtensionOIDc C s� d}| j �d|�}| j�|||d�}||d kr,|d }| j �d|�}| j�|||d�}| �|dk� | j �||�d d � �� S )N�P zchar[]� r )�_ffi�new�_lib�OBJ_obj2txt�openssl_assert�buffer�decode)�backend�obj�buf_len�buf�res� r �R/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/decode_asn1.py�_obj2txt s r c C sn | j �|�}| �|| jjk� | j �|�}| �|| jjk� t| |�}t| |�}t|j }t
�t
�|�||�S �N)
r �X509_NAME_ENTRY_get_objectr r r �X509_NAME_ENTRY_get_data�_asn1_string_to_utf8r r �typer �
NameAttribute�ObjectIdentifier)r �x509_name_entryr �data�value�oidr# r r r �_decode_x509_name_entry- s
r* c C s� | j �|�}g }d}t|�D ](}| j �||�}t| |�}| j �|�}||kr-|�|h� n|d �|� |}qt� dd� |D ��S )N���c s s � | ]}t �|�V qd S r )r �RelativeDistinguishedName)�.0�rdnr r r � <genexpr>H s � z$_decode_x509_name.<locals>.<genexpr>)
r �X509_NAME_entry_count�range�X509_NAME_get_entryr* �X509_NAME_ENTRY_set�append�addr �Name) r � x509_name�count�
attributes�prev_set_id�x�entry� attribute�set_idr r r �_decode_x509_name9 s
r? c C sR | j �|�}g }t|�D ]}| j �||�}| �|| jjk� |�t| |�� q|S r ) r �sk_GENERAL_NAME_numr1 �sk_GENERAL_NAME_valuer r r r4 �_decode_general_name)r �gns�num�names�i�gnr r r �_decode_general_namesK s rH c C s |j | jjkrt| |jj��d�}tj� |�S |j | jj
kr.t| |jj��d�}tj� |�S |j | jj
krDt| |jj�}t�t�|��S |j | jjkr�t| |jj�}t|�}|dks^|dkr�t�|d |d � �}t�||d d � �}tt|��dd � }|�d�}|dkr�t|�}d||d � v r�td��t�|jd �|� �} nt�|�} t�| �S |j | jjkr�t� t!| |jj"��S |j | jj#kr�t| |jj$��d�}tj%� |�S |j | jj&kr�t| |jj'j(�}
t)| |jj'j*�}t�+t�|
�|�S t�,d
�tj-�.|j |j ��|j ��)N�utf8� � � �0r+ �1zInvalid netmaskz/{}z{} is not a supported type)/r# r �GEN_DNS�_asn1_string_to_bytes�d�dNSNamer r �DNSName�_init_without_validation�GEN_URI�uniformResourceIdentifier�UniformResourceIdentifier�GEN_RIDr �registeredID�RegisteredIDr% � GEN_IPADD� iPAddress�len� ipaddress�
ip_address�bin�int�find�
ValueError�
ip_network�exploded�format� IPAddress�GEN_DIRNAME�
DirectoryNamer? �
directoryName� GEN_EMAIL�
rfc822Name�
RFC822Name�
GEN_OTHERNAME� otherName�type_id�_asn1_to_derr( � OtherName�UnsupportedGeneralNameType�_GENERAL_NAMES�get)r rG r'