U
    Ÿ‹®g‘  ã                   @   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*   ú2/tmp/pip-unpacked-wheel-etcy_95o/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   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_idÚcriticalÚdefaultFZ
extn_valueN)r&   r'   r(   r   r   r   r.   r*   r*   r*   r+   r4   R   s   ýr4   c                   @   s   e Zd ZeZdS )Ú
ExtensionsN)r&   r'   r(   r4   Ú_child_specr*   r*   r*   r+   r7   Z   s   r7   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orderingr6   FÚnonceZtsar   )Úexplicitr1   Ú
extensionsr   r2   N)r&   r'   r(   r   r   r,   r   r   r/   r   r   r7   r.   r*   r*   r*   r+   r9   ^   s   ör9   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_reqr6   Fr@   r   r2   N)
r&   r'   r(   r   r,   r   r   r   r7   r.   r*   r*   r*   r+   rA   m   s   úrA   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+   rB   x   s   úrB   c                   @   s   e Zd ZeZdS )ÚPKIFreeTextN)r&   r'   r(   r   r8   r*   r*   r*   r+   rC   ƒ   s   rC   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+   rD   ‡   s   ørD   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(   rB   rC   rD   r.   r*   r*   r*   r+   rK   ”   s   ýrK   c                   @   s   e Zd ZdefdefgZdS )ÚTimeStampResprL   Ztime_stamp_tokenN)r&   r'   r(   rK   r
   r.   r*   r*   r*   r+   rM   œ   s   þrM   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+   rN   £   s
   ürN   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+   rQ   ¬   s   þrQ   c                   @   s   e Zd ZeZdS )ÚTimeStampTokenEvidenceN)r&   r'   r(   rQ   r8   r*   r*   r*   r+   rT   ³   s   rT   c                   @   s   e Zd ZeZdS )ÚDigestAlgorithmsN)r&   r'   r(   r   r8   r*   r*   r*   r+   rU   ·   s   rU   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+   rV   »   s   þrV   c                   @   s   e Zd ZeZdS )ÚPartialHashtreeN)r&   r'   r(   r   r8   r*   r*   r*   r+   rX   Â   s   rX   c                   @   s   e Zd ZeZdS )ÚPartialHashtreesN)r&   r'   r(   rX   r8   r*   r*   r*   r+   rY   Æ   s   rY   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!   rR   N)r&   r'   r(   r   r   rY   r
   r.   r*   r*   r*   r+   rZ   Ê   s
   ürZ   c                   @   s   e Zd ZeZdS )ÚArchiveTimeStampSequenceN)r&   r'   r(   rZ   r8   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   rU   r   rV   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_valueNrW   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(   rT   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   rN   r   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 )ÚIssuerSerialZissuerr=   N)r&   r'   r(   r   r   r.   r*   r*   r*   r+   rb   ú   s   þrb   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   rb   r.   r*   r*   r*   r+   rc     s   þrc   c                   @   s   e Zd ZeZdS )Ú
ESSCertIDsN)r&   r'   r(   rc   r8   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 )ÚSigningCertificateÚcertsÚpoliciesr1   TN)r&   r'   r(   rf   r   r.   r*   r*   r*   r+   rg     s   þrg   c                   @   s   e Zd ZeZdS )ÚSetOfSigningCertificatesN)r&   r'   r(   rg   r8   r*   r*   r*   r+   rj     s   rj   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-   r6   Ú	algorithmÚsha256rd   re   r1   TN)r&   r'   r(   r   r   rb   r.   r*   r*   r*   r+   rk     s   ýrk   c                   @   s   e Zd ZeZdS )ÚESSCertIDv2sN)r&   r'   r(   rk   r8   r*   r*   r*   r+   rn     s   rn   c                   @   s"   e Zd ZdefdeddifgZdS )ÚSigningCertificateV2rh   ri   r1   TN)r&   r'   r(   rn   r   r.   r*   r*   r*   r+   ro   #  s   þro   c                   @   s   e Zd ZeZdS )ÚSetOfSigningCertificatesV2N)r&   r'   r(   ro   r8   r*   r*   r*   r+   rp   *  s   rp   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   rS   r   Úx509r   r   r   r   r   r,   r/   r4   r7   r9   rA   rB   rC   rD   rK   rM   rN   rQ   rT   rU   rV   rX   rY   rZ   r\   r]   r^   r_   r`   rb   rc   rf   rg   rj   rk   rn   ro   rp   Z
_oid_specsr)   r*   r*   r*   r+   Ú<module>   sb   <		









