PHP 8.5.2
Preview: rfc2560.py Size: 8.21 KB
//lib/python3/dist-packages/pyasn1_modules/rfc2560.py

#
# This file is part of pyasn1-modules software.
#
# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
# License: http://snmplabs.com/pyasn1/license.html
#
# 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 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 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(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),
        namedtype.NamedType('byKey',
                            KeyHash().subtype(explicitTag=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(componentType=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(componentType=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(componentType=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(componentType=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)))
    )

Directory Contents

Dirs: 1 × Files: 107

Name Size Perms Modified Actions
- drwxr-xr-x 2026-01-08 12:56:13
Edit Download
2.01 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.62 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
3.47 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
646 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
3.62 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
4.72 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
26.30 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.28 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
9.44 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.56 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
48.83 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
10.11 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
8.21 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.19 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
9.20 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
14.02 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.85 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.92 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
4.16 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.63 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
6.65 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
45.53 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
9.63 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.91 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.14 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.57 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.78 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.40 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
6.32 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.70 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
3.18 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
19.63 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.04 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
10.15 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.60 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
10.35 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
27.80 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
11.83 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.55 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
961 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
4.42 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.84 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.79 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.40 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
50.04 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
4.72 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
830 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
20.95 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
3.12 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
11.80 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.13 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
3.63 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.03 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
800 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.48 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
425 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
23.24 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.58 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.59 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
5.38 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.29 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.06 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
11.85 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.90 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
818 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
409 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
489 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.03 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.20 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
16.65 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
16.75 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.04 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.87 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
472 B lrw-r--r-- 2020-01-09 17:20:13
Edit Download
4.17 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
2.75 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
7.73 KB lrw-r--r-- 2019-10-17 05:03:15
Edit Download
1.41 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
6.90 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
743 B lrw-r--r-- 2019-10-17 05:03:15
Edit Download
8.28 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
885 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.13 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.05 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
841 B lrw-r--r-- 2019-10-17 05:03:15
Edit Download
1.28 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.73 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.70 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
18.48 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.46 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
4.08 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
6.02 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1017 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
393 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
4.19 KB lrw-r--r-- 2020-01-09 17:20:13
Edit Download
1.11 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.05 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.16 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
971 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.08 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.66 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.12 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
2.31 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.46 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
1.11 KB lrw-r--r-- 2019-10-17 05:00:24
Edit Download
982 B lrw-r--r-- 2019-10-17 05:00:24
Edit Download
65 B lrw-r--r-- 2020-01-09 17:20:21
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).