
     h                        d dl Z d dlmZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZ d dl
mZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZmZ d dlmZmZ d dlmZ d dlm Z  g dZ! G d de j"                  Z# ed           G d d                      Z$ ed           G d d                      Z% ed           G d d                      Z& ed           G d d                      Z' ed           G d d                      Z(de)d e#d!ed"ee         fd#Z*	 	 	 d)d$e'd%ee         d&ee)         d'ee         d"ef
d(ZdS )*    N)	dataclassfield)datetime)ListOptional)x509)CertValidationPolicySpecValidationDataHandlers)"bootstrap_validation_data_handlers)FetcherBackend)RequestsFetcherBackend)
POEManager)ValidationTimingInfo)CRLContainerOCSPContainer)DEFAULT_DIFF_POLICY
DiffPolicy)KeyUsageConstraints)CMSAlgorithmUsagePolicy)SignatureValidationSpecPdfSignatureValidationSpecRevinfoOnlineFetchingRuleLocalKnowledgeRevocationInfoGatheringSpecKnownPOEr   r   c                   l    e Zd Z ej                    Z	  ej                    Z	  ej                    ZdS )r   N)__name__
__module____qualname__enumautoALWAYS_FETCHNO_HISTORICAL_FETCH
LOCAL_ONLY     _/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/pyhanko/sign/validation/policy_decl.pyr   r   &   sJ        49;;L $$)++ J r&   r   T)frozenc                   J    e Zd ZU ej        Zeed<    ee          Z	e
ed<   dS )r   online_fetching_ruledefault_factoryfetcher_backendN)r   r   r   r   r#   r*   __annotations__r   r   r-   r   r%   r&   r'   r   r   :   sa          	"5 3    ',e.' ' 'O^     r&   r   c                   $    e Zd ZU eed<   eed<   dS )r   digestpoe_timeN)r   r   r   bytesr.   r   r%   r&   r'   r   r   D   s'         MMMr&   r   c                       e Zd ZU  ee          Zee         ed<    ee          Z	ee
         ed<    ee          Zeej                 ed<    ee          Zee         ed<   defdZdS )	r   r+   known_ocsps
known_crlsknown_certs
known_poespoe_managerc                 \    | j         D ]#}|                    |j        |j                   $d S )N)dt)r7   register_by_digestr0   r1   )selfr8   poes      r'   add_to_poe_managerz!LocalKnowledge.add_to_poe_managerQ   sA    ? 	H 	HC**3:#,*GGGG	H 	Hr&   N)r   r   r   r   listr4   r   r   r.   r5   r   r6   r   Certificater7   r   r   r>   r%   r&   r'   r   r   J   s         ',uT'B'B'BKm$BBB%*U4%@%@%@J\"@@@*/%*E*E*EKd&'EEE!&t!<!<!<JX<<<Hj H H H H H Hr&   r   c                       e Zd ZU eed<    e            Zeed<   dZee         ed<   dZ	ee         ed<    e
            Ze
ed<    e            Zeed<   dZee         ed<   dS )	r   cert_validation_policyrevinfo_gathering_policyNts_cert_validation_policyac_validation_policylocal_knowledgekey_usage_settingssignature_algorithm_policy)r   r   r   r	   r.   r   rC   rD   r   rE   r   rF   r   rG   rH   r   r%   r&   r'   r   r   V   s         4444##%% 9    EIx(@AHHH?C(#;<CCC&4n&6&6O^666.A.A.C.C+CCCDH)@ AHHHHHr&   r   c                   4    e Zd ZU eed<   eZee         ed<   dS )r   signature_validation_specdiff_policyN)	r   r   r   r   r.   r   rK   r   r   r%   r&   r'   r   r   c   s3         6666(;K*%;;;;;r&   r   histrulebackendreturnc                 R    |t           j        k    rd S |t           j        k    r| rd S |S )N)r   r$   r#   rL   rM   rN   s      r'   _backend_if_necessaryrR   i   s6     (333t	*>	>	>4	>tr&   spectiming_infois_historicalpoe_manager_overridec                     |||j         nd}n|}| j        }t          ||j        |j                  }| j        }t          ||j        |j        |j	        |          }|S )NFrQ   )fetcherscrlsocspscertsr8   )
point_in_time_validationrC   rR   r*   r-   rF   !_certvalidator_bootstrap_handlersr5   r4   r6   )	rS   rT   rU   rV   rL   revinfo_policyr-   	knowledgehandlerss	            r'   r   r   t   s      & 00 	 2N+0.  O $I0 !##(  H Or&   )NNN)+r    dataclassesr   r   r   typingr   r   
asn1cryptor   pyhanko_certvalidator.contextr	   r
   r   r]   pyhanko_certvalidator.fetchersr   0pyhanko_certvalidator.fetchers.requests_fetchersr   pyhanko_certvalidator.ltv.poer   pyhanko_certvalidator.ltv.typesr   &pyhanko_certvalidator.revinfo.archivalr   r   pyhanko.sign.diff_analysisr   r   pyhanko.sign.validationr   pyhanko.sign.validation.utilsr   __all__Enumr   r   r   r   r   r   boolrR   r%   r&   r'   <module>rp      s    ( ( ( ( ( ( ( (       ! ! ! ! ! ! ! !                   : 9 9 9 9 9      5 4 4 4 4 4 @ @ @ @ @ @ N N N N N N N N F F F F F F F F 7 7 7 7 7 7 A A A A A A	 	 	    	   ( $        $       
 $H H H H H H H H $	I 	I 	I 	I 	I 	I 	I 	I $< < < < < < < <

/:Hn    37$(15	 
!./ D> #:.	
      r&   