
ýðÁWŠ  ã               @   sO  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" Gd	 d
 „  d
 e ƒ Z# Gd d „  d e ƒ Z$ Gd d „  d e ƒ Z% Gd d „  d e ƒ Z& Gd d „  d e ƒ Z' Gd d „  d e ƒ Z( Gd d „  d e ƒ Z) Gd d „  d e ƒ Z* Gd d „  d e ƒ Z+ Gd d „  d e ƒ Z, Gd d „  d e ƒ Z- Gd d  „  d  e ƒ Z. Gd! d" „  d" e ƒ Z/ Gd# d$ „  d$ e ƒ Z0 Gd% d& „  d& e ƒ Z1 Gd' d( „  d( e ƒ Z2 Gd) d* „  d* e ƒ Z3 Gd+ d, „  d, e ƒ Z4 Gd- d. „  d. e ƒ Z5 Gd/ d0 „  d0 e ƒ Z6 Gd1 d2 „  d2 e ƒ Z7 Gd3 d4 „  d4 e ƒ Z8 Gd5 d6 „  d6 e ƒ Z9 Gd7 d8 „  d8 e ƒ Z: Gd9 d: „  d: e ƒ Z; Gd; d< „  d< e ƒ Z< Gd= d> „  d> e ƒ Z= Gd? d@ „  d@ e ƒ Z> GdA dB „  dB e ƒ Z? GdC dD „  dD e ƒ Z@ GdE dF „  dF e ƒ ZA GdG dH „  dH e ƒ ZB GdI dJ „  dJ e ƒ ZC GdK dL „  dL e ƒ ZD e( e jE dM <e; e jE dN <e; e jE dN <dM e jF dO <dN e jF dP <dQ e
 jF dR <e@ e	 jE dQ <dS e
 jF dT <eD e	 jE dS <dU S)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 d d	 d
 d d i Z d S)ÚVersionr   Zv0r   Zv1é   Zv2é   Zv3é   Zv4é   Zv5N)Ú__name__Ú
__module__Ú__qualname__Ú_map© r(   r(   ú0/usr/lib/python3/dist-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            
   @   sd   e  Z d  Z d e d d i f d e d d d d d d i f d	 e d d d d
 d d i f g Z d S)ÚAccuracyZsecondsÚoptionalTZmillisÚtag_typeÚimplicitÚtagr   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)   r2   R   s   	r2   c               @   s   e  Z d  Z e Z d S)Ú
ExtensionsN)r$   r%   r&   r2   Ú_child_specr(   r(   r(   r)   r4   Z   s   r4   c               @   sµ   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 d d d i f d e d d d d d d i f g
 Z d S)ÚTSTInfoÚversionZpolicyÚmessage_imprintÚserial_numberZgen_timeZaccuracyr.   TZorderingr3   FÚnonceZtsar/   Zexplicitr1   r   Ú
extensionsr0   r   N)r$   r%   r&   r   r   r*   r   r   r-   r   r   r4   r,   r(   r(   r(   r)   r6   ^   s   					r6   c               @   s|   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 d d d i f g Z	 d S)ÚTimeStampReqr7   r8   Z
req_policyr.   Tr:   Zcert_reqr3   Fr;   r/   r0   r1   r   N)
r$   r%   r&   r   r*   r   r   r   r4   r,   r(   r(   r(   r)   r<   m   s   		r<   c               @   s:   e  Z d  Z d d d d d d d d d	 d
 d d i Z d S)Ú	PKIStatusr   Zgrantedr   Zgranted_with_modsr    Z	rejectionr!   Zwaitingr"   Zrevocation_warningr#   Zrevocation_notificationN)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   r5   r(   r(   r(   r)   r>   ƒ   s   r>   c               @   sF   e  Z d  Z d d d d d d d d d	 d
 d d d d d d i Z d S)ÚPKIFailureInfor   Zbad_algr    Zbad_requestr#   Zbad_data_formaté   Ztime_not_availableé   Zunaccepted_policyé   Zunaccepted_extensionsé   Zadd_info_not_availableé   Zsystem_failureN)r$   r%   r&   r'   r(   r(   r(   r)   r?   ‡   s   r?   c               @   sC   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)   rE   ”   s   	rE   c               @   s(   e  Z d  Z d e f d e f g Z d S)ÚTimeStampResprF   Ztime_stamp_tokenN)r$   r%   r&   rE   r
   r,   r(   r(   r(   r)   rG   œ   s   	rG   c               @   sU   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)   rH   £   s   	rH   c               @   s1   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)   rJ   ¬   s   	rJ   c               @   s   e  Z d  Z e Z d S)ÚTimeStampTokenEvidenceN)r$   r%   r&   rJ   r5   r(   r(   r(   r)   rM   ³   s   rM   c               @   s   e  Z d  Z e Z d S)ÚDigestAlgorithmsN)r$   r%   r&   r   r5   r(   r(   r(   r)   rN   ·   s   rN   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)   rO   »   s   	rO   c               @   s   e  Z d  Z e Z d S)ÚPartialHashtreeN)r$   r%   r&   r   r5   r(   r(   r(   r)   rP   Â   s   rP   c               @   s   e  Z d  Z e Z d S)ÚPartialHashtreesN)r$   r%   r&   rP   r5   r(   r(   r(   r)   rQ   Æ   s   rQ   c            
   @   sy   e  Z d  Z d e d d d d d d i f d e d d d d	 d d i f d
 e d d d d d d i f d e f g Z d S)ÚArchiveTimeStampZdigest_algorithmr/   r0   r1   r   r.   TZ
attributesr   Zreduced_hashtreer    rK   N)r$   r%   r&   r   r   rQ   r
   r,   r(   r(   r(   r)   rR   Ê   s   rR   c               @   s   e  Z d  Z e Z d S)ÚArchiveTimeStampSequenceN)r$   r%   r&   rR   r5   r(   r(   r(   r)   rS   Ó   s   rS   c               @   sm   e  Z d  Z d e f d e f d e d d d d d d	 i f d
 e d d d d d d	 i f d e f g Z d S)ÚEvidenceRecordr7   Zdigest_algorithmsZcrypto_infosr/   r0   r1   r   r.   TZencryption_infor   Zarchive_time_stamp_sequenceN)	r$   r%   r&   r   rN   r   rO   rS   r,   r(   r(   r(   r)   rT   ×   s
   		rT   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)   rU   á   s   	rU   c               @   s^   e  Z d  Z d e d d d d i f d e d d d d i f d e d d d d	 i f g Z d
 S)ÚEvidenceZtst_evidencer/   r0   r1   r   Zers_evidencer   Zother_evidencer    N)r$   r%   r&   rM   rT   rU   Z_alternativesr(   r(   r(   r)   rV   è   s   rV   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)	ÚTimeStampedDatar7   Zdata_urir.   TZ	meta_dataZcontentZtemporal_evidenceN)	r$   r%   r&   r   r   rH   r   rV   r,   r(   r(   r(   r)   rW   ð   s
   	rW   c               @   s(   e  Z d  Z d e f d e f g Z d S)ÚIssuerSerialZissuerr9   N)r$   r%   r&   r   r   r,   r(   r(   r(   r)   rX   ú   s   	rX   c               @   s1   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   rX   r,   r(   r(   r(   r)   rY     s   	rY   c               @   s   e  Z d  Z e Z d S)Ú
ESSCertIDsN)r$   r%   r&   rY   r5   r(   r(   r(   r)   r\     s   r\   c               @   s1   e  Z d  Z d e f d e d d i f g Z d S)ÚSigningCertificateÚcertsÚpoliciesr.   TN)r$   r%   r&   r\   r   r,   r(   r(   r(   r)   r]     s   	r]   c               @   s   e  Z d  Z e Z d S)ÚSetOfSigningCertificatesN)r$   r%   r&   r]   r5   r(   r(   r(   r)   r`     s   r`   c               @   sI   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+   r3   Ú	algorithmZsha256rZ   r[   r.   TN)r$   r%   r&   r   r   rX   r,   r(   r(   r(   r)   ra     s   	ra   c               @   s   e  Z d  Z e Z d S)ÚESSCertIDv2sN)r$   r%   r&   ra   r5   r(   r(   r(   r)   rc     s   rc   c               @   s1   e  Z d  Z d e f d e d d i f g Z d S)ÚSigningCertificateV2r^   r_   r.   TN)r$   r%   r&   rc   r   r,   r(   r(   r(   r)   rd   #  s   	rd   c               @   s   e  Z d  Z e Z d S)ÚSetOfSigningCertificatesV2N)r$   r%   r&   rd   r5   r(   r(   r(   r)   re   *  s   re   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   rL   r   Zx509r   r   r   r   r   r*   r-   r2   r4   r6   r<   r=   r>   r?   rE   rG   rH   rJ   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r\   r]   r`   ra   rc   rd   re   Z
_oid_specsr'   r(   r(   r(   r)   Ú<module>   sb   "(X"		

