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v0Úv1Zv2Úv3Zv4Zv5©r   r   é   é   é   é   N©Ú__name__Ú
__module__Ú__qualname__Ú_map© r,   r,   ú2/tmp/pip-unpacked-wheel-fr05hfkd/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   ©Úimplicitr3   Zmicrosr   N)r(   r)   r*   r   r0   r,   r,   r,   r-   r1   J   s   ýr1   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   r0   r,   r,   r,   r-   r6   R   s   ýr6   c                   @   s   e Zd ZeZdS )Ú
ExtensionsN)r(   r)   r*   r6   Ú_child_specr,   r,   r,   r-   r9   Z   s   r9   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accuracyr3   TZorderingr8   FÚnonceZtsar   )Úexplicitr3   Ú
extensionsr   r4   N)r(   r)   r*   r   r   r.   r   r   r1   r   r   r9   r0   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_policyr3   Tr@   Zcert_reqr8   FrB   r   r4   N)
r(   r)   r*   r   r.   r   r   r   r9   r0   r,   r,   r,   r-   rC   m   s   úrC   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-   rD   x   s   úrD   c                   @   s   e Zd ZeZdS )ÚPKIFreeTextN)r(   r)   r*   r   r:   r,   r,   r,   r-   rE   ƒ   s   rE   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-   rF   ‡   s   ørF   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_stringr3   TZ	fail_infoN)r(   r)   r*   rD   rE   rF   r0   r,   r,   r,   r-   rM   ”   s   ýrM   c                   @   s   e Zd ZdefdefgZdS )ÚTimeStampResprN   Ztime_stamp_tokenN)r(   r)   r*   rM   r
   r0   r,   r,   r,   r-   rO   œ   s   þrO   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_namer3   TÚ
media_typeZother_meta_dataN)r(   r)   r*   r   r   r   r   r0   r,   r,   r,   r-   rP   £   s
   ürP   c                   @   s"   e Zd ZdefdeddifgZdS )ÚTimeStampAndCRLÚ
time_stampÚcrlr3   TN)r(   r)   r*   r   r   r0   r,   r,   r,   r-   rS   ¬   s   þrS   c                   @   s   e Zd ZeZdS )ÚTimeStampTokenEvidenceN)r(   r)   r*   rS   r:   r,   r,   r,   r-   rV   ³   s   rV   c                   @   s   e Zd ZeZdS )ÚDigestAlgorithmsN)r(   r)   r*   r   r:   r,   r,   r,   r-   rW   ·   s   rW   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   r0   r,   r,   r,   r-   rX   »   s   þrX   c                   @   s   e Zd ZeZdS )ÚPartialHashtreeN)r(   r)   r*   r   r:   r,   r,   r,   r-   rZ   Â   s   rZ   c                   @   s   e Zd ZeZdS )ÚPartialHashtreesN)r(   r)   r*   rZ   r:   r,   r,   r,   r-   r[   Æ   s   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 )ÚArchiveTimeStampZdigest_algorithmr   Tr4   Ú
attributesr   Zreduced_hashtreer#   rT   N)r(   r)   r*   r   r   r[   r
   r0   r,   r,   r,   r-   r\   Ê   s
   ür\   c                   @   s   e Zd ZeZdS )ÚArchiveTimeStampSequenceN)r(   r)   r*   r\   r:   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   Tr4   Zencryption_infor   Zarchive_time_stamp_sequenceN)	r(   r)   r*   r   rW   r   rX   r^   r0   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_valueNrY   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_evidencer5   r   Zers_evidencer   Zother_evidencer#   N)r(   r)   r*   rV   r_   r`   Z_alternativesr,   r,   r,   r-   ra   è   s   ýra   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_urir3   TZ	meta_dataÚcontentZtemporal_evidenceN)	r(   r)   r*   r   r   rP   r   ra   r0   r,   r,   r,   r-   rb   ð   s   ûrb   c                   @   s   e Zd ZdefdefgZdS )ÚIssuerSerialÚissuerr?   N)r(   r)   r*   r   r   r0   r,   r,   r,   r-   rd   ú   s   þrd   c                   @   s"   e Zd ZdefdeddifgZdS )Ú	ESSCertIDÚ	cert_hashÚissuer_serialr3   TN)r(   r)   r*   r   rd   r0   r,   r,   r,   r-   rf     s   þrf   c                   @   s   e Zd ZeZdS )Ú
ESSCertIDsN)r(   r)   r*   rf   r:   r,   r,   r,   r-   ri     s   ri   c                   @   s"   e Zd ZdefdeddifgZdS )ÚSigningCertificateÚcertsÚpoliciesr3   TN)r(   r)   r*   ri   r   r0   r,   r,   r,   r-   rj     s   þrj   c                   @   s   e Zd ZeZdS )ÚSetOfSigningCertificatesN)r(   r)   r*   rj   r:   r,   r,   r,   r-   rm     s   rm   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/   r8   Ú	algorithmÚsha256rg   rh   r3   TN)r(   r)   r*   r   r   rd   r0   r,   r,   r,   r-   rn     s   ýrn   c                   @   s   e Zd ZeZdS )ÚESSCertIDv2sN)r(   r)   r*   rn   r:   r,   r,   r,   r-   rq     s   rq   c                   @   s"   e Zd ZdefdeddifgZdS )ÚSigningCertificateV2rk   rl   r3   TN)r(   r)   r*   rq   r   r0   r,   r,   r,   r-   rr   #  s   þrr   c                   @   s   e Zd ZeZdS )ÚSetOfSigningCertificatesV2N)r(   r)   r*   rr   r:   r,   r,   r,   r-   rs   *  s   rs   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   rU   r   Úx509r   r   r   r   r   r.   r1   r6   r9   r;   rC   rD   rE   rF   rM   rO   rP   rS   rV   rW   rX   rZ   r[   r\   r^   r_   r`   ra   rb   rd   rf   ri   rj   rm   rn   rq   rr   rs   Z
_oid_specsr+   r,   r,   r,   r-   Ú<module>   sb   <		









