HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/cryptography/hazmat/backends/openssl/__pycache__/x509.cpython-38.pyc
U

�e�]�N�@s2ddlmZmZmZddlZddlZddlmZmZddl	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZmZddlmZddlmZmZddlmZmZmZe�ej �Gd	d
�d
e!��Z"e�ej#�Gdd�de!��Z$e�ej%�Gd
d�de!��Z&e�ej'�Gdd�de!��Z(e�ej)j*�Gdd�de!��Z+dS)�)�absolute_import�division�print_functionN)�utils�x509)�UnsupportedAlgorithm)
�_CERTIFICATE_EXTENSION_PARSER�$_CERTIFICATE_EXTENSION_PARSER_NO_SCT�_CRL_EXTENSION_PARSER�_CSR_EXTENSION_PARSER�%_REVOKED_CERTIFICATE_EXTENSION_PARSER�_asn1_integer_to_int�_asn1_string_to_bytes�_decode_x509_name�_obj2txt�_parse_asn1_time)�_encode_asn1_int_gc)�hashes�
serialization)�dsa�ec�rsac@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	d
d��Z
e	dd��Zdd�Ze	dd��Z
e	dd��Ze	dd��Ze	dd��Ze	dd��Ze	dd��Zejdd ��Ze	d!d"��Ze	d#d$��Zd%d&�Zd'S)(�_CertificatecCs||_||_dS�N)�_backend�_x509)�self�backendr�r�K/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/x509.py�__init__sz_Certificate.__init__cCsd�|j�S)Nz<Certificate(subject={}, ...)>)�format�subject�rrrr�__repr__sz_Certificate.__repr__cCs,t|tj�stS|jj�|j|j�}|dkS�Nr)�
isinstancer�Certificate�NotImplementedr�_libZX509_cmpr�r�other�resrrr�__eq__"sz_Certificate.__eq__cCs
||kSrr�rr+rrr�__ne__)sz_Certificate.__ne__cCst|�tjj��Sr��hash�public_bytesr�Encoding�DERr#rrr�__hash__,sz_Certificate.__hash__cCs*t�||j�}|�|�tjj��|��Sr)	r�Hashr�updater2rr3r4�finalize)r�	algorithm�hrrr�fingerprint/sz_Certificate.fingerprintcCsF|jj�|j�}|dkr tjjS|dkr0tjjSt�d�	|�|��dS)Nr�z{} is not a valid X509 version)
rr)ZX509_get_versionrr�Version�v1Zv3ZInvalidVersionr!�r�versionrrrr@4s�z_Certificate.versioncCs2|jj�|j�}|j�||jjjk�t|j|�Sr)rr)ZX509_get_serialNumberr�openssl_assert�_ffi�NULLr
�r�asn1_intrrr�
serial_number@sz_Certificate.serial_numbercCsR|jj�|j�}||jjjkr0|j��td��|jj�||jjj	�}|j�
|�S)Nz,Certificate public key is of an unknown type)rr)ZX509_get_pubkeyrrBrC�_consume_errors�
ValueError�gc�
EVP_PKEY_free�_evp_pkey_to_public_key�r�pkeyrrr�
public_keyFs
z_Certificate.public_keycCs|jj�|j�}t|j|�Sr)rr)ZX509_getm_notBeforerr�rZ	asn1_timerrr�not_valid_beforeQsz_Certificate.not_valid_beforecCs|jj�|j�}t|j|�Sr)rr)ZX509_getm_notAfterrrrOrrr�not_valid_afterVsz_Certificate.not_valid_aftercCs2|jj�|j�}|j�||jjjk�t|j|�Sr)rr)ZX509_get_issuer_namerrArBrCr�r�issuerrrrrS[sz_Certificate.issuercCs2|jj�|j�}|j�||jjjk�t|j|�Sr)rr)ZX509_get_subject_namerrArBrCr�rr"rrrr"asz_Certificate.subjectcCs:|j}ztj|WStk
r4td�|���YnXdS�Nz)Signature algorithm OID:{} not recognized��signature_algorithm_oidrZ_SIG_OIDS_TO_HASH�KeyErrorrr!�r�oidrrr�signature_hash_algorithmgs�z%_Certificate.signature_hash_algorithmcCs^|jj�d�}|jj�|jjj||j�|j�|d|jjjk�t|j|dj	�}t
�|�S�Nz
X509_ALGOR **r)rrB�newr)�X509_get0_signaturerCrrArr9r�ObjectIdentifier�rZalgrZrrrrWqs�z$_Certificate.signature_algorithm_oidcCs.|jjjrt�|j|j�St�|j|j�SdSr)rr)Z#CRYPTOGRAPHY_OPENSSL_110_OR_GREATERr�parserr	r#rrr�
extensions{s
��z_Certificate.extensionscCsR|jj�d�}|jj�||jjj|j�|j�|d|jjjk�t|j|d�S�NzASN1_BIT_STRING **r)	rrBr]r)r^rCrrAr�rZsigrrr�	signature�s�z_Certificate.signaturecsd�jj�d�}�jj��j|�}�j�|dk��jj�|�fdd��}�jj�|d|�dd�S)N�unsigned char **rcs�jj�|d�Sr%�rr)ZOPENSSL_free�Zpointerr#rr�<lambda>��z4_Certificate.tbs_certificate_bytes.<locals>.<lambda>)	rrBr]r)Zi2d_re_X509_tbsrrArI�buffer�rZppr,rr#r�tbs_certificate_bytes�s
�z"_Certificate.tbs_certificate_bytescCsn|j��}|tjjkr*|jj�||j�}n(|tjjkrJ|jj�	||j�}nt
d��|j�|dk�|j�|�S�Nz/encoding must be an item from the Encoding enum�)
r�_create_mem_bio_gcrr3�PEMr)ZPEM_write_bio_X509rr4Zi2d_X509_bio�	TypeErrorrA�
_read_mem_bio�r�encoding�bior,rrrr2�s
z_Certificate.public_bytesN)�__name__�
__module__�__qualname__r r$r-r/r5r;�propertyr@rFrNrPrQrSr"r[rWr�cached_propertyrbrermr2rrrrrs<






	
	



	rc@s:eZdZdd�Zedd��Zedd��Zejdd��Z	d	S)
�_RevokedCertificatecCs||_||_||_dSr)rZ_crl�
_x509_revoked)rrZcrlZx509_revokedrrrr �sz_RevokedCertificate.__init__cCs2|jj�|j�}|j�||jjjk�t|j|�Sr)rr)ZX509_REVOKED_get0_serialNumberr}rArBrCr
rDrrrrF�s
�z!_RevokedCertificate.serial_numbercCst|j|jj�|j��Sr)rrr)Z X509_REVOKED_get0_revocationDater}r#rrr�revocation_date�s��z#_RevokedCertificate.revocation_datecCst�|j|j�Sr)rrarr}r#rrrrb�s�z_RevokedCertificate.extensionsN)
rwrxryr rzrFr~rr{rbrrrrr|�s

r|c@s�eZdZdd�Zdd�Zdd�Zdd�Zejd	d
��Z	dd�Z
ed
d��Zedd��Z
edd��Zedd��Zedd��Zedd��Zedd��Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zejd%d&��Zd'd(�Zd)S)*�_CertificateRevocationListcCs||_||_dSr)r�	_x509_crl)rrZx509_crlrrrr �sz#_CertificateRevocationList.__init__cCs,t|tj�stS|jj�|j|j�}|dkSr%)r&r�CertificateRevocationListr(rr)ZX509_CRL_cmpr�r*rrrr-�sz!_CertificateRevocationList.__eq__cCs
||kSrrr.rrrr/�sz!_CertificateRevocationList.__ne__cCsXt�||j�}|j��}|jj�||j�}|j�|dk�|j�|�}|�	|�|�
�S)Nro)rr6rrpr)�i2d_X509_CRL_bior�rArsr7r8)rr9r:rvr,Zderrrrr;�s
�
z&_CertificateRevocationList.fingerprintcCs@|jj�|j�}|j�||jjjk�|jj�||jjj�}|Sr)	rr)ZX509_CRL_dupr�rArBrCrIZ
X509_CRL_free)r�duprrr�_sorted_crl�sz&_CertificateRevocationList._sorted_crlcCsl|jj�d�}t|j|�}|jj�|j||�}|dkr:dS|j�|d|jjjk�t	|j|j|d�SdS)NzX509_REVOKED **r)
rrBr]rr)ZX509_CRL_get0_by_serialr�rArCr|)rrF�revokedrEr,rrr�(get_revoked_certificate_by_serial_number�s"���zC_CertificateRevocationList.get_revoked_certificate_by_serial_numbercCs:|j}ztj|WStk
r4td�|���YnXdSrUrVrYrrrr[s�z3_CertificateRevocationList.signature_hash_algorithmcCs^|jj�d�}|jj�|j|jjj|�|j�|d|jjjk�t|j|dj	�}t
�|�Sr\)rrBr]r)�X509_CRL_get0_signaturer�rCrArr9rr_r`rrrrWs�z2_CertificateRevocationList.signature_algorithm_oidcCs2|jj�|j�}|j�||jjjk�t|j|�Sr)rr)ZX509_CRL_get_issuerr�rArBrCrrRrrrrSsz!_CertificateRevocationList.issuercCs2|jj�|j�}|j�||jjjk�t|j|�Sr)rr)ZX509_CRL_get_nextUpdater�rArBrCr)rZnurrr�next_updatesz&_CertificateRevocationList.next_updatecCs2|jj�|j�}|j�||jjjk�t|j|�Sr)rr)ZX509_CRL_get_lastUpdater�rArBrCr)rZlurrr�last_update!sz&_CertificateRevocationList.last_updatecCsR|jj�d�}|jj�|j||jjj�|j�|d|jjjk�t|j|d�Src)	rrBr]r)r�r�rCrArrdrrrre's�z$_CertificateRevocationList.signaturecsd�jj�d�}�jj��j|�}�j�|dk��jj�|�fdd��}�jj�|d|�dd�S)Nrfrcs�jj�|d�Sr%rgrhr#rrri6rjz?_CertificateRevocationList.tbs_certlist_bytes.<locals>.<lambda>)	rrBr]r)Zi2d_re_X509_CRL_tbsr�rArIrkrlrr#r�tbs_certlist_bytes0s
�z-_CertificateRevocationList.tbs_certlist_bytescCsn|j��}|tjjkr*|jj�||j�}n(|tjjkrJ|jj�	||j�}nt
d��|j�|dk�|j�|�Srn)
rrprr3rqr)ZPEM_write_bio_X509_CRLr�r4r�rrrArsrtrrrr2:s
�z'_CertificateRevocationList.public_bytescCsD|jj�|j�}|jj�||�}|j�||jjjk�t|j||�Sr)	rr)�X509_CRL_get_REVOKEDr�Zsk_X509_REVOKED_valuerArBrCr|)r�idxr��rrrr�
_revoked_certHsz(_CertificateRevocationList._revoked_certccs"tt|��D]}|�|�VqdSr)�range�lenr�)r�irrr�__iter__Nsz#_CertificateRevocationList.__iter__cs�t|t�r8|�t���\}}}�fdd�t|||�D�St�|�}|dkrV|t��7}d|krnt��kstnt���|�SdS)Ncsg|]}��|��qSr)r�)�.0r�r#rr�
<listcomp>Usz:_CertificateRevocationList.__getitem__.<locals>.<listcomp>r)	r&�slice�indicesr�r��operator�index�
IndexErrorr�)rr��start�stop�steprr#r�__getitem__Rs

z&_CertificateRevocationList.__getitem__cCs4|jj�|j�}||jjjkr"dS|jj�|�SdSr%)rr)r�r�rBrCZsk_X509_REVOKED_num)rr�rrr�__len__^sz"_CertificateRevocationList.__len__cCst�|j|j�Sr)r
rarr�r#rrrrbesz%_CertificateRevocationList.extensionscCsLt|tjtjtjf�std��|jj	�
|j|j�}|dkrH|j�
�dSdS)NzGExpecting one of DSAPublicKey, RSAPublicKey, or EllipticCurvePublicKey.roFT)r&rZDSAPublicKeyrZRSAPublicKeyrZEllipticCurvePublicKeyrrrr)ZX509_CRL_verifyr�Z	_evp_pkeyrG)rrNr,rrr�is_signature_validis��
z-_CertificateRevocationList.is_signature_validN)rwrxryr r-r/r;rr{r�r�rzr[rWrSr�r�rer�r2r�r�r�r�rbr�rrrrr�s:
	
	
	




	
rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zedd��Z	ed
d��Z
edd��Zej
dd��Zdd�Zedd��Zedd��Zedd��ZdS)�_CertificateSigningRequestcCs||_||_dSr)r�	_x509_req)rrZx509_reqrrrr {sz#_CertificateSigningRequest.__init__cCs2t|t�stS|�tjj�}|�tjj�}||kSr)r&r�r(r2rr3r4)rr+Z
self_bytesZother_bytesrrrr-s

z!_CertificateSigningRequest.__eq__cCs
||kSrrr.rrrr/�sz!_CertificateSigningRequest.__ne__cCst|�tjj��Srr0r#rrrr5�sz#_CertificateSigningRequest.__hash__cCsH|jj�|j�}|j�||jjjk�|jj�||jjj�}|j�	|�Sr)
rr)�X509_REQ_get_pubkeyr�rArBrCrIrJrKrLrrrrN�sz%_CertificateSigningRequest.public_keycCs2|jj�|j�}|j�||jjjk�t|j|�Sr)rr)ZX509_REQ_get_subject_namer�rArBrCrrTrrrr"�sz"_CertificateSigningRequest.subjectcCs:|j}ztj|WStk
r4td�|���YnXdSrUrVrYrrrr[�s�z3_CertificateSigningRequest.signature_hash_algorithmcCs^|jj�d�}|jj�|j|jjj|�|j�|d|jjjk�t|j|dj	�}t
�|�Sr\)rrBr]r)�X509_REQ_get0_signaturer�rCrArr9rr_r`rrrrW�s�z2_CertificateSigningRequest.signature_algorithm_oidcs6�jj��j�}�jj�|�fdd��}t��j|�S)Ncs"�jj�|�jj��jjjd��S)NZX509_EXTENSION_free)rr)Zsk_X509_EXTENSION_pop_freerBZ	addressofZ
_original_lib)�xr#rrri�s��z7_CertificateSigningRequest.extensions.<locals>.<lambda>)rr)ZX509_REQ_get_extensionsr�rBrIrra)rZ	x509_extsrr#rrb�s
�z%_CertificateSigningRequest.extensionscCsn|j��}|tjjkr*|jj�||j�}n(|tjjkrJ|jj�	||j�}nt
d��|j�|dk�|j�|�Srn)
rrprr3rqr)ZPEM_write_bio_X509_REQr�r4Zi2d_X509_REQ_biorrrArsrtrrrr2�s
�z'_CertificateSigningRequest.public_bytescsd�jj�d�}�jj��j|�}�j�|dk��jj�|�fdd��}�jj�|d|�dd�S)Nrfrcs�jj�|d�Sr%rgrhr#rrri�rjzB_CertificateSigningRequest.tbs_certrequest_bytes.<locals>.<lambda>)	rrBr]r)Zi2d_re_X509_REQ_tbsr�rArIrkrlrr#r�tbs_certrequest_bytes�s
�z0_CertificateSigningRequest.tbs_certrequest_bytescCsR|jj�d�}|jj�|j||jjj�|j�|d|jjjk�t|j|d�Src)	rrBr]r)r�r�rCrArrdrrrre�s�z$_CertificateSigningRequest.signaturecCsh|jj�|j�}|j�||jjjk�|jj�||jjj�}|jj�	|j|�}|dkrd|j�
�dSdS)NroFT)rr)r�r�rArBrCrIrJZX509_REQ_verifyrG)rrMr,rrrr��s
z-_CertificateSigningRequest.is_signature_validN)rwrxryr r-r/r5rNrzr"r[rWrr{rbr2r�rer�rrrrr�ys(

	
	

	
r�c@sheZdZdd�Zedd��Zedd��Zedd��Zed	d
��Zedd��Z	d
d�Z
dd�Zdd�ZdS)�_SignedCertificateTimestampcCs||_||_||_dSr)rZ	_sct_list�_sct)rrZsct_listZsctrrrr �sz$_SignedCertificateTimestamp.__init__cCs,|jj�|j�}||jjjks"t�tjjj	Sr)
rr)ZSCT_get_versionr�ZSCT_VERSION_V1�AssertionErrorr�certificate_transparencyr=r>r?rrrr@�sz#_SignedCertificateTimestamp.versioncCsH|jj�d�}|jj�|j|�}|dks,t�|jj�|d|�dd�S�Nrfr)rrBr]r)ZSCT_get0_log_idr�r�rk)r�outZ
log_id_lengthrrr�log_id�sz"_SignedCertificateTimestamp.log_idcCs4|jj�|j�}|d}tj�|d�j|dd�S)Ni�)Zmicrosecond)rr)ZSCT_get_timestampr��datetimeZutcfromtimestamp�replace)r�	timestampZmillisecondsrrrr�s��z%_SignedCertificateTimestamp.timestampcCs,|jj�|j�}||jjjks"t�tjjj	Sr)
rr)ZSCT_get_log_entry_typer�ZCT_LOG_ENTRY_TYPE_PRECERTr�rr�ZLogEntryTypeZPRE_CERTIFICATE)r�
entry_typerrrr�sz&_SignedCertificateTimestamp.entry_typecCsf|jj�d�}|jj�|j|�}|j�|dk�|j�|d|jjjk�|jj�|d|�dd�Sr�)	rrBr]r)ZSCT_get0_signaturer�rArCrk)rZptrptrr,rrr�
_signatures
z&_SignedCertificateTimestamp._signaturecCs
t|j�Sr)r1r�r#rrrr5sz$_SignedCertificateTimestamp.__hash__cCst|t�stS|j|jkSr)r&r�r(r�r.rrrr-s
z"_SignedCertificateTimestamp.__eq__cCs
||kSrrr.rrrr/!sz"_SignedCertificateTimestamp.__ne__N)
rwrxryr rzr@r�r�r�r�r5r-r/rrrrr��s




r�),Z
__future__rrrr�r�ZcryptographyrrZcryptography.exceptionsrZ0cryptography.hazmat.backends.openssl.decode_asn1rr	r
rrr
rrrrZ0cryptography.hazmat.backends.openssl.encode_asn1rZcryptography.hazmat.primitivesrrZ)cryptography.hazmat.primitives.asymmetricrrrZregister_interfacer'�objectrZRevokedCertificater|r�rZCertificateSigningRequestr�r�ZSignedCertificateTimestampr�rrrr�<module>s,0

%
-
o�