
     h                        d dl mZmZmZmZ d dlZd dl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	ee	         d
ee         deee         ef         dedeee         ef         dedee         fdZdej        d
efdZ ej        ddde           ej        dddde           ej        dddeddd           ej        dddde          gZ ed ej        !          Zd"ed#efd$Zd% Zd& ZdS )(    )IterableOptionalTypeVarUnionN)ValidationContext)	CLIConfig)loggerreadable_file)ConfigurationError)init_validation_context_kwargs)load_certs_from_pemder
cli_configvalidation_contexttrusttrust_replaceother_certsretroactive_revinfoallow_fetchingc                 r   	 |t          ||f          rt          j        d          | t          j        d          	 |                     |d          }n# t          $ r5}d| d}	t          j        |	|           t          j        |	          d }~ww xY w|s|rt          ||||          }nZ| V	 |                     d          }n@# t          $ r1}d	}	t          j        |	|           t          j        |	          d }~ww xY wi }|||d
<   n|                    d
d           |rd|d<   |S # t          j        $ r  t          $ r1}d}	t          j        |	|           t          j        |	          d }~wt          $ r1}d}	t          j        |	|           t          j        |	          d }~ww xY w)NzC--validation-context is incompatible with --trust and --other-certszNo config file specified.T)as_dictzAConfiguration problem. Are you sure that the validation context 'z0' is properly defined in the configuration file?)exc_info)r   r   r   r   z*Failed to load default validation context.r   r   z+I/O problem while reading validation configz:Generic processing problem while reading validation config)anyclickClickExceptionget_validation_contextr   r	   errorr   
setdefaultIOError	Exception)
r   r   r   r   r   r   r   resultemsgs
             N/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/pyhanko/cli/_trust.pybuild_vc_kwargsr$      sr   <()E;'(( *(  
 !*+FGGG0#::& ;   & 0 0 0+ 2+ + + 
 S1----*3///0  	k 	3+'$7	  FF #0#::4:HH% 0 0 0BS1----*3///0
 F%'5F#$$.555  	1,0F()    ( ( (;S1%%%%"3''' ( ( (JS1%%%%"3'''(sk   =D3  A D3 
B"0BBD3 5C D3 
D,DD+D3 3F6,E88F6,F11F6ctxc                 N    | j         j        }|d S |                    |          S )N)name)objconfigget_signer_key_usages)r%   r   r   s      r#   _get_key_usage_settingsr+   U   s0    &)gnJt ++1C+DDD    )z--validation-contextz"use validation context from configF)helprequiredtype)z--trustz#list trust roots (multiple allowed)T)r-   r.   multipler/   )z--trust-replacez4listed trust roots supersede OS-provided trust store)r-   r.   r/   is_flagdefaultshow_default)z--other-certsz#other certs relevant for validationFC)boundfreturnc                 D    | j                             t                     | S N)paramsextendTRUST_OPTIONS)r6   s    r#   trust_optionsr=      s    HOOM"""Hr,   c                 X    |r|rt          j        d          |rd}n|rd}nd}|| d<   | S )Nz<--soft-revocation-check is incompatible with --force-revinforequirez	soft-failz	hard-failrevocation_mode)r   r   )	vc_kwargssoft_revocation_checkforce_revinforev_modes       r#   _prepare_vcrE      s_     
 
"M
 
 	
  	 #+I r,   c                     | sd S 	 t          t          |                     S # t          t          f$ r}t	          j        d|            |d }~ww xY w)Nz!Could not load certificates from )listr   r   
ValueErrorr   r   )filesr!   s     r#   
grab_certsrJ      sr     t*511222Z    "777
 
	s   " AAAr9   )typingr   r   r   r   r   pyhanko_certvalidatorr   pyhanko.cli.configr   pyhanko.cli.utilsr	   r
   pyhanko.config.errorsr   pyhanko.config.trustr   pyhanko.keysr   strboolr$   Contextr+   Optionr<   Commandr4   r=   rE   rJ    r,   r#   <module>rX      sm   5 5 5 5 5 5 5 5 5 5 5 5  3 3 3 3 3 3 ( ( ( ( ( ( 3 3 3 3 3 3 3 3 4 4 4 4 4 4 ? ? ? ? ? ? / / / / / / &*E( E(#E( E( ##$E( 	E(
 x}c)*E( E( TNE( E( E( E(P	E 	EC 	E 	E 	E 	E EL!1	   EL2   ELC   EL2  /B WT'''R B    
      r,   