U
    <ßôgÞ	  ã                	   @   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< | r€t | tƒr^| f} tt| ƒƒ}|rx||d< n||d< |r¤t |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-w101_d3s/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&    ú
ù&þ