§
    ¥”jv
  ã                   óÜ   — d dl 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 g d¢Z G d„ d	e¦  «        Zd
„ Zde
fd„Zdedefd„Zdej        dee         dej        fd„Zdefd„ZdS )é    N)ÚOptional)ÚcmsÚtsp)Úhashes)ÚCertificateStore)Úget_pyca_cryptography_hash)ÚTimestampRequestErrorÚdummy_digestÚextract_ts_certsÚ	get_nonceÚhandle_tsp_responseÚset_tsp_headersc                   ó   — e Zd ZdZdS )r	   zC
    Raised when an error occurs while requesting a timestamp.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    ús/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pyhanko/sign/timestamps/common_utils.pyr	   r	      s   € € € € € ðð ð 	€Dr   r	   c                  ób   — t          j        ddt          j        d¦  «        z   ¦  «        d         S )Nz>qó   é   r   )ÚstructÚunpackÚosÚurandomr   r   r   r   r      s(   € õ Œ=˜˜w­¬°A©¬Ñ6Ñ7Ô7¸Ô:Ð:r   Ústorec              #   ó  ‡K  — | d         }|d         }d„ Št          ˆfd„|d         D ¦   «         ¦  «        }|D ]D}|j        }|                     |¦  «         |j                             ¦   «         |j        f|v r|V — ŒEd S )NÚcontentÚcertificatesc                 ó¢   — | d         j         }t          |t          j        ¦  «        sJ ‚|d                              ¦   «         |d         j        fS )NÚsidÚissuerÚserial_number)ÚchosenÚ
isinstancer   ÚIssuerAndSerialNumberÚdumpÚnative)Úsir#   s     r   Úextract_ts_sidz(extract_ts_certs.<locals>.extract_ts_sid&   sJ   € Ø�ŒiÔˆå˜#�sÔ8Ñ9Ô9Ð9Ð9Ð9Ø�8Œ}×!Ò!Ñ#Ô# S¨Ô%9Ô%@Ð@Ð@r   c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S ©Nr   )Ú.0r+   r,   s     €r   ú	<genexpr>z#extract_ts_certs.<locals>.<genexpr>,   s-   øè è € ÐPÐP¨2�N�N 2Ñ&Ô&ÐPÐPÐPÐPÐPÐPr   Úsigner_infos)Úsetr&   Úregisterr$   r)   r%   )Úts_tokenr   Úts_signed_dataÚts_certsÚ	ts_leavesÚ	wrapped_cÚcr,   s          @r   r   r   "   s¯   øè è € Ø˜iÔ(€NØ˜nÔ-€HðAð Að Aõ ÐPÐPÐPÐP°ÀÔ1OÐPÑPÔPÑPÔP€Iàð ð ˆ	Ø&Ô-ˆØ�Š�qÑÔÐØŒH�MŠM‰OŒO˜Qœ_Ð-°Ð:Ð:ØˆGˆGˆGøð	ð r   Úmd_algorithmÚreturnc                 ól   — t          | ¦  «        }t          j        |¦  «                             ¦   «         S r.   )r   r   ÚHashÚfinalize)r:   Úmd_specs     r   r
   r
   5   s+   € Ý(¨Ñ6Ô6€GÝŒ;�wÑÔ×(Ò(Ñ*Ô*Ð*r   ÚresponseÚnoncec                 óÊ  — | d         }|d         j         dk    r^|d         j         pg }d                     |¦  «        }|d         j         pg }d                     |¦  «        }t          d|› d|› d�¦  «        ‚| d	         }|d
         d         d
         }|j        d         j         }	|�;|	|k    r5t          d|                     ¦   «         › dt	          |	¦  «        › d�¦  «        ‚|S )NÚstatusÚgrantedÚstatus_stringz; Ú	fail_infoz4Timestamp server refused our request: statusString "z", failInfo "ú"Útime_stamp_tokenr    Úencap_content_inforA   z<Time stamping authority sent back bad nonce value. Expected z
, but got ú.)r*   Újoinr	   ÚparsedÚhex)
r@   rA   Úpki_status_infoÚstatus_strsrE   Ú
fail_infosrF   ÚtstÚtst_infoÚnonce_receiveds
             r   r   r   :   s*  € ð ˜xÔ(€OØ�xÔ Ô'¨9Ò4Ð4Ø% oÔ6Ô=ÐCÀˆØŸ	š	 +Ñ.Ô.ˆØ$ [Ô1Ô8Ð>¸Bˆ
Ø—I’I˜jÑ)Ô)ˆ	Ý#ð9Øð9ð 9Ø,5ð9ð 9ð 9ñ
ô 
ð 	
ð Ð%Ô
&€CØ�9Œ~Ð2Ô3°IÔ>€HØ”_ WÔ-Ô4€NØÐ˜^¨uÒ4Ð4Ý#ð=Ø�yŠy‰{Œ{ð=ð =Ý&)¨.Ñ&9Ô&9ð=ð =ð =ñ
ô 
ð 	
ð €Jr   Úheadersc                 ó   — d| d<   d| d<   | S )Nzapplication/timestamp-queryzContent-Typezapplication/timestamp-replyÚAcceptr   )rT   s    r   r   r   R   s   € Ø;€GˆNÑØ5€GˆHÑØ€Nr   )r   r   Útypingr   Ú
asn1cryptor   r   Úcryptography.hazmat.primitivesr   Úpyhanko_certvalidator.registryr   Úpyhanko_certvalidator.utilr   Ú__all__ÚIOErrorr	   r   r   ÚstrÚbytesr
   ÚTimeStampRespÚContentInfor   Údictr   r   r   r   ú<module>rc      sY  ðØ 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø AÐ AÐ AÐ AÐ AÐ Aðð ð €ð	ð 	ð 	ð 	ð 	˜Gñ 	ô 	ð 	ð;ð ;ð ;ðÐ&6ð ð ð ð ð&+˜sð + uð +ð +ð +ð +ð
ØÔðØ(0°¬ðà„_ðð ð ð ð0˜Tð ð ð ð ð ð r   