U
    ÈZj‘  ã                   @   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                   @   s   e Zd ZdddddddœZdS )	ÚVersionZv0Zv1Zv2Zv3Zv4Zv5©r   r   é   é   é   é   N©Ú__name__Ú
__module__Ú__qualname__Ú_map© r*   r*   úQ/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/asn1crypto/tsp.pyr   8   s   úr   c                   @   s   e Zd ZdefdefgZdS )ÚMessageImprintÚhash_algorithmZhashed_messageN)r&   r'   r(   r   r   Ú_fieldsr*   r*   r*   r+   r,   C   s   þr,   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ÚoptionalTZmillisr   ©Úimplicitr1   Úmicrosr   N)r&   r'   r(   r   r.   r*   r*   r*   r+   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 )Ú	ExtensionZextn_idÚcriticalÚdefaultFZ
extn_valueN)r&   r'   r(   r   r   r   r.   r*   r*   r*   r+   r5   R   s   ýr5   c                   @   s   e Zd ZeZdS )Ú
ExtensionsN)r&   r'   r(   r5   Ú_child_specr*   r*   r*   r+   r8   Z   s   r8   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_numberZgen_timeZaccuracyr1   TZorderingr7   FÚnonceZtsar   )Úexplicitr1   Ú
extensionsr   r2   N)r&   r'   r(   r   r   r,   r   r   r/   r   r   r8   r.   r*   r*   r*   r+   r:   ^   s   ör:   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 )ÚTimeStampReqr;   r=   Z
req_policyr1   Tr?   Zcert_reqr7   FrA   r   r2   N)
r&   r'   r(   r   r,   r   r   r   r8   r.   r*   r*   r*   r+   rB   m   s   úrB   c                   @   s   e Zd ZdddddddœZdS )	Ú	PKIStatusZgrantedZgranted_with_modsZ	rejectionZwaitingZrevocation_warningZrevocation_notificationr    Nr%   r*   r*   r*   r+   rC   x   s   úrC   c                   @   s   e Zd ZeZdS )ÚPKIFreeTextN)r&   r'   r(   r   r9   r*   r*   r*   r+   rD   ƒ   s   rD   c                	   @   s"   e Zd Zddddddddd	œZd
S )ÚPKIFailureInfoZbad_algÚbad_requestZbad_data_formatZtime_not_availableZunaccepted_policyZunaccepted_extensionsZadd_info_not_availableZsystem_failure)r   r!   r$   é   é   é   é   é   Nr%   r*   r*   r*   r+   rE   ‡   s   ørE   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ÚstatusZstatus_stringr1   TZ	fail_infoN)r&   r'   r(   rC   rD   rE   r.   r*   r*   r*   r+   rL   ”   s   ýrL   c                   @   s   e Zd ZdefdefgZdS )ÚTimeStampResprM   Ztime_stamp_tokenN)r&   r'   r(   rL   r
   r.   r*   r*   r*   r+   rN   œ   s   þrN   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 )ÚMetaDataZhash_protectedÚ	file_namer1   TÚ
media_typeZother_meta_dataN)r&   r'   r(   r   r   r   r   r.   r*   r*   r*   r+   rO   £   s
   ürO   c                   @   s"   e Zd ZdefdeddifgZdS )ÚTimeStampAndCRLÚ
time_stampÚcrlr1   TN)r&   r'   r(   r   r   r.   r*   r*   r*   r+   rR   ¬   s   þrR   c                   @   s   e Zd ZeZdS )ÚTimeStampTokenEvidenceN)r&   r'   r(   rR   r9   r*   r*   r*   r+   rU   ³   s   rU   c                   @   s   e Zd ZeZdS )ÚDigestAlgorithmsN)r&   r'   r(   r   r9   r*   r*   r*   r+   rV   ·   s   rV   c                   @   s   e Zd ZdefdefgZdS )ÚEncryptionInfoZencryption_info_typeZencryption_info_valueN©r&   r'   r(   r   r   r.   r*   r*   r*   r+   rW   »   s   þrW   c                   @   s   e Zd ZeZdS )ÚPartialHashtreeN)r&   r'   r(   r   r9   r*   r*   r*   r+   rY   Â   s   rY   c                   @   s   e Zd ZeZdS )ÚPartialHashtreesN)r&   r'   r(   rY   r9   r*   r*   r*   r+   rZ   Æ   s   rZ   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 )ÚArchiveTimeStampZdigest_algorithmr   Tr2   Ú
attributesr   Zreduced_hashtreer!   rS   N)r&   r'   r(   r   r   rZ   r
   r.   r*   r*   r*   r+   r[   Ê   s
   ür[   c                   @   s   e Zd ZeZdS )ÚArchiveTimeStampSequenceN)r&   r'   r(   r[   r9   r*   r*   r*   r+   r]   Ó   s   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 )ÚEvidenceRecordr;   Zdigest_algorithmsZcrypto_infosr   Tr2   Zencryption_infor   Zarchive_time_stamp_sequenceN)	r&   r'   r(   r   rV   r   rW   r]   r.   r*   r*   r*   r+   r^   ×   s   ûr^   c                   @   s   e Zd ZdefdefgZdS )ÚOtherEvidenceZoe_typeZoe_valueNrX   r*   r*   r*   r+   r_   á   s   þ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 )	ÚEvidenceZtst_evidencer3   r   Zers_evidencer   Zother_evidencer!   N)r&   r'   r(   rU   r^   r_   Z_alternativesr*   r*   r*   r+   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 )	ÚTimeStampedDatar;   Zdata_urir1   TZ	meta_dataÚcontentZtemporal_evidenceN)	r&   r'   r(   r   r   rO   r   r`   r.   r*   r*   r*   r+   ra   ð   s   ûra   c                   @   s   e Zd ZdefdefgZdS )ÚIssuerSerialZissuerr>   N)r&   r'   r(   r   r   r.   r*   r*   r*   r+   rc   ú   s   þrc   c                   @   s"   e Zd ZdefdeddifgZdS )Ú	ESSCertIDÚ	cert_hashÚissuer_serialr1   TN)r&   r'   r(   r   rc   r.   r*   r*   r*   r+   rd     s   þrd   c                   @   s   e Zd ZeZdS )Ú
ESSCertIDsN)r&   r'   r(   rd   r9   r*   r*   r*   r+   rg     s   rg   c                   @   s"   e Zd ZdefdeddifgZdS )ÚSigningCertificateÚcertsÚpoliciesr1   TN)r&   r'   r(   rg   r   r.   r*   r*   r*   r+   rh     s   þrh   c                   @   s   e Zd ZeZdS )ÚSetOfSigningCertificatesN)r&   r'   r(   rh   r9   r*   r*   r*   r+   rk     s   rk   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 )
ÚESSCertIDv2r-   r7   Ú	algorithmÚsha256re   rf   r1   TN)r&   r'   r(   r   r   rc   r.   r*   r*   r*   r+   rl     s   ýrl   c                   @   s   e Zd ZeZdS )ÚESSCertIDv2sN)r&   r'   r(   rl   r9   r*   r*   r*   r+   ro     s   ro   c                   @   s"   e Zd ZdefdeddifgZdS )ÚSigningCertificateV2ri   rj   r1   TN)r&   r'   r(   ro   r   r.   r*   r*   r*   r+   rp   #  s   þrp   c                   @   s   e Zd ZeZdS )ÚSetOfSigningCertificatesV2N)r&   r'   r(   rp   r9   r*   r*   r*   r+   rq   *  s   rq   Ztst_infoZtimestamped_dataz1.2.840.113549.1.9.16.1.4z1.2.840.113549.1.9.16.1.31Zsigning_certificatez1.2.840.113549.1.9.16.2.12Zsigning_certificate_v2z1.2.840.113549.1.9.16.2.47N)GÚ__doc__Ú
__future__r   r   r   r   Zalgosr   Zcmsr   r	   r
   r   r   Úcorer   r   r   r   r   r   r   r   r   r   r   r   r   rT   r   Úx509r   r   r   r   r   r,   r/   r5   r8   r:   rB   rC   rD   rE   rL   rN   rO   rR   rU   rV   rW   rY   rZ   r[   r]   r^   r_   r`   ra   rc   rd   rg   rh   rk   rl   ro   rp   rq   Z
_oid_specsr)   r*   r*   r*   r+   Ú<module>   sb   <		









