| # |
| # This file is part of pyasn1-modules software. |
| # |
| # Created by Russ Housley with assistance from asn1ate v.0.6.0. |
| # |
| # Copyright (c) 2019, Vigil Security, LLC |
| # License: http://snmplabs.com/pyasn1/license.html |
| # |
| # Time-Stamp Protocol (TSP) |
| # |
| # ASN.1 source from: |
| # https://www.rfc-editor.org/rfc/rfc3161.txt |
| # |
| |
| from pyasn1.type import constraint |
| from pyasn1.type import namedtype |
| from pyasn1.type import namedval |
| from pyasn1.type import tag |
| from pyasn1.type import univ |
| from pyasn1.type import useful |
| |
| from pyasn1_modules import rfc4210 |
| from pyasn1_modules import rfc5280 |
| from pyasn1_modules import rfc5652 |
| |
| |
| Extensions = rfc5280.Extensions |
| |
| AlgorithmIdentifier = rfc5280.AlgorithmIdentifier |
| |
| GeneralName = rfc5280.GeneralName |
| |
| ContentInfo = rfc5652.ContentInfo |
| |
| PKIFreeText = rfc4210.PKIFreeText |
| |
| |
| id_ct_TSTInfo = univ.ObjectIdentifier('1.2.840.113549.1.9.16.1.4') |
| |
| |
| class Accuracy(univ.Sequence): |
| pass |
| |
| Accuracy.componentType = namedtype.NamedTypes( |
| namedtype.OptionalNamedType('seconds', univ.Integer()), |
| namedtype.OptionalNamedType('millis', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, 999)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('micros', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, 999)).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
| ) |
| |
| |
| class MessageImprint(univ.Sequence): |
| pass |
| |
| MessageImprint.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('hashAlgorithm', AlgorithmIdentifier()), |
| namedtype.NamedType('hashedMessage', univ.OctetString()) |
| ) |
| |
| |
| class PKIFailureInfo(univ.BitString): |
| pass |
| |
| PKIFailureInfo.namedValues = namedval.NamedValues( |
| ('badAlg', 0), |
| ('badRequest', 2), |
| ('badDataFormat', 5), |
| ('timeNotAvailable', 14), |
| ('unacceptedPolicy', 15), |
| ('unacceptedExtension', 16), |
| ('addInfoNotAvailable', 17), |
| ('systemFailure', 25) |
| ) |
| |
| |
| class PKIStatus(univ.Integer): |
| pass |
| |
| PKIStatus.namedValues = namedval.NamedValues( |
| ('granted', 0), |
| ('grantedWithMods', 1), |
| ('rejection', 2), |
| ('waiting', 3), |
| ('revocationWarning', 4), |
| ('revocationNotification', 5) |
| ) |
| |
| |
| class PKIStatusInfo(univ.Sequence): |
| pass |
| |
| PKIStatusInfo.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('status', PKIStatus()), |
| namedtype.OptionalNamedType('statusString', PKIFreeText()), |
| namedtype.OptionalNamedType('failInfo', PKIFailureInfo()) |
| ) |
| |
| |
| class TSAPolicyId(univ.ObjectIdentifier): |
| pass |
| |
| |
| class TSTInfo(univ.Sequence): |
| pass |
| |
| TSTInfo.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 1)))), |
| namedtype.NamedType('policy', TSAPolicyId()), |
| namedtype.NamedType('messageImprint', MessageImprint()), |
| namedtype.NamedType('serialNumber', univ.Integer()), |
| namedtype.NamedType('genTime', useful.GeneralizedTime()), |
| namedtype.OptionalNamedType('accuracy', Accuracy()), |
| namedtype.DefaultedNamedType('ordering', univ.Boolean().subtype(value=0)), |
| namedtype.OptionalNamedType('nonce', univ.Integer()), |
| namedtype.OptionalNamedType('tsa', GeneralName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
| namedtype.OptionalNamedType('extensions', Extensions().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
| ) |
| |
| |
| class TimeStampReq(univ.Sequence): |
| pass |
| |
| TimeStampReq.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 1)))), |
| namedtype.NamedType('messageImprint', MessageImprint()), |
| namedtype.OptionalNamedType('reqPolicy', TSAPolicyId()), |
| namedtype.OptionalNamedType('nonce', univ.Integer()), |
| namedtype.DefaultedNamedType('certReq', univ.Boolean().subtype(value=0)), |
| namedtype.OptionalNamedType('extensions', Extensions().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) |
| ) |
| |
| |
| class TimeStampToken(ContentInfo): |
| pass |
| |
| |
| class TimeStampResp(univ.Sequence): |
| pass |
| |
| TimeStampResp.componentType = namedtype.NamedTypes( |
| namedtype.NamedType('status', PKIStatusInfo()), |
| namedtype.OptionalNamedType('timeStampToken', TimeStampToken()) |
| ) |