o
    Œõ±j‘  ã                   @   s"  d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
mZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZm Z m!Z!m"Z" G d	d
„ d
eƒZ#G dd„ deƒZ$G dd„ deƒZ%G dd„ deƒZ&G dd„ deƒZ'G dd„ deƒZ(G dd„ deƒZ)G dd„ deƒZ*G dd„ deƒZ+G dd„ deƒZ,G dd„ deƒZ-G dd „ d eƒZ.G d!d"„ d"eƒZ/G d#d$„ d$eƒZ0G d%d&„ d&eƒZ1G d'd(„ d(eƒZ2G d)d*„ d*eƒZ3G d+d,„ d,eƒZ4G d-d.„ d.eƒZ5G d/d0„ d0eƒZ6G d1d2„ d2eƒZ7G d3d4„ d4eƒZ8G d5d6„ d6eƒZ9G d7d8„ d8eƒZ:G d9d:„ d:eƒZ;G d;d<„ d<eƒZ<G d=d>„ d>eƒZ=G d?d@„ d@eƒZ>G dAdB„ dBeƒZ?G dCdD„ dDeƒZ@G dEdF„ dFeƒZAG dGdH„ dHeƒZBG dIdJ„ dJeƒZCG dKdL„ dLeƒZDe(ejEdM< e;ejEdN< e;ejEdN< dMejFdO< dNejFdP< dQe
jFdR< e@e	jEdQ< dSe
jFdT< eDe	jEdS< dUS )Va   
ASN.1 type classes for the time stamp protocol (TSP). Exports the following
items:

 - TimeStampReq()
 - TimeStampResp()

Also adds TimeStampedData() support to asn1crypto.cms.ContentInfo(),
TimeStampedData() and TSTInfo() support to
asn1crypto.cms.EncapsulatedContentInfo() and some oids and value parsers to
asn1crypto.cms.CMSAttribute().

Other type classes are defined that help compose the types listed above.
é    )Úunicode_literalsÚdivisionÚabsolute_importÚprint_functioné   )ÚDigestAlgorithm)ÚCMSAttributeÚCMSAttributeTypeÚContentInfoÚContentTypeÚEncapsulatedContentInfo)ÚAnyÚ	BitStringÚBooleanÚChoiceÚGeneralizedTimeÚ	IA5StringÚIntegerÚObjectIdentifierÚOctetStringÚSequenceÚ
SequenceOfÚSetOfÚ
UTF8String)ÚCertificateList)Ú
AttributesÚCertificatePoliciesÚGeneralNameÚGeneralNamesc                   @   ó   e Zd ZdddddddœZdS )	ÚVersionÚv0Úv1Úv2Úv3Úv4Úv5©r   r   é   é   é   é   N©Ú__name__Ú
__module__Ú__qualname__Ú_map© r1   r1   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asn1crypto/tsp.pyr    8   ó    
úr    c                   @   ó   e Zd ZdefdefgZdS )ÚMessageImprintÚhash_algorithmÚhashed_messageN)r-   r.   r/   r   r   Ú_fieldsr1   r1   r1   r2   r5   C   ó    þr5   c                   @   s8   e Zd ZdeddifdedddœfdedddœfgZd	S )
ÚAccuracyÚsecondsÚoptionalTÚmillisr   ©Úimplicitr<   Úmicrosr   N)r-   r.   r/   r   r8   r1   r1   r1   r2   r:   J   s
    ýr:   c                   @   s(   e Zd ZdefdeddifdefgZdS )Ú	ExtensionÚextn_idÚcriticalÚdefaultFÚ
extn_valueN)r-   r.   r/   r   r   r   r8   r1   r1   r1   r2   rA   R   s
    ýrA   c                   @   ó   e Zd ZeZdS )Ú
ExtensionsN)r-   r.   r/   rA   Ú_child_specr1   r1   r1   r2   rG   Z   ó    rG   c                   @   sn   e Zd Zdefdefdefdefdefdeddifd	e	d
difdeddifde
dddœfdedddœfg
ZdS )ÚTSTInfoÚversionÚpolicyÚmessage_imprintÚserial_numberÚgen_timeÚaccuracyr<   TÚorderingrD   FÚnonceÚtsar   )Úexplicitr<   Ú
extensionsr   r>   N)r-   r.   r/   r    r   r5   r   r   r:   r   r   rG   r8   r1   r1   r1   r2   rJ   ^   s    örJ   c                
   @   sN   e Zd Zdefdefdeddifdeddifdedd	ifd
edddœfgZ	dS )ÚTimeStampReqrK   rM   Ú
req_policyr<   TrR   Úcert_reqrD   FrU   r   r>   N)
r-   r.   r/   r    r5   r   r   r   rG   r8   r1   r1   r1   r2   rV   m   s    úrV   c                   @   r   )	Ú	PKIStatusÚgrantedÚgranted_with_modsÚ	rejectionÚwaitingÚrevocation_warningÚrevocation_notificationr'   Nr,   r1   r1   r1   r2   rY   x   r3   rY   c                   @   rF   )ÚPKIFreeTextN)r-   r.   r/   r   rH   r1   r1   r1   r2   r`   ƒ   rI   r`   c                	   @   s"   e Zd Zddddddddd	œZd
S )ÚPKIFailureInfoÚbad_algÚbad_requestÚbad_data_formatÚtime_not_availableÚunaccepted_policyÚunaccepted_extensionsÚadd_info_not_availableÚsystem_failure)r   r(   r+   é   é   é   é   é   Nr,   r1   r1   r1   r2   ra   ‡   s    
øra   c                   @   s.   e Zd ZdefdeddifdeddifgZdS )ÚPKIStatusInfoÚstatusÚstatus_stringr<   TÚ	fail_infoN)r-   r.   r/   rY   r`   ra   r8   r1   r1   r1   r2   ro   ”   s
    ýro   c                   @   r4   )ÚTimeStampResprp   Útime_stamp_tokenN)r-   r.   r/   ro   r
   r8   r1   r1   r1   r2   rs   œ   r9   rs   c                   @   s:   e Zd ZdefdeddifdeddifdeddifgZdS )ÚMetaDataÚhash_protectedÚ	file_namer<   TÚ
media_typeÚother_meta_dataN)r-   r.   r/   r   r   r   r   r8   r1   r1   r1   r2   ru   £   s    üru   c                   @   ó"   e Zd ZdefdeddifgZdS )ÚTimeStampAndCRLÚ
time_stampÚcrlr<   TN)r-   r.   r/   r   r   r8   r1   r1   r1   r2   r{   ¬   ó    þr{   c                   @   rF   )ÚTimeStampTokenEvidenceN)r-   r.   r/   r{   rH   r1   r1   r1   r2   r   ³   rI   r   c                   @   rF   )ÚDigestAlgorithmsN)r-   r.   r/   r   rH   r1   r1   r1   r2   r€   ·   rI   r€   c                   @   r4   )ÚEncryptionInfoÚencryption_info_typeÚencryption_info_valueN©r-   r.   r/   r   r   r8   r1   r1   r1   r2   r�   »   r9   r�   c                   @   rF   )ÚPartialHashtreeN)r-   r.   r/   r   rH   r1   r1   r1   r2   r…   Â   rI   r…   c                   @   rF   )ÚPartialHashtreesN)r-   r.   r/   r…   rH   r1   r1   r1   r2   r†   Æ   rI   r†   c                   @   s@   e Zd Zdedddœfdedddœfdedddœfd	efgZd
S )ÚArchiveTimeStampÚdigest_algorithmr   Tr>   Ú
attributesr   Úreduced_hashtreer(   r|   N)r-   r.   r/   r   r   r†   r
   r8   r1   r1   r1   r2   r‡   Ê   s    ür‡   c                   @   rF   )ÚArchiveTimeStampSequenceN)r-   r.   r/   r‡   rH   r1   r1   r1   r2   r‹   Ó   rI   r‹   c                   @   s>   e Zd Zdefdefdedddœfdedddœfd	efgZd
S )ÚEvidenceRecordrK   Údigest_algorithmsÚcrypto_infosr   Tr>   Úencryption_infor   Úarchive_time_stamp_sequenceN)	r-   r.   r/   r    r€   r   r�   r‹   r8   r1   r1   r1   r2   rŒ   ×   s    ûrŒ   c                   @   r4   )ÚOtherEvidenceÚoe_typeÚoe_valueNr„   r1   r1   r1   r2   r‘   á   r9   r‘   c                   @   s4   e Zd ZdeddifdeddifdeddifgZdS )	ÚEvidenceÚtst_evidencer?   r   Úers_evidencer   Úother_evidencer(   N)r-   r.   r/   r   rŒ   r‘   Ú_alternativesr1   r1   r1   r2   r”   è   s
    ýr”   c                   @   s@   e Zd ZdefdeddifdeddifdeddifdefgZdS )	ÚTimeStampedDatarK   Údata_urir<   TÚ	meta_dataÚcontentÚtemporal_evidenceN)	r-   r.   r/   r    r   ru   r   r”   r8   r1   r1   r1   r2   r™   ð   s    ûr™   c                   @   r4   )ÚIssuerSerialÚissuerrN   N)r-   r.   r/   r   r   r8   r1   r1   r1   r2   rž   ú   r9   rž   c                   @   rz   )Ú	ESSCertIDÚ	cert_hashÚissuer_serialr<   TN)r-   r.   r/   r   rž   r8   r1   r1   r1   r2   r      r~   r    c                   @   rF   )Ú
ESSCertIDsN)r-   r.   r/   r    rH   r1   r1   r1   r2   r£     rI   r£   c                   @   rz   )ÚSigningCertificateÚcertsÚpoliciesr<   TN)r-   r.   r/   r£   r   r8   r1   r1   r1   r2   r¤     r~   r¤   c                   @   rF   )ÚSetOfSigningCertificatesN)r-   r.   r/   r¤   rH   r1   r1   r1   r2   r§     rI   r§   c                   @   s2   e Zd ZdedddiifdefdeddifgZd	S )
ÚESSCertIDv2r6   rD   Ú	algorithmÚsha256r¡   r¢   r<   TN)r-   r.   r/   r   r   rž   r8   r1   r1   r1   r2   r¨     s
    ýr¨   c                   @   rF   )ÚESSCertIDv2sN)r-   r.   r/   r¨   rH   r1   r1   r1   r2   r«     rI   r«   c                   @   rz   )ÚSigningCertificateV2r¥   r¦   r<   TN)r-   r.   r/   r«   r   r8   r1   r1   r1   r2   r¬   #  r~   r¬   c                   @   rF   )ÚSetOfSigningCertificatesV2N)r-   r.   r/   r¬   rH   r1   r1   r1   r2   r­   *  rI   r­   Útst_infoÚtimestamped_dataz1.2.840.113549.1.9.16.1.4z1.2.840.113549.1.9.16.1.31Úsigning_certificatez1.2.840.113549.1.9.16.2.12Úsigning_certificate_v2z1.2.840.113549.1.9.16.2.47N)GÚ__doc__Ú
__future__r   r   r   r   Úalgosr   Úcmsr   r	   r
   r   r   Úcorer   r   r   r   r   r   r   r   r   r   r   r   r   r}   r   Úx509r   r   r   r   r    r5   r:   rA   rG   rJ   rV   rY   r`   ra   ro   rs   ru   r{   r   r€   r�   r…   r†   r‡   r‹   rŒ   r‘   r”   r™   rž   r    r£   r¤   r§   r¨   r«   r¬   r­   Ú
_oid_specsr0   r1   r1   r1   r2   Ú<module>   sd   <		









