+
    i1  c                  s   ^ 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# )i    )annotationsN)Iterable)utilsx509)ocsp)hashes) CertificateIssuerPrivateKeyTypes)_reject_duplicate_extensionc                  s    ] tR t^tRtRtRtR# )OCSPResponderEncodingzBy HashzBy Name N)__name__
__module____qualname____firstlineno__ZHASHZNAME__static_attributes__r	       =/usr/lib64/python3.14/site-packages/cryptography/x509/ocsp.pyr   r      s    DDr   r   c                  s.    ] tR t^t^ t^t^t^t^t^t	Rt
R# )OCSPResponseStatusr	   N)r
   r   r   r   
SUCCESSFULZMALFORMED_REQUESTZINTERNAL_ERRORZ	TRY_LATERZSIG_REQUIREDZ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	   Zformat   "r   __annotate__r   *   s     
 
!5 
$ 
r   c                sH    \        V \        4      '       g   \        R 4      hR# )z9Algorithm must be SHA1, SHA224, SHA256, SHA384, or SHA512N)
isinstance_ALLOWED_HASHES
ValueError)r      &r   _verify_algorithmr    *   s$    i11G
 	
 2r   c                  s"    ] tR t^1t^ t^t^tRtR# )OCSPCertStatusr	   N)r
   r   r   r   ZGOODREVOKEDZUNKNOWNr   r	   r   r   r!   r!   1   s    DGGr   r!   c                  s"    ] tR t^7tR R ltRtR# )_SingleResponsec               s8    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   r   r   r   Z_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	                	s   \        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   ZReasonFlags_cert_status_revocation_time_revocation_reason)	selfr$   r%   r   r&   r'   r)   r+   r,   s	   &&&&&&&&&r   __init__Z_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   )r2   r5   r4   r0   r1   r7   r6   r3   N)r
   r   r   r   r9   r   r	   r   r   r#   r#   7   s    64 64r   r#   c                  s\    ] 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   r   r   r   OCSPRequestBuilder.__annotate__w   s4     & &&& =& 
&r   c                	s*    Wn         W n        W0n        R # N)_request_request_hash_extensions)r8   r<   r=   r>      &&&&r   r9   ZOCSPRequestBuilder.__init__w   s      )%r   c               s(    V ^8  d   QhRRRRRRRR/# )r   certx509.Certificateissuerr   r   r   r:   r	   r   r   r   r   r@      s2     
 

 !
 (	

 

r   c                	sB   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)
rB   rC   r   r    r   r   Certificater/   r:   rD   )r8   rF   rH   r   rE   r   add_certificateZ"OCSPRequestBuilder.add_certificate   s     ==$(:(:(FMNN)$$ 0 011D$$:
 :
 CDD!9%t'9'94;K;K
 	
r   c          
     s,    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   r:   r	   r   r   r   r   r@      s<     
 

 
 	

 (
 

r   c                	s   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      # )NrI    serial_number must be an integerrM   rO   `issuer_name_hash and issuer_key_hash must be the same length as the digest size of the algorithm)rB   rC   r   r   rQ   r/   r    r   _check_bytesdigest_sizelenr:   rD   )r8   rM   rO   rP   r      &&&&&r   add_certificate_by_hashZ*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   r:   r	   r   r   r   r   r@      s$     
 
(
48
	
r   c                	s"   \        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   ExtensionTyper/   	Extensionoidr   rD   r:   rB   rC   r8   rZ   r\   Z	extension   &&& r   add_extensionZ OCSPRequestBuilder.add_extension   st     &$"4"455@AANN6::x@	#I/?/?@!MM4--/M1A1A/M9/M
 	
r   c               s    V ^8  d   QhRR/# )r   r   OCSPRequestr	   r   r   r   r   r@      s     . .{ .r   c                	s|    V P                   f   V P                  f   \        R4      h\        P                  ! V 4      # )Nz*You must add a certificate before building)rB   rC   r   r   Zcreate_ocsp_request)r8   r   r   buildZOCSPRequestBuilder.build   s4    == T%7%7%?IJJ''--r   )rD   rB   rC   )
r
   r   r   r   r9   rL   rX   rd   rf   r   r	   r   r   r:   r:   v   s+     ?A&
&
<
. .r   r:   c                  s    ] 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               r;   )	r   responsez_SingleResponse | Noneresponder_idz5tuple[x509.Certificate, OCSPResponderEncoding] | Nonecertszlist[x509.Certificate] | Noner>   r?   r	   r   r   r   r    OCSPResponseBuilder.__annotate__   s2     & &(&&
 -& =&r   c                	s6    Wn         W n        W0n        W@n        R # rA   )	_response_responder_id_certsrD   )r8   rh   ri   rj   r>   rW   r   r9   ZOCSPResponseBuilder.__init__   s     ")%r   c               s<    V ^8  d   QhRRRRRRRRRR	R
RRRRRRR/	# )r   rF   rG   rH   r   r   r&   r!   r'   r(   r)   r*   r+   r,   r-   r   rg   r	   r   r   r   r   rk      sd     "
 "
"
 !"
 (	"

 $"
 '"
 ."
 2"
 3"
 
"
r   c	           
     	sH   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.rJ   )rl   r   r   r   rK   r/   r#   rg   rm   rn   rD   )
r8   rF   rH   r   r&   r'   r)   r+   r,   
singleresps
   &&&&&&&&& r   add_responseZ OCSPResponseBuilder.add_response   s     >>%BCC$ 0 011D$$:
 :
 CDD$N	

 #KK	
 	
r   c               s@    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   rM   rN   rO   rP   rQ   r   r   r&   r!   r'   r(   r)   r*   r+   r,   r-   r   rg   r	   r   r   r   r   rk      sn     ,
 ,
,
 ,
 	,

 (,
 $,
 ',
 .,
 2,
 3,
 
,
r   c
           
     	s   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      # )Nro   rR   rM   rO   rS   )rl   r   r   rQ   r/   r   rT   r    rU   rV   r#   rg   rm   rn   rD   )r8   rM   rO   rP   r   r&   r'   r)   r+   r,   rp   s   &&&&&&&&&& r   add_response_by_hashZ(OCSPResponseBuilder.add_response_by_hash   s     >>%BCC--->??-/?@,o>)$  C%
 
""c/&::6 
 %>	

 #KK	
 	
r   c               rY   )r   encodingr   responder_certrG   r   rg   r	   r   r   r   r   rk   *  s$     
 
-
?O
	
r   c                	s&   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)rm   r   r   r   rK   r/   r   rg   rl   rn   rD   )r8   rs   rt      &&&r   ri   Z OCSPResponseBuilder.responder_id*  s     )@AA.$*:*:;;BCC($9::H  #NN&KK	
 	
r   c               r   )r   rj   zIterable[x509.Certificate]r   rg   r	   r   r   r   r   rk   =  s     
 
/
	
r   c                	sb   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  sV   "   T F  p\        V\        P                  4      x  K!  	  R # 5irA   )r   r   rK   )Z.0Zxs   & r   Z	<genexpr>Z3OCSPResponseBuilder.certificates.<locals>.<genexpr>E  s      BEq:a!1!122Es   ')FTz$certs must be a list of Certificates)
rn   r   ZlistrV   Zallr/   rg   rl   rm   rD   )r8   rj      &&r   certificatesZ OCSPResponseBuilder.certificates=  s     ;;"@AAUu:?>??sBEBsssBEBBBBCC"NN	
 	
r   c               rY   )r   rZ   r[   r\   r]   r   rg   r	   r   r   r   r   rk   N  s$     
 
(
48
	
r   c                	s8   \        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      # r^   )r   r   r_   r/   r`   ra   r   rD   rg   rl   rm   rn   rb   rc   r   rd   Z!OCSPResponseBuilder.add_extensionN  s|     &$"4"455@AANN6::x@	#I/?/?@"NNKK*d*	*	
 	
r   c               rY   )r   private_keyr   r   zhashes.HashAlgorithm | Noner   OCSPResponser	   r   r   r   r   rk   ^  s(     
 
5
 /
 
	
r   c                	s    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)rl   r   rm   r   create_ocsp_responser   r   )r8   rx   r   ru   r   signZOCSPResponseBuilder.sign^  sR    
 >>!EFF%IJJ(())4i
 	
r   c               r   )r   response_statusr   r   ry   r	   r   r   r   r   rk   m  s      
L 
L0
L	
Lr   c                	s    \        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   r/   r   r   r   rz   )Zclsr|   rv   r   build_unsuccessfulZ&OCSPResponseBuilder.build_unsuccessfull  sV     /+=>>I  0;;;CDD(($dKKr   )rn   rD   rm   rl   )r
   r   r   r   r9   rq   rr   ri   rw   rd   r{   Zclassmethodr}   r   r	   r   r   rg   rg      sK     ,0/3?A&"
H,
\
&
"
 
 
L 
Lr   rg   )#Z
__future__r    r.   Zcollections.abcr   Zcryptographyr   r   Z"cryptography.hazmat.bindings._rustr   Zcryptography.hazmat.primitivesr   Z/cryptography.hazmat.primitives.asymmetric.typesr   Zcryptography.x509.baser   ZEnumr   r   ZSHA1ZSHA224ZSHA256ZSHA384ZSHA512r   r    r!   r#   re   ry   ZOCSPSingleResponser:   rg   Zload_der_ocsp_requestZ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   