
     hj
                         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	get_nonceextract_ts_certsdummy_digest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__     `/var/www/html/Sam_Eipo/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P2NN2&&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PI  	&-qHMMOOQ_-::GGG	 r   md_algorithmreturnc                 l    t          |           }t          j        |                                          S r/   )r	   r   Hashfinalize)r;   md_specs     r   r   r   6   s+    (66G;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_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4%o6=C		+..$[18>B
IIj))	#== =/8= = =
 
 	
 %
&C9~23I>H_W-4N^u44#=yy{{= =&).&9&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      sY   				                1 1 1 1 1 1 ; ; ; ; ; ; 0 0 0 0 0 0  	 	 	 	 	G 	 	 	; ; ;&6    &+s +u + + + +
(0_   0T      r   