B
    M¯]“  ã               @   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(   ú-lib/python3.7/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 )
ÚAccuracyZsecondsÚoptionalTZmillisr   )Úimplicitr.   Z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_idZcriticalÚdefaultFZ
extn_valueN)r$   r%   r&   r   r   r   r,   r(   r(   r(   r)   r0   R   s   r0   c               @   s   e Zd ZeZdS )Ú
ExtensionsN)r$   r%   r&   r0   Ú_child_specr(   r(   r(   r)   r2   Z   s   r2   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ÚversionZpolicyÚmessage_imprintÚserial_numberZgen_timeZaccuracyr.   TZorderingr1   FÚnonceZtsar   )Zexplicitr.   Ú
extensionsr   )r/   r.   N)r$   r%   r&   r   r   r*   r   r   r-   r   r   r2   r,   r(   r(   r(   r)   r4   ^   s   r4   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 )ÚTimeStampReqr5   r6   Z
req_policyr.   Tr8   Zcert_reqr1   Fr9   r   )r/   r.   N)
r$   r%   r&   r   r*   r   r   r   r2   r,   r(   r(   r(   r)   r:   m   s   r:   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_notification)r   r   r    r!   r"   r#   N)r$   r%   r&   r'   r(   r(   r(   r)   r;   x   s   r;   c               @   s   e Zd ZeZdS )ÚPKIFreeTextN)r$   r%   r&   r   r3   r(   r(   r(   r)   r<   ƒ   s   r<   c            	   @   s"   e Zd Zddddddddd	œZd
S )ÚPKIFailureInfoZbad_algZbad_requestZbad_data_formatZtime_not_availableZunaccepted_policyZunaccepted_extensionsZadd_info_not_availableZsystem_failure)r   r    r#   é   é   é   é   é   N)r$   r%   r&   r'   r(   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gZdS )ÚPKIStatusInfoÚstatusZstatus_stringr.   TZ	fail_infoN)r$   r%   r&   r;   r<   r=   r,   r(   r(   r(   r)   rC   ”   s   rC   c               @   s   e Zd ZdefdefgZdS )ÚTimeStampResprD   Ztime_stamp_tokenN)r$   r%   r&   rC   r
   r,   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deddifgZdS )ÚMetaDataZhash_protectedÚ	file_namer.   TZ
media_typeZother_meta_dataN)r$   r%   r&   r   r   r   r   r,   r(   r(   r(   r)   rF   £   s   rF   c               @   s"   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   r,   r(   r(   r(   r)   rH   ¬   s   rH   c               @   s   e Zd ZeZdS )ÚTimeStampTokenEvidenceN)r$   r%   r&   rH   r3   r(   r(   r(   r)   rK   ³   s   rK   c               @   s   e Zd ZeZdS )ÚDigestAlgorithmsN)r$   r%   r&   r   r3   r(   r(   r(   r)   rL   ·   s   rL   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)   rM   »   s   rM   c               @   s   e Zd ZeZdS )ÚPartialHashtreeN)r$   r%   r&   r   r3   r(   r(   r(   r)   rN   Â   s   rN   c               @   s   e Zd ZeZdS )ÚPartialHashtreesN)r$   r%   r&   rN   r3   r(   r(   r(   r)   rO   Æ   s   rO   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   T)r/   r.   Z
attributesr   Zreduced_hashtreer    rI   N)r$   r%   r&   r   r   rO   r
   r,   r(   r(   r(   r)   rP   Ê   s   rP   c               @   s   e Zd ZeZdS )ÚArchiveTimeStampSequenceN)r$   r%   r&   rP   r3   r(   r(   r(   r)   rQ   Ó   s   rQ   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 )ÚEvidenceRecordr5   Zdigest_algorithmsZcrypto_infosr   T)r/   r.   Zencryption_infor   Zarchive_time_stamp_sequenceN)	r$   r%   r&   r   rL   r   rM   rQ   r,   r(   r(   r(   r)   rR   ×   s
   rR   c               @   s   e Zd ZdefdefgZdS )ÚOtherEvidenceZoe_typeZoe_valueN)r$   r%   r&   r   r   r,   r(   r(   r(   r)   rS   á   s   rS   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_evidencer/   r   Zers_evidencer   Zother_evidencer    N)r$   r%   r&   rK   rR   rS   Z_alternativesr(   r(   r(   r)   rT   è   s   rT   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 )	ÚTimeStampedDatar5   Zdata_urir.   TZ	meta_dataZcontentZtemporal_evidenceN)	r$   r%   r&   r   r   rF   r   rT   r,   r(   r(   r(   r)   rU   ð   s
   rU   c               @   s   e Zd ZdefdefgZdS )ÚIssuerSerialZissuerr7   N)r$   r%   r&   r   r   r,   r(   r(   r(   r)   rV   ú   s   rV   c               @   s"   e Zd ZdefdeddifgZdS )Ú	ESSCertIDÚ	cert_hashÚissuer_serialr.   TN)r$   r%   r&   r   rV   r,   r(   r(   r(   r)   rW     s   rW   c               @   s   e Zd ZeZdS )Ú
ESSCertIDsN)r$   r%   r&   rW   r3   r(   r(   r(   r)   rZ     s   rZ   c               @   s"   e Zd ZdefdeddifgZdS )ÚSigningCertificateÚcertsÚpoliciesr.   TN)r$   r%   r&   rZ   r   r,   r(   r(   r(   r)   r[     s   r[   c               @   s   e Zd ZeZdS )ÚSetOfSigningCertificatesN)r$   r%   r&   r[   r3   r(   r(   r(   r)   r^     s   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 )
ÚESSCertIDv2r+   r1   Ú	algorithmZsha256rX   rY   r.   TN)r$   r%   r&   r   r   rV   r,   r(   r(   r(   r)   r_     s   r_   c               @   s   e Zd ZeZdS )ÚESSCertIDv2sN)r$   r%   r&   r_   r3   r(   r(   r(   r)   ra     s   ra   c               @   s"   e Zd ZdefdeddifgZdS )ÚSigningCertificateV2r\   r]   r.   TN)r$   r%   r&   ra   r   r,   r(   r(   r(   r)   rb   #  s   rb   c               @   s   e Zd ZeZdS )ÚSetOfSigningCertificatesV2N)r$   r%   r&   rb   r3   r(   r(   r(   r)   rc   *  s   rc   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__Z
__future__r   r   r   r   Zalgosr   Zcmsr   r	   r
   r   r   Zcorer   r   r   r   r   r   r   r   r   r   r   r   r   rJ   r   Zx509r   r   r   r   r   r*   r-   r0   r2   r4   r:   r;   r<   r=   rC   rE   rF   rH   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rZ   r[   r^   r_   ra   rb   rc   Z
_oid_specsr'   r(   r(   r(   r)   Ú<module>   sb   <		









