HEX
Server: Apache/2.4.65 (Debian)
System: Linux kubikelcreative 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
User: www-data (33)
PHP: 8.4.13
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/cryptography/x509/__pycache__/ocsp.cpython-39.pyc
a

� `�3�@spddlmZmZmZddlZddlZddlmZddlZddl	m
Z
ddlmZddl
mZmZmZe��e��e��e��e��d�ZGdd	�d	e�ZGd
d�de�Zdd
�eD�ZejejejejejfZdd�ZGdd�de�Zdd
�eD�Zdd�Zdd�ZGdd�de �Z!Gdd�de �Z"Gdd�de �Z#e�$ej%�Gdd�de ��Z&e�$ej%�Gdd �d e ��Z'dS)!�)�absolute_import�division�print_functionN)�Enum)�x509)�hashes)�_EARLIEST_UTC_TIME�_convert_to_naive_utc_time�_reject_duplicate_extension)z
1.3.14.3.2.26z2.16.840.1.101.3.4.2.4z2.16.840.1.101.3.4.2.1z2.16.840.1.101.3.4.2.2z2.16.840.1.101.3.4.2.3c@seZdZdZdZdS)�OCSPResponderEncodingzBy HashzBy NameN)�__name__�
__module__�__qualname__�HASH�NAME�rr�8/usr/lib/python3/dist-packages/cryptography/x509/ocsp.pyrsrc@s$eZdZdZdZdZdZdZdZdS)�OCSPResponseStatusr�����N)	rr
r�
SUCCESSFULZMALFORMED_REQUEST�INTERNAL_ERRORZ	TRY_LATERZSIG_REQUIRED�UNAUTHORIZEDrrrrr$srcCsi|]}|j|�qSr��value��.0�xrrr�
<dictcomp>-�r!cCst|t�std��dS)Nz9Algorithm must be SHA1, SHA224, SHA256, SHA384, or SHA512)�
isinstance�_ALLOWED_HASHES�
ValueError)�	algorithmrrr�_verify_algorithm7s
�r'c@seZdZdZdZdZdS)�OCSPCertStatusrrrN)rr
rZGOOD�REVOKED�UNKNOWNrrrrr(>sr(cCsi|]}|j|�qSrrrrrrr!Dr"cCsddlm}|�|�S�Nr��backend)�,cryptography.hazmat.backends.openssl.backendr-�load_der_ocsp_request��datar-rrrr/Gsr/cCsddlm}|�|�Sr+)r.r-�load_der_ocsp_responser0rrrr2Msr2c@s2eZdZdgfdd�Zdd�Zdd�Zdd	�ZdS)
�OCSPRequestBuilderNcCs||_||_dS�N)�_request�_extensions)�self�request�
extensionsrrr�__init__TszOCSPRequestBuilder.__init__cCsL|jdurtd��t|�t|tj�r2t|tj�s:td��t|||f|j�S)Nz.Only one certificate can be added to a request�%cert and issuer must be a Certificate)	r5r%r'r#r�Certificate�	TypeErrorr3r6)r7�cert�issuerr&rrr�add_certificateXs
�z"OCSPRequestBuilder.add_certificatecCsDt|tj�std��t�|j||�}t||j�t|j	|j|g�S�Nz"extension must be an ExtensionType)
r#r�
ExtensionTyper=�	Extension�oidr
r6r3r5�r7�	extension�criticalrrr�
add_extensionds�z OCSPRequestBuilder.add_extensioncCs(ddlm}|jdurtd��|�|�S)Nrr,z*You must add a certificate before building)r.r-r5r%�create_ocsp_request)r7r-rrr�buildos
zOCSPRequestBuilder.build)rr
rr:r@rHrJrrrrr3Ssr3c@seZdZdd�ZdS)�_SingleResponsec		Cst|tj�rt|tj�s td��t|�t|tj�s<td��|durXt|tj�sXtd��||_||_||_||_	||_
t|t�s�td��|tjur�|dur�t
d��|dur�t
d��nHt|tj�s�td��t|�}|tkr�t
d��|dur�t|tj�s�td	��||_||_||_dS)
Nr;z%this_update must be a datetime objectz-next_update must be a datetime object or Nonez8cert_status must be an item from the OCSPCertStatus enumzBrevocation_time can only be provided if the certificate is revokedzDrevocation_reason can only be provided if the certificate is revokedz)revocation_time must be a datetime objectz7The revocation_time must be on or after 1950 January 1.zCrevocation_reason must be an item from the ReasonFlags enum or None)r#rr<r=r'�datetime�_cert�_issuer�
_algorithm�_this_update�_next_updater(r)r%r	r�ReasonFlags�_cert_status�_revocation_time�_revocation_reason)	r7r>r?r&�cert_status�this_update�next_update�revocation_time�revocation_reasonrrrr:ysZ�
�
�
���
��z_SingleResponse.__init__N)rr
rr:rrrrrKxsrKc@sReZdZdddgfdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Ze	dd��Z
dS)�OCSPResponseBuilderNcCs||_||_||_||_dSr4)�	_response�
_responder_id�_certsr6)r7�response�responder_id�certsr9rrrr:�szOCSPResponseBuilder.__init__c	
	Cs<|jdurtd��t||||||||�}	t|	|j|j|j�S)Nz#Only one response per OCSPResponse.)r\r%rKr[r]r^r6)
r7r>r?r&rVrWrXrYrZZ
singleresprrr�add_response�s$
�
�z OCSPResponseBuilder.add_responsecCsP|jdurtd��t|tj�s&td��t|t�s8td��t|j||f|j	|j
�S)Nz!responder_id can only be set oncez$responder_cert must be a Certificatez6encoding must be an element from OCSPResponderEncoding)r]r%r#rr<r=rr[r\r^r6)r7�encoding�responder_certrrrr`�s

��z OCSPResponseBuilder.responder_idcCs\|jdurtd��t|�}t|�dkr.td��tdd�|D��sHtd��t|j|j||j	�S)Nz!certificates may only be set oncerzcerts must not be an empty listcss|]}t|tj�VqdSr4)r#rr<rrrr�	<genexpr>�r"z3OCSPResponseBuilder.certificates.<locals>.<genexpr>z$certs must be a list of Certificates)
r^r%�list�len�allr=r[r\r]r6)r7rarrr�certificates�s
�z OCSPResponseBuilder.certificatescCsLt|tj�std��t�|j||�}t||j�t|j	|j
|j|j|g�SrA)r#rrBr=rCrDr
r6r[r\r]r^rErrrrHs
�z!OCSPResponseBuilder.add_extensioncCsBddlm}|jdurtd��|jdur0td��|�tj|||�S)Nrr,z&You must add a response before signingz*You must add a responder_id before signing)r.r-r\r%r]�create_ocsp_responserr)r7�private_keyr&r-rrr�signs


�zOCSPResponseBuilder.signcCs@ddlm}t|t�std��|tjur0td��|�|ddd�S)Nrr,z7response_status must be an item from OCSPResponseStatusz$response_status cannot be SUCCESSFUL)r.r-r#rr=rr%rj)�cls�response_statusr-rrr�build_unsuccessful s
�
z&OCSPResponseBuilder.build_unsuccessful)rr
rr:rbr`rirHrl�classmethodrorrrrr[�s�
r[c@s`eZdZejdd��Zejdd��Zejdd��Zejdd��Zej	d	d
��Z
ejdd��Zd
S)�OCSPRequestcCsdS�z3
        The hash of the issuer public key
        Nr�r7rrr�issuer_key_hash0szOCSPRequest.issuer_key_hashcCsdS�z-
        The hash of the issuer name
        Nrrsrrr�issuer_name_hash6szOCSPRequest.issuer_name_hashcCsdS�zK
        The hash algorithm used in the issuer name and key hashes
        Nrrsrrr�hash_algorithm<szOCSPRequest.hash_algorithmcCsdS�zM
        The serial number of the cert whose status is being checked
        Nrrsrrr�
serial_numberBszOCSPRequest.serial_numbercCsdS)z/
        Serializes the request to DER
        Nr)r7rcrrr�public_bytesHszOCSPRequest.public_bytescCsdS)zP
        The list of request extensions. Not single request extensions.
        Nrrsrrrr9NszOCSPRequest.extensionsN)rr
r�abc�abstractpropertyrtrvrxrz�abstractmethodr{r9rrrrrq.s




rqc@s$eZdZejdd��Zejdd��Zejdd��Zejdd��Zejd	d
��Z	ejdd��Z
ejd
d��Zejdd��Zejdd��Z
ejdd��Zejdd��Zejdd��Zejdd��Zejdd��Zejdd��Zejdd ��Zejd!d"��Zejd#d$��Zejd%d&��Zejd'd(��Zd)S)*�OCSPResponsecCsdS)zm
        The status of the response. This is a value from the OCSPResponseStatus
        enumeration
        NrrsrrrrnWszOCSPResponse.response_statuscCsdS)zA
        The ObjectIdentifier of the signature algorithm
        Nrrsrrr�signature_algorithm_oid^sz$OCSPResponse.signature_algorithm_oidcCsdS)zX
        Returns a HashAlgorithm corresponding to the type of the digest signed
        Nrrsrrr�signature_hash_algorithmdsz%OCSPResponse.signature_hash_algorithmcCsdS)z%
        The signature bytes
        Nrrsrrr�	signaturejszOCSPResponse.signaturecCsdS)z+
        The tbsResponseData bytes
        Nrrsrrr�tbs_response_bytespszOCSPResponse.tbs_response_bytescCsdS)z�
        A list of certificates used to help build a chain to verify the OCSP
        response. This situation occurs when the OCSP responder uses a delegate
        certificate.
        NrrsrrrrivszOCSPResponse.certificatescCsdS)z2
        The responder's key hash or None
        Nrrsrrr�responder_key_hash~szOCSPResponse.responder_key_hashcCsdS)z.
        The responder's Name or None
        Nrrsrrr�responder_name�szOCSPResponse.responder_namecCsdS)z4
        The time the response was produced
        Nrrsrrr�produced_at�szOCSPResponse.produced_atcCsdS)zY
        The status of the certificate (an element from the OCSPCertStatus enum)
        Nrrsrrr�certificate_status�szOCSPResponse.certificate_statuscCsdS)z^
        The date of when the certificate was revoked or None if not
        revoked.
        NrrsrrrrY�szOCSPResponse.revocation_timecCsdS)zi
        The reason the certificate was revoked or None if not specified or
        not revoked.
        NrrsrrrrZ�szOCSPResponse.revocation_reasoncCsdS)z�
        The most recent time at which the status being indicated is known by
        the responder to have been correct
        NrrsrrrrW�szOCSPResponse.this_updatecCsdS)zC
        The time when newer information will be available
        NrrsrrrrX�szOCSPResponse.next_updatecCsdSrrrrsrrrrt�szOCSPResponse.issuer_key_hashcCsdSrurrsrrrrv�szOCSPResponse.issuer_name_hashcCsdSrwrrsrrrrx�szOCSPResponse.hash_algorithmcCsdSryrrsrrrrz�szOCSPResponse.serial_numbercCsdS)zR
        The list of response extensions. Not single response extensions.
        Nrrsrrrr9�szOCSPResponse.extensionscCsdS)zR
        The list of single response extensions. Not response extensions.
        Nrrsrrr�single_extensions�szOCSPResponse.single_extensionsN)rr
rr|r}rnr�r�r�r�rir�r�r�r�rYrZrWrXrtrvrxrzr9r�rrrrrUsP


















r)(�
__future__rrrr|rL�enumr�six�cryptographyr�cryptography.hazmat.primitivesr�cryptography.x509.baserr	r
�SHA1�SHA224�SHA256�SHA384�SHA512�
_OIDS_TO_HASHrr�_RESPONSE_STATUS_TO_ENUMr$r'r(�_CERT_STATUS_TO_ENUMr/r2�objectr3rKr[�
add_metaclass�ABCMetarqrrrrr�<module>sD�		�	%Fp
&