+
    i1                       ^ RI Ht ^ RIt^ RIHt ^ RIHtHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt  ! R	 R
]P                   4      t ! R R]P                   4      t]P&                  ]P(                  ]P*                  ]P,                  ]P.                  3tR R lt ! R R]P                   4      t ! R R4      t]	P8                  t]	P:                  t]	P<                  t ! R R4      t ! R R4      t ]	PB                  t!]	PD                  t"R# )    )annotationsN)Iterable)utilsx509)ocsp)hashes) CertificateIssuerPrivateKeyTypes)_reject_duplicate_extensionc                      ] tR t^tRtRtRtR# )OCSPResponderEncodingzBy HashzBy Name N)__name__
__module____qualname____firstlineno__HASHNAME__static_attributes__r       ]/home/wkmabra/.openclaw/workspace/venv/lib/python3.14/site-packages/cryptography/x509/ocsp.pyr   r      s    DDr   r   c                  .    ] tR t^t^ t^t^t^t^t^t	Rt
R# )OCSPResponseStatusr   N)r   r   r   r   
SUCCESSFULMALFORMED_REQUESTINTERNAL_ERROR	TRY_LATERSIG_REQUIREDUNAUTHORIZEDr   r   r   r   r   r      s!    JNILLr   r   c                    V ^8  d   QhRRRR/# )   	algorithmhashes.HashAlgorithmreturnNoner   )formats   "r   __annotate__r&   *   s     
 
!5 
$ 
r   c                H    \        V \        4      '       g   \        R 4      hR# )z9Algorithm must be SHA1, SHA224, SHA256, SHA384, or SHA512N)
isinstance_ALLOWED_HASHES
ValueError)r!   s   &r   _verify_algorithmr+   *   s$    i11G
 	
 2r   c                  "    ] tR t^1t^ t^t^tRtR# )OCSPCertStatusr   N)r   r   r   r   GOODREVOKEDUNKNOWNr   r   r   r   r-   r-   1   s    DGGr   r-   c                  "    ] tR t^7tR R ltRtR# )_SingleResponsec               8    V ^8  d   QhRRRRRRRRR	R
RRRRRR/# )r    respz0tuple[x509.Certificate, x509.Certificate] | None	resp_hashztuple[bytes, bytes, int] | Noner!   r"   cert_statusr-   this_updatedatetime.datetimenext_updatedatetime.datetime | Nonerevocation_timerevocation_reasonx509.ReasonFlags | Noner   )r%   s   "r   r&   _SingleResponse.__annotate__8   sZ     64 64>64 364 (	64
 $64 '64 .64 264 364r   c	                	   \        V4       \        V\        P                  4      '       g   \        R 4      hVe,   \        V\        P                  4      '       g   \        R4      hWn        W n        W0n        WPn        W`n        \        V\        4      '       g   \        R4      hV\        P                  Jd    Ve   \        R4      hVe   \        R4      hMZ\        V\        P                  4      '       g   \        R4      hVe,   \        V\        P                  4      '       g   \        R4      hW@n        Wpn        Wn        R# )z%this_update must be a datetime objectNz-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 objectzCrevocation_reason must be an item from the ReasonFlags enum or None)r+   r(   datetime	TypeError_resp
_resp_hash
_algorithm_this_update_next_updater-   r/   r*   r   ReasonFlags_cert_status_revocation_time_revocation_reason)	selfr4   r5   r!   r6   r7   r9   r;   r<   s	   &&&&&&&&&r   __init___SingleResponse.__init__8   s;    	)$+x'8'899CDD":**,
 ,
 KLL
##''+~66J  n444* !  !, "  - ox/@/@AA KLL ,Z!4#3#36 6  # 
 ( /"3r   )rD   rH   rF   rB   rC   rJ   rI   rE   N)r   r   r   r   rL   r   r   r   r   r2   r2   7   s    64 64r   r2   c                  \    ] tR t^vtRR. 3R R lltR R ltR R ltR R	 ltR
 R ltRt	R# )OCSPRequestBuilderNc               (    V ^8  d   QhRRRRRRRR/# )	r    requestzFtuple[x509.Certificate, x509.Certificate, hashes.HashAlgorithm] | Nonerequest_hashz5tuple[bytes, bytes, int, hashes.HashAlgorithm] | None
extensions(list[x509.Extension[x509.ExtensionType]]r#   r$   r   )r%   s   "r   r&   OCSPRequestBuilder.__annotate__w   s4     & &&& =& 
&r   c                	*    Wn         W n        W0n        R # N)_request_request_hash_extensions)rK   rQ   rR   rS   s   &&&&r   rL   OCSPRequestBuilder.__init__w   s      )%r   c               (    V ^8  d   QhRRRRRRRR/# )r    certx509.Certificateissuerr!   r"   r#   rO   r   )r%   s   "r   r&   rU      s2     
 

 !
 (	

 

r   c                	B   V P                   f   V P                  e   \        R4      h\        V4       \	        V\
        P                  4      '       d!   \	        V\
        P                  4      '       g   \        R4      h\        WV3V P                  V P                  4      # )N.Only one certificate can be added to a request%cert and issuer must be a Certificate)
rX   rY   r*   r+   r(   r   CertificaterA   rO   rZ   )rK   r]   r_   r!   s   &&&&r   add_certificate"OCSPRequestBuilder.add_certificate   s     ==$(:(:(FMNN)$$ 0 011D$$:
 :
 CDD!9%t'9'94;K;K
 	
r   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r    issuer_name_hashbytesissuer_key_hashserial_numberintr!   r"   r#   rO   r   )r%   s   "r   r&   rU      s<     
 

 
 	

 (
 

r   c                	   V P                   f   V P                  e   \        R4      h\        V\        4      '       g   \        R4      h\        V4       \        P                  ! RV4       \        P                  ! RV4       VP                  \        V4      8w  g   VP                  \        V4      8w  d   \        R4      h\        V P                   WW43V P                  4      # )Nra    serial_number must be an integerrg   ri   `issuer_name_hash and issuer_key_hash must be the same length as the digest size of the algorithm)rX   rY   r*   r(   rk   rA   r+   r   _check_bytesdigest_sizelenrO   rZ   )rK   rg   ri   rj   r!   s   &&&&&r   add_certificate_by_hash*OCSPRequestBuilder.add_certificate_by_hash   s     ==$(:(:(FMNN--->??)$-/?@,o>  C%
 
""c/&::6 
 "MMI
 	
r   c               $    V ^8  d   QhRRRRRR/# )r    extvalx509.ExtensionTypecriticalboolr#   rO   r   )r%   s   "r   r&   rU      s$     
 
(
48
	
r   c                	"   \        V\        P                  4      '       g   \        R 4      h\        P                  ! VP
                  W!4      p\        W0P                  4       \        V P                  V P                  . V P                  OVN4      # z"extension must be an ExtensionType)r(   r   ExtensionTyperA   	Extensionoidr
   rZ   rO   rX   rY   rK   ru   rw   	extensions   &&& r   add_extension OCSPRequestBuilder.add_extension   st     &$"4"455@AANN6::x@	#I/?/?@!MM4--/M1A1A/M9/M
 	
r   c                   V ^8  d   QhRR/# )r    r#   OCSPRequestr   )r%   s   "r   r&   rU      s     . .{ .r   c                	|    V P                   f   V P                  f   \        R4      h\        P                  ! V 4      # )Nz*You must add a certificate before building)rX   rY   r*   r   create_ocsp_request)rK   s   &r   buildOCSPRequestBuilder.build   s4    == T%7%7%?IJJ''--r   )rZ   rX   rY   )
r   r   r   r   rL   rd   rr   r   r   r   r   r   r   rO   rO   v   s+     ?A&
&
<
. .r   rO   c                      ] tR t^tRRR. 3R R lltR R ltR R ltR R	 ltR
 R ltR R lt	R R lt
]R R l4       tRtR# )OCSPResponseBuilderNc               (    V ^8  d   QhRRRRRRRR/# )	r    responsez_SingleResponse | Noneresponder_idz5tuple[x509.Certificate, OCSPResponderEncoding] | Nonecertszlist[x509.Certificate] | NonerS   rT   r   )r%   s   "r   r&    OCSPResponseBuilder.__annotate__   s2     & &(&&
 -& =&r   c                	6    Wn         W n        W0n        W@n        R # rW   )	_response_responder_id_certsrZ   )rK   r   r   r   rS   s   &&&&&r   rL   OCSPResponseBuilder.__init__   s     ")%r   c               <    V ^8  d   QhRRRRRRRRRR	R
RRRRRRR/	# )r    r]   r^   r_   r!   r"   r6   r-   r7   r8   r9   r:   r;   r<   r=   r#   r   r   )r%   s   "r   r&   r      sd     "
 "
"
 !"
 (	"

 $"
 '"
 ."
 2"
 3"
 
"
r   c	           
     	H   V P                   e   \        R4      h\        V\        P                  4      '       d!   \        V\        P                  4      '       g   \        R4      h\        W3R VVVVVV4      p	\        V	V P                  V P                  V P                  4      # )N#Only one response per OCSPResponse.rb   )r   r*   r(   r   rc   rA   r2   r   r   r   rZ   )
rK   r]   r_   r!   r6   r7   r9   r;   r<   
singleresps
   &&&&&&&&& r   add_response OCSPResponseBuilder.add_response   s     >>%BCC$ 0 011D$$:
 :
 CDD$N	

 #KK	
 	
r   c               @    V ^8  d   QhRRRRRRRRRR	R
RRRRRRRRR/
# )r    rg   rh   ri   rj   rk   r!   r"   r6   r-   r7   r8   r9   r:   r;   r<   r=   r#   r   r   )r%   s   "r   r&   r      sn     ,
 ,
,
 ,
 	,

 (,
 $,
 ',
 .,
 2,
 3,
 
,
r   c
           
     	   V P                   e   \        R4      h\        V\        4      '       g   \	        R4      h\
        P                  ! RV4       \
        P                  ! RV4       \        V4       VP                  \        V4      8w  g   VP                  \        V4      8w  d   \        R4      h\        R WV3VVVVVV	4      p
\        V
V P                  V P                  V P                  4      # )Nr   rm   rg   ri   rn   )r   r*   r(   rk   rA   r   ro   r+   rp   rq   r2   r   r   r   rZ   )rK   rg   ri   rj   r!   r6   r7   r9   r;   r<   r   s   &&&&&&&&&& r   add_response_by_hash(OCSPResponseBuilder.add_response_by_hash   s     >>%BCC--->??-/?@,o>)$  C%
 
""c/&::6 
 %>	

 #KK	
 	
r   c               $    V ^8  d   QhRRRRRR/# )r    encodingr   responder_certr^   r#   r   r   )r%   s   "r   r&   r   *  s$     
 
-
?O
	
r   c                	&   V P                   e   \        R4      h\        V\        P                  4      '       g   \        R4      h\        V\        4      '       g   \        R4      h\        V P                  W!3V P                  V P                  4      # )Nz!responder_id can only be set oncez$responder_cert must be a Certificatez6encoding must be an element from OCSPResponderEncoding)r   r*   r(   r   rc   rA   r   r   r   r   rZ   )rK   r   r   s   &&&r   r    OCSPResponseBuilder.responder_id*  s     )@AA.$*:*:;;BCC($9::H  #NN&KK	
 	
r   c                    V ^8  d   QhRRRR/# )r    r   zIterable[x509.Certificate]r#   r   r   )r%   s   "r   r&   r   =  s     
 
/
	
r   c                	b   V P                   e   \        R4      h\        V4      p\        V4      ^ 8X  d   \        R4      h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \        R4      h\        V P                  V P                  VV P                  4      # )Nz!certificates may only be set oncezcerts must not be an empty listc              3  V   "   T F  p\        V\        P                  4      x  K!  	  R # 5irW   )r(   r   rc   ).0xs   & r   	<genexpr>3OCSPResponseBuilder.certificates.<locals>.<genexpr>E  s      BEq:a!1!122Es   ')FTz$certs must be a list of Certificates)
r   r*   listrq   allrA   r   r   r   rZ   )rK   r   s   &&r   certificates OCSPResponseBuilder.certificates=  s     ;;"@AAUu:?>??sBEBsssBEBBBBCC"NN	
 	
r   c               $    V ^8  d   QhRRRRRR/# )r    ru   rv   rw   rx   r#   r   r   )r%   s   "r   r&   r   N  s$     
 
(
48
	
r   c                	8   \        V\        P                  4      '       g   \        R 4      h\        P                  ! VP
                  W!4      p\        W0P                  4       \        V P                  V P                  V P                  . V P                  OVN4      # rz   )r(   r   r{   rA   r|   r}   r
   rZ   r   r   r   r   r~   s   &&& r   r   !OCSPResponseBuilder.add_extensionN  s|     &$"4"455@AANN6::x@	#I/?/?@"NNKK*d*	*	
 	
r   c               $    V ^8  d   QhRRRRRR/# )r    private_keyr	   r!   zhashes.HashAlgorithm | Noner#   OCSPResponser   )r%   s   "r   r&   r   ^  s(     
 
5
 /
 
	
r   c                	    V P                   f   \        R4      hV P                  f   \        R4      h\        P                  ! \
        P                  WV4      # )Nz&You must add a response before signingz*You must add a responder_id before signing)r   r*   r   r   create_ocsp_responser   r   )rK   r   r!   s   &&&r   signOCSPResponseBuilder.sign^  sR    
 >>!EFF%IJJ(())4i
 	
r   c                    V ^8  d   QhRRRR/# )r    response_statusr   r#   r   r   )r%   s   "r   r&   r   m  s      
L 
L0
L	
Lr   c                	    \        V\        4      '       g   \        R 4      hV\        P                  J d   \	        R4      h\
        P                  ! VRRR4      # )z7response_status must be an item from OCSPResponseStatusz$response_status cannot be SUCCESSFULN)r(   r   rA   r   r*   r   r   )clsr   s   &&r   build_unsuccessful&OCSPResponseBuilder.build_unsuccessfull  sV     /+=>>I  0;;;CDD(($dKKr   )r   rZ   r   r   )r   r   r   r   rL   r   r   r   r   r   r   classmethodr   r   r   r   r   r   r      sK     ,0/3?A&"
H,
\
&
"
 
 
L 
Lr   r   )#
__future__r   r@   collections.abcr   cryptographyr   r   "cryptography.hazmat.bindings._rustr   cryptography.hazmat.primitivesr   /cryptography.hazmat.primitives.asymmetric.typesr	   cryptography.x509.baser
   Enumr   r   SHA1SHA224SHA256SHA384SHA512r)   r+   r-   r2   r   r   OCSPSingleResponserO   r   load_der_ocsp_requestload_der_ocsp_responser   r   r   <module>r      s   
 #  $ $ 3 1 ?EJJ 
  KK
MM
MM
MM
MM
UZZ 74 74t   ,, Q. Q.hmL mL` 22 44 r   