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__/ocsp.cpython-38.pyc
U

�e�]V5�@s�ddlmZmZmZddlZddlmZmZddlm	Z	ddl
mZmZm
Z
mZmZmZmZmZddlmZddlmZddlmZmZmZmZmZmZmZd	d
�Zdd�Z d
d�Z!dd�Z"dd�Z#e�$e�Gdd�de%��Z&e�$e�Gdd�de%��Z'dS)�)�absolute_import�division�print_functionN)�utils�x509)�UnsupportedAlgorithm)�_CRL_ENTRY_REASON_CODE_TO_ENUM�_OCSP_BASICRESP_EXT_PARSER�_OCSP_REQ_EXT_PARSER�_asn1_integer_to_int�_asn1_string_to_bytes�_decode_x509_name�_obj2txt�_parse_asn1_generalized_time)�_Certificate)�
serialization)�OCSPCertStatus�OCSPRequest�OCSPResponse�OCSPResponseStatus�_CERT_STATUS_TO_ENUM�
_OIDS_TO_HASH�_RESPONSE_STATUS_TO_ENUMcst����fdd��}|S)Ncs(|jtjkrtd��n�|f|��SdS)NzCOCSP response status is not successful so the property has no value)�response_statusr�
SUCCESSFUL�
ValueError)�self�args��func��K/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl/ocsp.py�wrappers
�z._requires_successful_response.<locals>.wrapper)�	functools�wraps)rr"r rr!�_requires_successful_responses	r%cCs^|j�d�}|j�|jj|jj||jj|�}|�|dk�|�|d|jjk�t||d�S�N�ASN1_OCTET_STRING **�r��_ffi�new�_lib�OCSP_id_get0_info�NULL�openssl_assertr)�backend�cert_idZkey_hash�resr r r!�_issuer_key_hash's�r3cCs^|j�d�}|j�||jj|jj|jj|�}|�|dk�|�|d|jjk�t||d�Sr&r))r0r1Z	name_hashr2r r r!�_issuer_name_hash2s�r4cCs^|j�d�}|j�|jj|jj|jj||�}|�|dk�|�|d|jjk�t||d�S)NzASN1_INTEGER **r(r)r*r+r,r-r.r/r)r0r1�numr2r r r!�_serial_number=s�r6cCs�|j�d�}|j�|jj||jj|jj|�}|�|dk�|�|d|jjk�t||d�}z
t|WStk
r�t	d�
|���YnXdS)NzASN1_OBJECT **r(rz*Signature algorithm OID: {} not recognized)r*r+r,r-r.r/rr�KeyErrorr�format)r0r1Zasn1objr2�oidr r r!�_hash_algorithmHs"�
�r:c@sPeZdZdd�Ze�d�Zeedd���Z	eedd���Z
eedd	���Zeed
d���Zeedd
���Z
eedd���Zeedd���Zdd�Zeedd���Zeedd���Zeedd���Zeedd���Zeedd���Zeedd���Zeed d!���Zeed"d#���Zeed$d%���Zeed&d'���Zejed(d)���Zd*d+�Zd,S)-�
_OCSPResponsecCs�||_||_|jj�|j�}|j�|tk�t||_|jtjkr�|jj�	|j�}|j�||jj
jk�|jj
�||jjj
�|_|j�|jj�|j�dk�|jj�|jd�|_|j�|j|jj
jk�|jj�|j�|_|j�|j|jj
jk�dS)Nr(r)�_backend�_ocsp_responser,ZOCSP_response_statusr/r�_statusrrZOCSP_response_get1_basicr*r.�gcZOCSP_BASICRESP_free�_basicZOCSP_resp_countZOCSP_resp_get0�_singleZOCSP_SINGLERESP_get0_id�_cert_id)rr0Z
ocsp_response�statusZbasicr r r!�__init__[s6
������z_OCSPResponse.__init__r>cCs>|jj�|j�}|j�||jjjk�t|j|j�}t	�
|�S�N)r<r,ZOCSP_resp_get0_tbs_sigalgr@r/r*r.r�	algorithmrZObjectIdentifier)rZalgr9r r r!�signature_algorithm_oidysz%_OCSPResponse.signature_algorithm_oidcCs:|j}ztj|WStk
r4td�|���YnXdS)Nz)Signature algorithm OID:{} not recognized)rGrZ_SIG_OIDS_TO_HASHr7rr8)rr9r r r!�signature_hash_algorithm�s�z&_OCSPResponse.signature_hash_algorithmcCs2|jj�|j�}|j�||jjjk�t|j|�SrE)r<r,ZOCSP_resp_get0_signaturer@r/r*r.r)rZsigr r r!�	signature�sz_OCSPResponse.signaturecs��jj��j�}�j�|�jjjk��jj�d�}�jj�||�}�j�|d�jjjk��jj�	|�fdd��}�j�|dk��jj�
|d|�dd�S)Nzunsigned char **rcs�jj�|d�S)Nr)r<r,ZOPENSSL_free)Zpointer�rr r!�<lambda>��z2_OCSPResponse.tbs_response_bytes.<locals>.<lambda>)r<r,ZOCSP_resp_get0_respdatar@r/r*r.r+Zi2d_OCSP_RESPDATAr?�buffer)rZrespdataZppr2r rJr!�tbs_response_bytes�s
�z _OCSPResponse.tbs_response_bytescCsv|jj�|j�}|jj�|�}g}t|�D]F}|jj�||�}|j�||jjj	k�t
|j|�}||_|�|�q*|SrE)
r<r,ZOCSP_resp_get0_certsr@Zsk_X509_num�rangeZ
sk_X509_valuer/r*r.rZ
_ocsp_resp�append)rZsk_x509r5Zcerts�irZcertr r r!�certificates�sz_OCSPResponse.certificatescCs.|��\}}||jjjkrdSt|j|�SdSrE)�_responder_key_namer<r*r.r)r�_�asn1_stringr r r!�responder_key_hash�sz _OCSPResponse.responder_key_hashcCs.|��\}}||jjjkrdSt|j|�SdSrE)rSr<r*r.r
)r�	x509_namerTr r r!�responder_name�sz_OCSPResponse.responder_namecCsP|jj�d�}|jj�d�}|jj�|j||�}|j�|dk�|d|dfS)Nr'zX509_NAME **r(r)r<r*r+r,ZOCSP_resp_get0_idr@r/)rrUrWr2r r r!rS�s�z!_OCSPResponse._responder_key_namecCs|jj�|j�}t|j|�SrE)r<r,ZOCSP_resp_get0_produced_atr@r)r�produced_atr r r!rY�s�z_OCSPResponse.produced_atcCsH|jj�|j|jjj|jjj|jjj|jjj�}|j�|tk�t|SrE)r<r,�OCSP_single_get0_statusrAr*r.r/r)rrCr r r!�certificate_status�s�z _OCSPResponse.certificate_statuscCsr|jtjk	rdS|jj�d�}|jj�|j|jjj	||jjj	|jjj	�|j�
|d|jjj	k�t|j|d�S�NzASN1_GENERALIZEDTIME **r)r[r�REVOKEDr<r*r+r,rZrAr.r/r�rZ	asn1_timer r r!�revocation_time�s�z_OCSPResponse.revocation_timecCs||jtjk	rdS|jj�d�}|jj�|j||jjj	|jjj	|jjj	�|ddkrXdS|j�
|dtk�t|dSdS)Nzint *r���)r[rr]r<r*r+r,rZrAr.r/r)rZ
reason_ptrr r r!�revocation_reason�s �
�z_OCSPResponse.revocation_reasoncCsb|jj�d�}|jj�|j|jjj|jjj||jjj�|j�|d|jjjk�t|j|d�Sr\)	r<r*r+r,rZrAr.r/rr^r r r!�this_updates�z_OCSPResponse.this_updatecCsb|jj�d�}|jj�|j|jjj|jjj|jjj|�|d|jjjkrZt|j|d�SdSdSr\)r<r*r+r,rZrAr.rr^r r r!�next_updates�z_OCSPResponse.next_updatecCst|j|j�SrE�r3r<rBrJr r r!�issuer_key_hash)sz_OCSPResponse.issuer_key_hashcCst|j|j�SrE�r4r<rBrJr r r!�issuer_name_hash.sz_OCSPResponse.issuer_name_hashcCst|j|j�SrE�r:r<rBrJr r r!�hash_algorithm3sz_OCSPResponse.hash_algorithmcCst|j|j�SrE�r6r<rBrJr r r!�
serial_number8sz_OCSPResponse.serial_numbercCst�|j|j�SrE)r	�parser<r@rJr r r!�
extensions=sz_OCSPResponse.extensionscCsL|tjjk	rtd��|j��}|jj�||j�}|j�	|dk�|j�
|�S�Nz/The only allowed encoding value is Encoding.DERr)r�Encoding�DERrr<�_create_mem_bio_gcr,Zi2d_OCSP_RESPONSE_bior=r/�
_read_mem_bio�r�encodingZbior2r r r!�public_bytesBs�
�z_OCSPResponse.public_bytesN)�__name__�
__module__�__qualname__rDrZread_only_propertyr�propertyr%rGrHrIrNrRrVrXrSrYr[r_rarbrcrergrirk�cached_propertyrmrur r r r!r;Yst
		r;c@sZeZdZdd�Zedd��Zedd��Zedd��Zed	d
��Ze	j
dd��Zd
d�ZdS)�_OCSPRequestcCs~|j�|�dkrtd��||_||_|jj�|jd�|_|j�|j|jjj	k�|jj�
|j�|_|j�|j|jjj	k�dS)Nr(z+OCSP request contains more than one requestr)r,ZOCSP_request_onereq_count�NotImplementedErrorr<�
_ocsp_requestZOCSP_request_onereq_get0Z_requestr/r*r.ZOCSP_onereq_get0_idrB)rr0Zocsp_requestr r r!rDRs��z_OCSPRequest.__init__cCst|j|j�SrErdrJr r r!re`sz_OCSPRequest.issuer_key_hashcCst|j|j�SrErfrJr r r!rgdsz_OCSPRequest.issuer_name_hashcCst|j|j�SrErjrJr r r!rkhsz_OCSPRequest.serial_numbercCst|j|j�SrErhrJr r r!rilsz_OCSPRequest.hash_algorithmcCst�|j|j�SrE)r
rlr<r}rJr r r!rmpsz_OCSPRequest.extensionscCsL|tjjk	rtd��|j��}|jj�||j�}|j�	|dk�|j�
|�Srn)rrorprr<rqr,Zi2d_OCSP_REQUEST_bior}r/rrrsr r r!ruts�
z_OCSPRequest.public_bytesN)
rvrwrxrDryrergrkrirrzrmrur r r r!r{Ps




r{)(Z
__future__rrrr#ZcryptographyrrZcryptography.exceptionsrZ0cryptography.hazmat.backends.openssl.decode_asn1rr	r
rrr
rrZ)cryptography.hazmat.backends.openssl.x509rZcryptography.hazmat.primitivesrZcryptography.x509.ocsprrrrrrrr%r3r4r6r:Zregister_interface�objectr;r{r r r r!�<module>s"($w