
    Wwg                        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	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j0                         Zd!ed"efd#Zd$ Zd% Zy)'    )IterableOptionalTypeVarUnionN)	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                 ^   	 |Nt        ||f      rt        j                  d      | t        j                  d      	 | j                  |d      }n,|s|rt        ||||      }n| 	 | j                  d      }ni }|||d
<   n|j                  d
d       |rd|d<   |S # t        $ r7}d| d}	t        j                  |	|       t        j                  |	      d }~ww xY w# t        $ r3}d	}	t        j                  |	|       t        j                  |	      d }~ww xY w# t        j                  $ r  t        $ r3}d}	t        j                  |	|       t        j                  |	      d }~wt        $ r3}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
             I/var/www/horilla/myenv/lib/python3.12/site-packages/pyhanko/cli/_trust.pybuild_vc_kwargsr#      s   <()E;'(**( 
 !**+FGG0#::& ;  k3+'$7	F #0#::4:H F%'5F#$.5 ,0F()I & 0  23 4++ 
 S1-**3//0( & 0BS1-**3//0"   (;S1%""3'' (JS1%""3''(sj   ;D# B! D# )C$ ;%D# !	C!*2CC!!D# $	D -.DD  D# #F,?.E--F,9.F''F,ctxc                 X    | j                   j                  }|y |j                  |      S )N)name)objconfigget_signer_key_usages)r$   r   r   s      r"   _get_key_usage_settingsr*   T   s/    &)ggnnJ ++1C+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                   j                  t               | S N)paramsextendTRUST_OPTIONS)r5   s    r"   trust_optionsr<      s    HHOOM"Hr+   c                 Z    |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_vcrD      sE    ""M
 	
 	#+I r+   c                     | sy 	 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_certsrI      sS    *5122Z  ""/w7
	s    AAAr8   )typingr   r   r   r   r   pyhanko.cli.configr   pyhanko.cli.utilsr   r	   pyhanko.config.errorsr
   pyhanko.config.trustr   pyhanko.keysr   strboolr#   Contextr*   Optionr;   Commandr3   r<   rD   rI    r+   r"   <module>rV      sk   5 5  ( 3 4 ? / &*E(#E( E( ##$E( 	E(
 x}c)*E( E( TNE(P	E 	EC 	E ELL!1	 ELL2 ELLC ELL2/B T'R B 
r+   