Index: tools/telemetry/third_party/gsutilz/third_party/pyasn1-modules/pyasn1_modules/rfc2560.py |
diff --git a/tools/telemetry/third_party/gsutilz/third_party/pyasn1-modules/pyasn1_modules/rfc2560.py b/tools/telemetry/third_party/gsutilz/third_party/pyasn1-modules/pyasn1_modules/rfc2560.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0be1091b1e02fb39fe8423e870668eb59e43b595 |
--- /dev/null |
+++ b/tools/telemetry/third_party/gsutilz/third_party/pyasn1-modules/pyasn1_modules/rfc2560.py |
@@ -0,0 +1,171 @@ |
+# |
+# OCSP request/response syntax |
+# |
+# Derived from a minimal OCSP library (RFC2560) code written by |
+# Bud P. Bruegger <bud@ancitel.it> |
+# Copyright: Ancitel, S.p.a, Rome, Italy |
+# License: BSD |
+# |
+ |
+# |
+# current limitations: |
+# * request and response works only for a single certificate |
+# * only some values are parsed out of the response |
+# * the request does't set a nonce nor signature |
+# * there is no signature validation of the response |
+# * dates are left as strings in GeneralizedTime format -- datetime.datetime |
+# would be nicer |
+# |
+from pyasn1.type import tag, namedtype, namedval, univ, constraint, useful |
+from pyasn1_modules import rfc2459 |
+ |
+# Start of OCSP module definitions |
+ |
+# This should be in directory Authentication Framework (X.509) module |
+ |
+class CRLReason(univ.Enumerated): |
+ namedValues = namedval.NamedValues( |
+ ('unspecified', 0), |
+ ('keyCompromise', 1), |
+ ('cACompromise', 2), |
+ ('affiliationChanged', 3), |
+ ('superseded', 4), |
+ ('cessationOfOperation', 5), |
+ ('certificateHold', 6), |
+ ('removeFromCRL', 8), |
+ ('privilegeWithdrawn', 9), |
+ ('aACompromise', 10) |
+ ) |
+ |
+# end of directory Authentication Framework (X.509) module |
+ |
+# This should be in PKIX Certificate Extensions module |
+ |
+class GeneralName(univ.OctetString): pass |
+ |
+# end of PKIX Certificate Extensions module |
+ |
+id_kp_OCSPSigning = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 3, 9)) |
+id_pkix_ocsp = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1)) |
+id_pkix_ocsp_basic = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 1)) |
+id_pkix_ocsp_nonce = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 2)) |
+id_pkix_ocsp_crl = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 3)) |
+id_pkix_ocsp_response = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 4)) |
+id_pkix_ocsp_nocheck = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 5)) |
+id_pkix_ocsp_archive_cutoff = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 6)) |
+id_pkix_ocsp_service_locator = univ.ObjectIdentifier((1, 3, 6, 1, 5, 5, 7, 48, 1, 7)) |
+ |
+class AcceptableResponses(univ.SequenceOf): |
+ componentType = univ.ObjectIdentifier() |
+ |
+class ArchiveCutoff(useful.GeneralizedTime): pass |
+ |
+class UnknownInfo(univ.Null): pass |
+ |
+class RevokedInfo(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('revocationTime', useful.GeneralizedTime()), |
+ namedtype.OptionalNamedType('revocationReason', CRLReason().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) |
+ ) |
+ |
+class CertID(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('hashAlgorithm', rfc2459.AlgorithmIdentifier()), |
+ namedtype.NamedType('issuerNameHash', univ.OctetString()), |
+ namedtype.NamedType('issuerKeyHash', univ.OctetString()), |
+ namedtype.NamedType('serialNumber', rfc2459.CertificateSerialNumber()) |
+ ) |
+ |
+class CertStatus(univ.Choice): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('good', univ.Null().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
+ namedtype.NamedType('revoked', RevokedInfo().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
+ namedtype.NamedType('unknown', UnknownInfo().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))) |
+ ) |
+ |
+class SingleResponse(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('certID', CertID()), |
+ namedtype.NamedType('certStatus', CertStatus()), |
+ namedtype.NamedType('thisUpdate', useful.GeneralizedTime()), |
+ namedtype.OptionalNamedType('nextUpdate', useful.GeneralizedTime().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
+ namedtype.OptionalNamedType('singleExtensions', rfc2459.Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
+ ) |
+ |
+class KeyHash(univ.OctetString): pass |
+ |
+class ResponderID(univ.Choice): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('byName', rfc2459.Name().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
+ namedtype.NamedType('byKey', KeyHash().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))) |
+ ) |
+ |
+class Version(univ.Integer): |
+ namedValues = namedval.NamedValues(('v1', 0)) |
+ |
+class ResponseData(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.DefaultedNamedType('version', Version('v1').subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
+ namedtype.NamedType('responderID', ResponderID()), |
+ namedtype.NamedType('producedAt', useful.GeneralizedTime()), |
+ namedtype.NamedType('responses', univ.SequenceOf(SingleResponse())), |
+ namedtype.OptionalNamedType('responseExtensions', rfc2459.Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) |
+ ) |
+ |
+class BasicOCSPResponse(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('tbsResponseData', ResponseData()), |
+ namedtype.NamedType('signatureAlgorithm', rfc2459.AlgorithmIdentifier()), |
+ namedtype.NamedType('signature', univ.BitString()), |
+ namedtype.OptionalNamedType('certs', univ.SequenceOf(rfc2459.Certificate()).subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) |
+ ) |
+ |
+class ResponseBytes(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('responseType', univ.ObjectIdentifier()), |
+ namedtype.NamedType('response', univ.OctetString()) |
+ ) |
+ |
+class OCSPResponseStatus(univ.Enumerated): |
+ namedValues = namedval.NamedValues( |
+ ('successful', 0), |
+ ('malformedRequest', 1), |
+ ('internalError', 2), |
+ ('tryLater', 3), |
+ ('undefinedStatus', 4), # should never occur |
+ ('sigRequired', 5), |
+ ('unauthorized', 6) |
+ ) |
+ |
+class OCSPResponse(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('responseStatus', OCSPResponseStatus()), |
+ namedtype.OptionalNamedType('responseBytes', ResponseBytes().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) |
+ ) |
+ |
+class Request(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('reqCert', CertID()), |
+ namedtype.OptionalNamedType('singleRequestExtensions', rfc2459.Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) |
+ ) |
+ |
+class Signature(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('signatureAlgorithm', rfc2459.AlgorithmIdentifier()), |
+ namedtype.NamedType('signature', univ.BitString()), |
+ namedtype.OptionalNamedType('certs', univ.SequenceOf(rfc2459.Certificate()).subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) |
+ ) |
+ |
+class TBSRequest(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.DefaultedNamedType('version', Version('v1').subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), |
+ namedtype.OptionalNamedType('requestorName', GeneralName().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), |
+ namedtype.NamedType('requestList', univ.SequenceOf(Request())), |
+ namedtype.OptionalNamedType('requestExtensions', rfc2459.Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))) |
+ ) |
+ |
+class OCSPRequest(univ.Sequence): |
+ componentType = namedtype.NamedTypes( |
+ namedtype.NamedType('tbsRequest', TBSRequest()), |
+ namedtype.OptionalNamedType('optionalSignature', Signature().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))) |
+ ) |