Ë
    ¢ª÷gK'  ã                   óH  — U d dl mZ d dlmZ d dlmZ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mZ d d	lmZ d d
lmZ d dlmZmZmZ e G d„ d«      «       Z ed¬«       G d„ d«      «       ZdxZZ eedœZ!ee"ee   f   e#d<   defd„Z$de%de%fd„Z&de%de%fd„Z'y)é    )Ú	dataclass)Ú	timedelta)ÚDictÚListÚOptionalÚTypeÚUnionN)ÚValidationContext)ÚConfigurationError)Ú	LogConfigÚparse_logging_config)ÚDEFAULT_TIME_TOLERANCEÚparse_trust_config)ÚDEFAULT_SIGNING_STAMP_STYLE)ÚKeyUsageConstraints)ÚBaseStampStyleÚQRStampStyleÚTextStampStylec                   óÚ   — e Zd ZU dZeeef   ed<   	 eeef   ed<   	 eed<   	 eed<   	 eed<   	 e	ed<   	 eed<   	 dd
„Z
	 ddee   de	fd„Z	 ddee   defd„Z	 ddee   deeef   fd„Zy	)Ú	CLIConfigz%
    CLI configuration settings.
    Úvalidation_contextsÚstamp_stylesÚdefault_validation_contextÚdefault_stamp_styleÚtime_toleranceÚretroactive_revinfoÚ
raw_configNc                 óz   — |xs | j                   }	 | j                  |   S # t        $ r t        d|› d«      ‚w xY w)Nz&There is no validation context named 'ú'.)r   r   ÚKeyErrorr   )ÚselfÚnames     úJ/var/www/html/Beni/venv/lib/python3.12/site-packages/pyhanko/cli/config.pyÚ_get_validation_settings_rawz&CLIConfig._get_validation_settings_raw\   sP   € ØÒ6t×6Ñ6ˆð	Ø×+Ñ+¨DÑ1Ð1øÜò 	Ü$Ø8¸¸¸bÐAóð ð	ús   ’! ¡:r"   Úas_dictc                 ó„   — | j                  |«      }t        || j                  | j                  «      }|r|S t	        di |¤ŽS )aÊ  
        Retrieve a validation context by name.

        :param name:
            The name of the validation context. If not supplied, the value
            of :attr:`default_validation_context` will be used.
        :param as_dict:
            If ``True`` return the settings as a keyword argument dictionary.
            If ``False`` (the default), return a
            :class:`~pyhanko_certvalidator.context.ValidationContext`
            object.
        © )r$   r   r   r   r
   )r!   r"   r%   Ú	vc_configÚ	vc_kwargss        r#   Úget_validation_contextz CLIConfig.get_validation_contexte   sI   € ð ×5Ñ5°dÓ;ˆ	Ü&Øt×*Ñ*¨D×,DÑ,Dó
ˆ	ñ $ˆyÐGÔ):Ñ)G¸YÑ)GÐGó    Úreturnc                 ó*  — | j                  |«      }	 t        |d   «      }	 |d   }|j                  d|«       	 |d   }|j                  d|«       t	        j
                  |«      S # t        $ r i }Y ŒRw xY w# t        $ r Y ŒIw xY w# t        $ r Y Œ@w xY w)a:  
        Get a set of key usage constraints for a given validation context.

        :param name:
            The name of the validation context. If not supplied, the value
            of :attr:`default_validation_context` will be used.
        :return:
            A :class:`.KeyUsageConstraints` object.
        zsigner-key-usage-policyzsigner-key-usagez	key-usagezsigner-extd-key-usagezextd-key-usage)r$   Údictr    Ú
setdefaultr   Úfrom_config)r!   r"   r(   Úpolicy_settingsÚkey_usage_stringss        r#   Úget_signer_key_usageszCLIConfig.get_signer_key_usagesz   s½   € ð ×5Ñ5°dÓ;ˆ	ð	!Ü" 9Ð-FÑ#GÓHˆOð	Ø )Ð*<Ñ =ÐØ×&Ñ& {Ð4EÔFð	Ø )Ð*AÑ BÐØ×&Ñ&Ð'7Ð9JÔKô #×.Ñ.¨Ó?Ð?øô' ò 	!Ø ŠOð	!ûô ò 	Ùð	ûô ò 	Ùð	ús3   “A& ¢A7 ºB Á&A4Á3A4Á7	BÂBÂ	BÂBc                 ó6  — |xs | j                   }| j                  j                  |d«      }|€t        d|› d«      ‚	 t	        |«      }t        |j                  dd«         }|j                  |«      S # t
        t        f$ r}t        d|› d«      |‚d}~ww xY w)a  
        Retrieve a stamp style by name.

        :param name:
            The name of the style. If not supplied, the value
            of :attr:`default_stamp_style` will be used.
        :return:
            A :class:`TextStampStyle` or `QRStampStyle` object.
        NzThere is no stamp style named 'r   z%Could not process stamp style named 'Ú'ÚtypeÚtext)
r   r   Úgetr   r.   Ú	TypeErrorÚ
ValueErrorÚSTAMP_STYLE_TYPESÚpopr0   )r!   r"   ÚconfigÚstyle_configÚeÚclss         r#   Úget_stamp_stylezCLIConfig.get_stamp_styleŸ   s¯   € ð Ò/t×/Ñ/ˆØ×"Ñ"×&Ñ& t¨TÓ2ˆØˆ>Ü$Ð'FÀtÀfÈBÐ%OÓPÐPð	Ü ›<ˆLô
   × 0Ñ 0°¸Ó @ÑAˆØ‰˜|Ó,Ð,øô œ:Ð&ò 	Ü$Ø7¸°v¸QÐ?óàðûð	ús   ¿A4 Á4BÂBÂB)N)NF)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr.   Ú__annotations__r   Úboolr$   r   r*   r   r3   r	   r   r   rA   r'   r+   r#   r   r      sã   … ñð ˜c 4˜i™Ó(ðð6 s˜Dy‘/Ó!ð	ð !$Ó#ðð
 Óðð
 Óðð Óðð
 Óðóð ;@ñHØ˜S‘MðHØ37óHð, %)ñ#@Ø˜S‘Mð#@à	ó#@ðL %)ñ-Ø˜S‘Mð-à	ˆ~˜|Ð+Ñ	,ô-r+   r   T)Úfrozenc                   óJ   — e Zd ZU dZeed<   	 eee   e	f   ed<   	 e
e   ed<   y)ÚCLIRootConfigzs
    Config settings that are only relevant tothe CLI root and are not exposed
    to subcommands and plugins.
    r=   Ú
log_configÚplugin_endpointsN)rB   rC   rD   rE   r   rG   r   r   rF   r   r   r'   r+   r#   rK   rK   ¹   s@   … ñð
 Óðð X˜c‘] IÐ-Ñ.Ó.ðð ˜3‘iÓðr+   rK   Údefault)Úqrr7   r;   r,   c                 ó   — t        j                  | «      xs i }t        di t        |«      ¤dt	        di t        |«      ¤d|i¤Ži¤ŽS )Nr=   r   r'   )ÚyamlÚ	safe_loadrK   Úprocess_root_config_settingsr   Úprocess_config_dict)Úyaml_strÚconfig_dicts     r#   Úparse_cli_configrW   í   sQ   € Ü—.‘. Ó*Ò0¨b€KÜñ Ü
& {Ó
3ñäñ 
Ü! +Ó.ñ
Ø;Fò
òð r+   rV   c                 óz   — | j                  dg «      }| j                  di «      }t        |«      }t        ||¬«      S )NÚpluginsÚlogging)rL   rM   )r8   r   r.   )rV   rY   Úlog_config_specrL   s       r#   rS   rS   ÷   s?   € Øo‰o˜i¨Ó,€Gà!—o‘o i°Ó4€OÜ% oÓ6€JÜØØ ôð r+   c                 ó  — t         i i}	 | d   }|j                  |«       t        t        j
                  ddœi}	 | d   }|j                  |«       | j                  dt         «      }| j                  dt        «      }| j                  dt        j                  «      }t        |t        «      st        d«      ‚t        |¬	«      }t        | j                  d
d«      «      }	t        ||||	||¬«      S # t        $ r Y ŒÚw xY w# t        $ r Y Œ¹w xY w)Nzvalidation-contextsÚ	__stamp__)z
stamp-textÚ
backgroundzstamp-styleszdefault-validation-contextzdefault-stamp-styleztime-tolerancez5time-tolerance parameter must be specified in seconds)Úsecondszretroactive-revinfoF)r   r   r   r   r   r   )ÚDEFAULT_VALIDATION_CONTEXTÚupdater    ÚDEFAULT_STAMP_STYLEr   Ú
stamp_textr8   r   r_   Ú
isinstanceÚintr   r   rH   r.   )
rV   ÚvcsÚvc_specsÚstamp_configsÚstamp_specsÚ
default_vcr   Útime_tolerance_secondsr   r   s
             r#   rT   rT     s4  € ä6¸Ð;€CðØÐ4Ñ5ˆØ
‰
8Ôô 	Ü5×@Ñ@Ø%ñ
ð€MðØ! .Ñ1ˆØ×Ñ˜[Ô)ð
 —‘Ø$Ô&@ó€Jð &Ÿ/™/ØÔ2óÐð )Ÿ_™_ØÔ0×8Ñ8óÐô Ð,¬cÔ2Ü ØCó
ð 	
ô Ð'=Ô>€NÜ˜{Ÿ™Ð/DÀeÓLÓMÐÜØØ#-Ø%Ø/Ø"Ø/ôð øôG ò Ùðûô ò Ùðús"   ŠC/ ºC> Ã/	C;Ã:C;Ã>	D
Ä	D
)(Údataclassesr   Údatetimer   Útypingr   r   r   r   r	   rQ   Úpyhanko_certvalidatorr
   Úpyhanko.config.errorsr   Úpyhanko.config.loggingr   r   Úpyhanko.config.trustr   r   Úpyhanko.sign.signersr   Ú pyhanko.sign.validation.settingsr   Úpyhanko.stampr   r   r   r   rK   r`   rb   r;   rF   rG   rW   r.   rS   rT   r'   r+   r#   Ú<module>rv      sÌ   ðÞ !Ý ß 4Õ 4ã Ý 3å 4ß Bß KÝ <Ý @ß FÑ Fð ÷e-ð e-ó ðe-ñP $Ô÷$ð $ó ð$ðX 4=Ð <Ð Ð0à
Øñ6Ð 4˜˜T .Ñ1Ð1Ñ2ó ð -ó ð¨dð °tó ð0 Tð 0¨dô 0r+   