
    Wwgj
                         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y)    N)Optional)cmstsp)hashes)CertificateStore   )get_pyca_cryptography_hash)TimestampRequestError	get_nonceextract_ts_certsdummy_digesthandle_tsp_responseset_tsp_headersc                       e Zd ZdZy)r
   zC
    Raised when an error occurs while requesting a timestamp.
    N)__name__
__module____qualname____doc__     [/var/www/horilla/myenv/lib/python3.12/site-packages/pyhanko/sign/timestamps/common_utils.pyr
   r
      s     	r   r
   c                  `    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::r   storec              #      K   | d   }|d   }d t        fd|d   D              }|D ]L  }|j                  }|j                  |       |j                  j	                         |j
                  f|v sI| N y w)Ncontentcertificatesc                     | d   j                   }t        |t        j                        sJ |d   j	                         |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89998}!!#S%9%@%@@@r   c              3   .   K   | ]  } |        y wNr   ).0r,   r-   s     r   	<genexpr>z#extract_ts_certs.<locals>.<genexpr>-   s     P2N2&Ps   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 P1OPPI 	&--qHHMMOQ__-:G	s   A/A:3A:md_algorithmreturnc                 ^    t        |       }t        j                  |      j                         S r/   )r	   r   Hashfinalize)r;   md_specs     r   r   r   6   s$    (6G;;w((**r   responsenoncec                    | d   }|d   j                   dk7  rZ|d   j                   xs g }dj                  |      }|d   j                   xs g }dj                  |      }t        d| d| d      | d	   }|d
   d   d
   }|j                  d   j                   }	|.|	|k7  r)t        d|j	                          dt	        |	       d      |S )Nstatusgrantedstatus_stringz; 	fail_infoz4Timestamp server refused our request: statusString "z", failInfo ""time_stamp_tokenr!   encap_content_inforB   z<Time stamping authority sent back bad nonce value. Expected z
, but got .)r+   joinr
   parsedhex)
rA   rB   pki_status_infostatus_strsrF   
fail_infosrG   tsttst_infononce_receiveds
             r   r   r   ;   s    x(Ox ''94%o6==C		+.$[188>B
IIj)	#yk=
 	
 %
&C9~23I>H__W-44N^u4#Jyy{m:c.&9%:!=
 	
 Jr   headersc                     d| d<   d| d<   | S )Nzapplication/timestamp-queryzContent-Typezapplication/timestamp-replyAcceptr   )rU   s    r   r   r   S   s    ;GN5GHNr   )r   r   typingr   
asn1cryptor   r   cryptography.hazmat.primitivesr   pyhanko_certvalidator.registryr   generalr	   __all__IOErrorr
   r   r   strbytesr   TimeStampRespContentInfor   dictr   r   r   r   <module>rd      s    	    1 ; 0	G 	;&6 &+s +u +
(0__0T r   