codekingpro/portable-devtools
114k
1#2# This file is part of pyasn1-modules software.3#4# Created by Russ Housley with assistance from asn1ate v.0.6.0.5#6# Copyright (c) 2019, Vigil Security, LLC7# License: http://snmplabs.com/pyasn1/license.html8#9# Time-Stamp Protocol (TSP)10#11# ASN.1 source from:12# https://www.rfc-editor.org/rfc/rfc3161.txt13#14 15from pyasn1.type import constraint16from pyasn1.type import namedtype17from pyasn1.type import namedval18from pyasn1.type import tag19from pyasn1.type import univ20from pyasn1.type import useful21 22from pyasn1_modules import rfc421023from pyasn1_modules import rfc528024from pyasn1_modules import rfc565225 26 27Extensions = rfc5280.Extensions28 29AlgorithmIdentifier = rfc5280.AlgorithmIdentifier30 31GeneralName = rfc5280.GeneralName32 33ContentInfo = rfc5652.ContentInfo34 35PKIFreeText = rfc4210.PKIFreeText36 37 38id_ct_TSTInfo = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.4')39 40 41class Accuracy(univ.Sequence):42 pass43 44Accuracy.componentType = namedtype.NamedTypes(45 namedtype.OptionalNamedType('seconds', univ.Integer()),46 namedtype.OptionalNamedType('millis', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, 999)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),47 namedtype.OptionalNamedType('micros', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, 999)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))48)49 50 51class MessageImprint(univ.Sequence):52 pass53 54MessageImprint.componentType = namedtype.NamedTypes(55 namedtype.NamedType('hashAlgorithm', AlgorithmIdentifier()),56 namedtype.NamedType('hashedMessage', univ.OctetString())57)58 59 60class PKIFailureInfo(univ.BitString):61 pass62 63PKIFailureInfo.namedValues = namedval.NamedValues(64 ('badAlg', 0),65 ('badRequest', 2),66 ('badDataFormat', 5),67 ('timeNotAvailable', 14),68 ('unacceptedPolicy', 15),69 ('unacceptedExtension', 16),70 ('addInfoNotAvailable', 17),71 ('systemFailure', 25)72)73 74 75class PKIStatus(univ.Integer):76 pass77 78PKIStatus.namedValues = namedval.NamedValues(79 ('granted', 0),80 ('grantedWithMods', 1),81 ('rejection', 2),82 ('waiting', 3),83 ('revocationWarning', 4),84 ('revocationNotification', 5)85)86 87 88class PKIStatusInfo(univ.Sequence):89 pass90 91PKIStatusInfo.componentType = namedtype.NamedTypes(92 namedtype.NamedType('status', PKIStatus()),93 namedtype.OptionalNamedType('statusString', PKIFreeText()),94 namedtype.OptionalNamedType('failInfo', PKIFailureInfo())95)96 97 98class TSAPolicyId(univ.ObjectIdentifier):99 pass100 101 102class TSTInfo(univ.Sequence):103 pass104 105TSTInfo.componentType = namedtype.NamedTypes(106 namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 1)))),107 namedtype.NamedType('policy', TSAPolicyId()),108 namedtype.NamedType('messageImprint', MessageImprint()),109 namedtype.NamedType('serialNumber', univ.Integer()),110 namedtype.NamedType('genTime', useful.GeneralizedTime()),111 namedtype.OptionalNamedType('accuracy', Accuracy()),112 namedtype.DefaultedNamedType('ordering', univ.Boolean().subtype(value=0)),113 namedtype.OptionalNamedType('nonce', univ.Integer()),114 namedtype.OptionalNamedType('tsa', GeneralName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),115 namedtype.OptionalNamedType('extensions', Extensions().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))116)117 118 119class TimeStampReq(univ.Sequence):120 pass121 122TimeStampReq.componentType = namedtype.NamedTypes(123 namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 1)))),124 namedtype.NamedType('messageImprint', MessageImprint()),125 namedtype.OptionalNamedType('reqPolicy', TSAPolicyId()),126 namedtype.OptionalNamedType('nonce', univ.Integer()),127 namedtype.DefaultedNamedType('certReq', univ.Boolean().subtype(value=0)),128 namedtype.OptionalNamedType('extensions', Extensions().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))129)130 131 132class TimeStampToken(ContentInfo):133 pass134 135 136class TimeStampResp(univ.Sequence):137 pass138 139TimeStampResp.componentType = namedtype.NamedTypes(140 namedtype.NamedType('status', PKIStatusInfo()),141 namedtype.OptionalNamedType('timeStampToken', TimeStampToken())142)143 