U
    Nf	                  	   @   s   U d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ ddgZdd	d
eee ef eeee ef eeeed	f eeef dddZedddZeddZeed< d	S )    )	timedelta)AnyDictIterableUnion)api)ConfigurationError)load_certs_from_pemderinit_validation_context_kwargsparse_trust_configFN)retroactive_revinfotime_tolerance)trusttrust_replaceother_certsr   r   returnc                 C   s   t |ts6|d krt}nt |tr.t|d}ntdd|i}|rJd|d< | rt | tr^| f} tt| }|rx||d< n||d< |rt |tr|f}tt||d< |S )	Nsecondsz5time-tolerance parameter must be specified in secondsr   Tr   Ztrust_rootsZextra_trust_rootsr   )
isinstancer   DEFAULT_TIME_TOLERANCEintr   strlistr	   )r   r   r   r   r   Z	vc_kwargsZtrust_certs r   8/tmp/pip-unpacked-wheel-fbovo6ns/pyhanko/config/trust.pyr
      s.    




)r   c              	   C   sD   t dd|  t| d| dd| d| d|| d|d	S )
NZValidationContext)r   trust-replaceother-certstime-toleranceretroactive-revinfozsigner-key-usagezsigner-extd-key-usagezsigner-key-usage-policyr   r   Fr   r   r   )r   r   r   r   r   )r   Zcheck_config_keysr
   get)Ztrust_configr   r   r   r   r   r   /   s    


    r   r   )datetimer   typingr   r   r   r   Zpyhanko.configr   Zpyhanko.config.errorsr   Zpyhanko.keysr	   __all__r   boolr   r
   dictr   r   __annotations__r   r   r   r   <module>   s&    
&