PHP WebShell

Текущая директория: /usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__

Просмотр файла: decode_asn1.cpython-310.pyc

o

�)%a�}�@s�ddlZddlZddlmZddlmZmZmZmZddl	m
Z
ddlmZddl
mZmZmZmZdd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�ZGdd�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,dZ-d;Z.d<d=�Z/ej0j1ej0j2ej0j3ej0j4ej0j5ej0j6ej0j7ej0j8d>�Z9d?d@�Z:dAdB�Z;dCdD�Z<dEdF�Z=dGdH�Z>dIdJ�Z?dKdL�Z@dMdN�ZAej0jBej0j1ej0j2ej0j3ej0j4ej0j5ej0j6ej0jCej0j7ej0j8dO�
ZDej0jBdej0j1d;ej0j2dPej0j3dQej0j4dRej0j5dSej0j6dTej0jCdUej0j7dVej0j8dWi
ZEdXdY�ZFdZd[�ZGd\d]�ZHd^d_�ZId`da�ZJdbdc�ZKddde�ZLdfdg�ZMdheNfdidj�ZOdkdl�ZPdmdn�ZQdodp�ZRiejSe�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�OCSPExtensionOIDcCs�d}|j�d|�}|j�|||d�}||dkr,|d}|j�d|�}|j�|||d�}|�|dk�|j�||�dd���S)N�Pzchar[]�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�_obj2txts	rcCsn|j�|�}|�||jjk�|j�|�}|�||jjk�t||�}t||�}t|j	}t
�t
�|�||�S�N)
r�X509_NAME_ENTRY_get_objectrrr�X509_NAME_ENTRY_get_data�_asn1_string_to_utf8rr	�typer�
NameAttribute�ObjectIdentifier)r�x509_name_entryr�data�value�oidr#rrr�_decode_x509_name_entry-s


r*c	Cs�|j�|�}g}d}t|�D](}|j�||�}t||�}|j�|�}||kr-|�|h�n|d�|�|}qt�	dd�|D��S)N���css�|]}t�|�VqdSr)r�RelativeDistinguishedName)�.0�rdnrrr�	<genexpr>Hs�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_idrrr�_decode_x509_name9s
r?cCsR|j�|�}g}t|�D]}|j�||�}|�||jjk�|�t||��q|Sr)	r�sk_GENERAL_NAME_numr1�sk_GENERAL_NAME_valuerrrr4�_decode_general_name)r�gns�num�names�i�gnrrr�_decode_general_namesKsrHcCs|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�||dd��}tt|��dd�}|�d�}|dkr�t|�}d||d�vr�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�|
�|�St�,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�dNSNamerr�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)rrGr'r)�data_len�base�netmask�bits�prefix�iprpr(rrrrBVsZ��


���rBcCst��Sr)r�OCSPNoCheck�r�extrrr�_decode_ocsp_no_check�srcC�0|j�d|�}|j�||jj�}t�t||��S�NzASN1_INTEGER *)r�cast�gcr�ASN1_INTEGER_freer�	CRLNumber�_asn1_integer_to_int�rr~�asn1_intrrr�_decode_crl_number��r�cCr�r�)rr�r�rr�r�DeltaCRLIndicatorr�r�rrr�_decode_delta_crl_indicator�r�r�c@seZdZdd�Zdd�ZdS)�_X509ExtensionParsercCs||_||_||_||_dSr)�	ext_count�get_ext�handlers�_backend)�selfrr�r�r�rrr�__init__�s
z_X509ExtensionParser.__init__cCsbg}t�}t|�|��D�]}|�||�}|j�||jjjk�|jj�	|�}|dk}t
�t|j|jj�
|���}||vrFt
�d�|�|��|tjkr�|jj�|�}	t|j|	�}
t|
��t�}g}|��ss|�|�t����|��ret
�dd�|D��}
|�t
�|||
��|�|�q|tjkr�|jj�|�}	tt|j|	��}|�t�� �|�t
�||t
�!���|�|�qz|j"|}Wn9t#y�|jj�|�}	|j�|	|jjjk�|jj�$|	j%|	j&�dd�}t
�'||�}|�t
�|||��Yn,w|jj�(|�}||jjjk�r|j�)�t*d�|���||j|�}
|�t
�|||
��|�|�qt
�+|�S)NrzDuplicate {} extension foundcSsg|]}t|�qSrr)r-r;rrr�
<listcomp>�sz._X509ExtensionParser.parse.<locals>.<listcomp>z/The {} extension is invalid and can't be parsed),�setr1r�r�r�rrrr�X509_EXTENSION_get_criticalrr%r�X509_EXTENSION_get_object�DuplicateExtensionrfr�TLS_FEATURE�X509_EXTENSION_get_datarPr�read_single_elementr�is_emptyr4�read_elementr�
as_integer�
TLSFeature�	Extensionr5�PRECERT_POISON�check_empty�
PrecertPoisonr��KeyErrorrr'�length�UnrecognizedExtension�X509V3_EXT_d2i�_consume_errorsrc�
Extensions)r��x509_obj�
extensions�	seen_oidsrFr~�crit�criticalr)r'�
data_bytes�features�parsedr(�reader�handler�der�unrecognized�ext_datarrr�parse�sx��
�
��

�
�
�
z_X509ExtensionParser.parseN)�__name__�
__module__�__qualname__r�r�rrrrr��sr�cCs2|j�d|�}|j�||jj�}|j�|�}g}t|�D]w}d}|j�||�}t�	t
||j��}|j|jj
kr�|j�|j�}g}t|�D]E}	|j�|j|	�}
t�	t
||
j��}|tjkrv|j�|
jjj|
jjj�dd��d�}|�|�qD|tjks}J�t||
jj�}
|�|
�qD|�t�||��qt�|�S)Nz"Cryptography_STACK_OF_POLICYINFO *�ascii)rr�r�r�CERTIFICATEPOLICIES_free�sk_POLICYINFO_numr1�sk_POLICYINFO_valuerr%r�policyid�
qualifiersr�sk_POLICYQUALINFO_num�sk_POLICYQUALINFO_value�pqualidr�
CPS_QUALIFIERrrQ�cpsurir'r�rr4�CPS_USER_NOTICE�_decode_user_notice�
usernotice�PolicyInformation�CertificatePolicies)r�cprD�certificate_policiesrFr��pir)�qnum�j�pqir�r��user_noticerrr�_decode_certificate_policiess<
����
r�c
Cs�d}d}|j|jjkrt||j�}|j|jjkrIt||jj�}|j�|jj�}g}t	|�D]}|j�
|jj|�}t||�}	|�|	�q-t
�||�}t
�||�Sr)�exptextrrr"�	noticeref�organizationr�sk_ASN1_INTEGER_num�	noticenosr1�sk_ASN1_INTEGER_valuer�r4r�NoticeReference�
UserNotice)
r�un�
explicit_text�notice_referencer�rD�notice_numbersrFr��
notice_numrrrr�&s �
r�cCsB|j�d|�}|j�||jj�}|jdk}t||j�}t�	||�S)NzBASIC_CONSTRAINTS *�)
rr�r�r�BASIC_CONSTRAINTS_free�ca�_asn1_integer_to_int_or_none�pathlenr�BasicConstraints)r�bc_st�basic_constraintsr��path_lengthrrr�_decode_basic_constraints>s�
�r�cCs@|j�d|�}|j�||jj�}t�|j�|j|j	�dd��S�NzASN1_OCTET_STRING *)
rr�r�r�ASN1_OCTET_STRING_freer�SubjectKeyIdentifierrr'r��r�asn1_stringrrr�_decode_subject_key_identifierNs��r�cCs�|j�d|�}|j�||jj�}d}d}|j|jjkr*|j�|jj|jj	�dd�}|j
|jjkr7t||j
�}t||j
�}t�|||�S)NzAUTHORITY_KEYID *)rr�r�r�AUTHORITY_KEYID_free�keyidrrr'r��issuerrHr��serialr�AuthorityKeyIdentifier)r�akid�key_identifier�authority_cert_issuer�authority_cert_serial_numberrrr� _decode_authority_key_identifierXs$����r�cs��j�d|�}�j�|�fdd��}�j�|�}g}t|�D]5}�j�||�}��|j�jj	k�t
�t�|j��}��|j
�jj	k�t�|j
�}|�t
�||��q|S)Nz*Cryptography_STACK_OF_ACCESS_DESCRIPTION *cs�j�|�j��jjd��S)N�ACCESS_DESCRIPTION_free)r�sk_ACCESS_DESCRIPTION_pop_freer�	addressof�
_original_lib)r;�rrr�<lambda>ss��z,_decode_information_access.<locals>.<lambda>)rr�r�r�sk_ACCESS_DESCRIPTION_numr1�sk_ACCESS_DESCRIPTION_valuer�methodrrr%r�locationrBr4�AccessDescription)r�iarD�access_descriptionsrF�adr)rGrr�r�_decode_information_accessos
�	rcC�t||�}t�|�Sr)rr�AuthorityInformationAccess�r�aiarrrr�$_decode_authority_information_access��

r
cCr	r)rr�SubjectInformationAccessrrrr�"_decode_subject_information_access�rrcCs�|j�d|�}|j�||jj�}|jj}||d�dk}||d�dk}||d�dk}||d�dk}||d�dk}||d�dk}||d�dk}	||d	�dk}
||d
�dk}t�|||||||	|
|�	S)NzASN1_BIT_STRING *rrrL�����rJ)rr�r�r�ASN1_BIT_STRING_free�ASN1_BIT_STRING_get_bitr�KeyUsage)r�
bit_string�get_bit�digital_signature�content_commitment�key_encipherment�data_encipherment�
key_agreement�
key_cert_sign�crl_sign�
encipher_only�
decipher_onlyrrr�_decode_key_usage�s.�r$cCs.|j�d|�}|j�||jj�}t||�}|S�NzGENERAL_NAMES *)rr�r�r�GENERAL_NAMES_freerH�rrC�
general_namesrrr�_decode_general_names_extension�s
r)cC�t�t||��Sr)r�SubjectAlternativeNamer)r}rrr�_decode_subject_alt_name���r,cCr*r)r�IssuerAlternativeNamer)r}rrr�_decode_issuer_alt_name�r-r/cCsF|j�d|�}|j�||jj�}t||j�}t||j�}tj	||d�S)NzNAME_CONSTRAINTS *)�permitted_subtrees�excluded_subtrees)
rr�r�r�NAME_CONSTRAINTS_free�_decode_general_subtrees�permittedSubtrees�excludedSubtreesr�NameConstraints)r�nc�	permitted�excludedrrr�_decode_name_constraints�s�r:cCsh||jjkrdS|j�|�}g}t|�D]}|j�||�}|�||jjk�t||j�}|�	|�q|Sr)
rrr�sk_GENERAL_SUBTREE_numr1�sk_GENERAL_SUBTREE_valuerrBrwr4)r�stack_subtreesrD�subtreesrFr�namerrrr3�sr3c		Cs�|j�d|�}|j�||jj�}|j|jjkr t||j�\}}nd}d}|jdk}|j	dk}|j
dk}|jdk}|j|jjkrFt
||j�}nd}t�|||||||�S)NzISSUING_DIST_POINT *r�)rr�r�r�ISSUING_DIST_POINT_free�	distpointr�_decode_distpoint�onlyuser�onlyCA�indirectCRL�onlyattr�onlysomereasons�_decode_reasonsr�IssuingDistributionPoint)	r�idp�	full_name�
relative_name�	only_user�only_ca�indirect_crl�	only_attr�only_some_reasonsrrr�_decode_issuing_dist_point�s,



�rRcCsD|j�d|�}|j�||jj�}t||j�}t||j�}t�	||�S)NzPOLICY_CONSTRAINTS *)
rr�r�r�POLICY_CONSTRAINTS_freer��requireExplicitPolicy�inhibitPolicyMappingr�PolicyConstraints)r�pc�require_explicit_policy�inhibit_policy_mappingrrr�_decode_policy_constraints�s���rZcCs�|j�d|�}|j�||jj�}|j�|�}g}t|�D]}|j�||�}|�||jj	k�t
�t||��}|�
|�qt
�|�S)Nz#Cryptography_STACK_OF_ASN1_OBJECT *)rr�r�r�sk_ASN1_OBJECT_free�sk_ASN1_OBJECT_numr1�sk_ASN1_OBJECT_valuerrrr%rr4�ExtendedKeyUsage)r�skrD�ekusrFrr)rrr�_decode_extended_key_usages
rarc
	Cs�|j�d|�}|j�||jj�}|j�|�}g}t|�D]E}d}d}d}d}|j�||�}	|	j|jj	kr:t
||	j�}|	j|jj	krGt||	j�}|	j
|jj	krVt||	j
�\}}|�t�||||��q|S)Nz"Cryptography_STACK_OF_DIST_POINT *)rr�r�r�CRL_DIST_POINTS_free�sk_DIST_POINT_numr1�sk_DIST_POINT_value�reasonsrrH�	CRLissuerrHrArBr4r�DistributionPoint)
r�cdpsrD�dist_pointsrFrKrL�
crl_issuerre�cdprrr�_decode_dist_pointss0���rl)rrLrrrrrrJcCs6g}t��D]\}}|j�||�r|�|�qt|�Sr)�_REASON_BIT_MAPPING�itemsrrr4�	frozenset)rre�enum_reasons�bit_position�reasonrrrrHPs
�rHc	Cs�|jtkrt||jj�}|dfS|jj}|j�|�}t�}t	|�D]}|j�
||�}|�||jj
k�|�t||��q!t�|�}d|fSr)r#�_DISTPOINT_TYPE_FULLNAMErHr?�fullname�relativenamer�sk_X509_NAME_ENTRY_numr�r1�sk_X509_NAME_ENTRY_valuerrrr5r*rr,)	rrArK�rns�rnumr9rF�rnrLrrrrBZs
	
rBcCr	r)rlr�CRLDistributionPoints�rrhrirrr�_decode_crl_distribution_pointssrr}cCr	r)rlr�FreshestCRLr|rrr�_decode_freshest_crlxrrcC�4|j�d|�}|j�||jj�}t||�}t�|�Sr�)rr�r�rr�r�r�InhibitAnyPolicy)rr��
skip_certsrrr�_decode_inhibit_any_policy}�

r�cCsjddlm}|j�d|�}|j�||jj�}g}t|j�|��D]}|j�	||�}|�
||||��q |S)Nr)�_SignedCertificateTimestampzCryptography_STACK_OF_SCT *)�)cryptography.hazmat.backends.openssl.x509r�rr�r�r�
SCT_LIST_freer1�
sk_SCT_num�sk_SCT_valuer4)r�	asn1_sctsr��sctsrF�sctrrr�_decode_scts�sr�cCr*r)r�)PrecertificateSignedCertificateTimestampsr��rr�rrr�-_decode_precert_signed_certificate_timestamps�r-r�cCr*r)r�SignedCertificateTimestampsr�r�rrr�%_decode_signed_certificate_timestamps��r�)
rrrLrrrrrJ�	�
rLrrrrrJr�r�cCsZ|j�d|�}|j�||jj�}|j�|�}zt�t|�WSt	y,t
d�|���w)NzASN1_ENUMERATED *zUnsupported reason code: {})rr�r�r�ASN1_ENUMERATED_free�ASN1_ENUMERATED_getr�	CRLReason�_CRL_ENTRY_REASON_CODE_TO_ENUMr�rcrf)r�enum�coderrr�_decode_crl_reason�s�r�cCr�)NzASN1_GENERALIZEDTIME *)rr�r�r�ASN1_GENERALIZEDTIME_freer�InvalidityDate�_parse_asn1_generalized_time)r�inv_date�generalized_timerrr�_decode_invalidity_date�s��r�cCr�r%)rr�r�rr&rHr�CertificateIssuerr'rrr�_decode_cert_issuer�r�r�csn�j�d�}�j�||�}��|dk���|d�jjk��j�|�fdd��}�j�|d|�dd�S)N�unsigned char **rc��j�|d�S�Nr�r�OPENSSL_free�rr�rrr���z_asn1_to_der.<locals>.<lambda>)rrr�
i2d_ASN1_TYPErrr�r)r�	asn1_typerrrr�rrq�s�rqcCs@|j�||jj�}|�||jjk�|j�||jj�}|�|�Sr)r�ASN1_INTEGER_to_BNrrrr��BN_free�
_bn_to_int)rr��bnrrrr��s
r�cCs||jjkrdSt||�Sr)rrr�)rr�rrrr��s
r�cCs|j�|j|j�dd�Sr)rrr'r�r�rrrrP�srPcCst||��d�S)Nr�)rPrr�rrr�_asn1_string_to_ascii�r�r��returncs~�j�d�}�j�||�}|dkrtd�|j�����|d�jjk��j�	|�fdd��}�j�
|d|�dd��d�S)Nr�r+z&Unsupported ASN1 string type. Type: {}rcr�r�r�r�r�rrr�
r�z&_asn1_string_to_utf8.<locals>.<lambda>rI)rrr�ASN1_STRING_to_UTF8rcrfr#rrr�rr)rr�rrrr�rr"s
�� r"cCs`|�||jjk�|j�||jj�}||jjkr"td�t||����|j�||jj	�}t
||�S)Nz1Couldn't parse ASN.1 time as generalizedtime {!r})rrrr�ASN1_TIME_to_generalizedtimercrfrPr�r�r�)r�	asn1_timer�rrr�_parse_asn1_times����
r�cCs"t||j�d|��}tj�|d�S)Nz
ASN1_STRING *z
%Y%m%d%H%M%SZ)r�rr��datetime�strptime)rr��timerrrr�$s�r�cCs0|j�d|�}|j�||jj�}t�t||��Sr�)rr�r�rr�r�	OCSPNoncerP)r�noncerrr�
_decode_nonce+r�r�)sr�r^�cryptographyr�cryptography.hazmat._derrrrr�cryptography.x509.extensionsr�cryptography.x509.namer	�cryptography.x509.oidr
rrr
rr*r?rHrBrr�r��objectr�r�r�r�r�r�rr
rr$r)r,r/r:r3rRrZrars�_DISTPOINT_TYPE_RELATIVENAMErl�ReasonFlags�key_compromise�
ca_compromise�affiliation_changed�
superseded�cessation_of_operation�certificate_hold�privilege_withdrawn�
aa_compromisermrHrBr}rr�r�r�r��unspecified�remove_from_crlr��_CRL_ENTRY_REASON_ENUM_TO_CODEr�r�r�rqr�r�rPr��strr"r�r�r��BASIC_CONSTRAINTS�SUBJECT_KEY_IDENTIFIER�	KEY_USAGE�SUBJECT_ALTERNATIVE_NAME�EXTENDED_KEY_USAGE�AUTHORITY_KEY_IDENTIFIER�AUTHORITY_INFORMATION_ACCESS�SUBJECT_INFORMATION_ACCESS�CERTIFICATE_POLICIES�CRL_DISTRIBUTION_POINTS�FRESHEST_CRL�
OCSP_NO_CHECK�INHIBIT_ANY_POLICY�ISSUER_ALTERNATIVE_NAME�NAME_CONSTRAINTS�POLICY_CONSTRAINTS�_EXTENSION_HANDLERS_BASE�%PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS�_EXTENSION_HANDLERS_SCT�
CRL_REASON�INVALIDITY_DATE�CERTIFICATE_ISSUER�_REVOKED_EXTENSION_HANDLERS�
CRL_NUMBER�DELTA_CRL_INDICATOR�ISSUING_DISTRIBUTION_POINT�_CRL_EXTENSION_HANDLERS�NONCE�_OCSP_REQ_EXTENSION_HANDLERS�"_OCSP_BASICRESP_EXTENSION_HANDLERS�SIGNED_CERTIFICATE_TIMESTAMPS�'_OCSP_SINGLERESP_EXTENSION_HANDLERS_SCTrrrr�<module>s"NQ!

-�
��
�������
�
�����������
���

Выполнить команду


Для локальной разработки. Не используйте в интернете!