COSE Working Group L. Liao Internet-Draft NIO Inc. Intended status: Standards Track M. Tiloca Expires: 6 May 2027 J. Höglund R. Höglund RISE AB S. Raza University of Glasgow 2 November 2026 CBOR Encoded Certificate Revocation Management draft-liao-cose-c509-revocation-01 Abstract This document specifies CBOR-encoded PKI structures for use with C509 certificates (draft-ietf-cose-cbor-encoded-cert), X.509 certificates (RFC 5280), and future certificate types. It defines C509 CRL and C509 OCSP, compact CBOR encodings of X.509 Certificate Revocation Lists (RFC 5280) and OCSP messages (RFC 6960), respectively. The structures defined in this document are certificate-type agnostic and can be used with C509 certificates, X.509 certificates, or future certificate types without modification. C509 OCSP improves on RFC 6960 by signing a wider set of fields to prevent algorithm- substitution and certificate-chain substitution attacks, replacing plaintext serial numbers with hashes to preserve requestor privacy, replacing the two-hash issuer identity with a single certificate hash, and identifying all participants (requestor, responder, issuer) by a uniform certificate hash rather than type-specific fields. C509 CRL and C509 OCSP are not wire-format-compatible with their DER- encoded X.509 counterparts and cannot be converted to or from them without semantic interpretation. Additionally, this document specifies the PEM representation of the C509 structures following the framework of [RFC7468]. About This Document This note is to be removed before publishing as an RFC. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-liao-cose-c509-revocation/. Discussion of this document takes place on the CBOR Object Signing and Encryption (cose) Working Group mailing list (mailto:cose@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/cose/. Subscribe at https://www.ietf.org/mailman/listinfo/cose/. Liao, et al. Expires 6 May 2027 [Page 1] Internet-Draft C509 Revocation November 2026 Source for this draft and an issue tracker can be found at https://github.com/lijun-nio/idc509rev. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 6 May 2027. Copyright Notice Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Alternative Certificate Status Checking Mechanisms . . . . . 8 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 9 4. Common Types . . . . . . . . . . . . . . . . . . . . . . . . 10 5. Encoding of Time Fields . . . . . . . . . . . . . . . . . . . 11 6. C509 CRL . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 11 6.2. C509 CRL CDDL . . . . . . . . . . . . . . . . . . . . . . 11 6.3. Field Encodings . . . . . . . . . . . . . . . . . . . . . 12 6.3.1. CRLInfoData and C509CRLInfo . . . . . . . . . . . . . 13 6.3.2. crlType . . . . . . . . . . . . . . . . . . . . . . . 13 6.3.3. signatureAlgorithm . . . . . . . . . . . . . . . . . 13 Liao, et al. Expires 6 May 2027 [Page 2] Internet-Draft C509 Revocation November 2026 6.3.4. authoritySubject and authorityKeyIdentifier . . . . . 13 6.3.5. crlNumber . . . . . . . . . . . . . . . . . . . . . . 14 6.3.6. thisUpdate and nextUpdate . . . . . . . . . . . . . . 14 6.3.7. baseCrlNumber . . . . . . . . . . . . . . . . . . . . 14 6.3.8. reasonCode Encoding . . . . . . . . . . . . . . . . . 14 6.3.9. revokedCertsList and PerIssuerRevokedCerts . . . . . 15 6.3.9.1. Design Considerations . . . . . . . . . . . . . . 15 6.3.9.2. Fields . . . . . . . . . . . . . . . . . . . . . 16 6.3.10. CRL Extensions . . . . . . . . . . . . . . . . . . . 19 6.3.11. Per-Issuer Extensions . . . . . . . . . . . . . . . . 20 6.3.11.1. expiredCertsOnCRL . . . . . . . . . . . . . . . 21 6.3.12. CRL Entry Extensions . . . . . . . . . . . . . . . . 21 6.3.13. signatureValue . . . . . . . . . . . . . . . . . . . 22 6.4. PEM Representation . . . . . . . . . . . . . . . . . . . 22 7. C509 OCSP . . . . . . . . . . . . . . . . . . . . . . . . . . 23 7.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 23 7.2. Hash Algorithms . . . . . . . . . . . . . . . . . . . . . 23 7.3. Identification of Certificates . . . . . . . . . . . . . 24 7.4. C509 OCSP Request . . . . . . . . . . . . . . . . . . . . 25 7.4.1. CDDL . . . . . . . . . . . . . . . . . . . . . . . . 25 7.4.2. Field Encodings . . . . . . . . . . . . . . . . . . . 26 7.4.2.1. ocspRequestType . . . . . . . . . . . . . . . . . 26 7.4.2.2. issuerCertHash . . . . . . . . . . . . . . . . . 26 7.4.2.3. PerIssuerOCSPRequests, PerIssuerOCSPRequest, SingleCertRequests and SingleCertRequest . . . . . 27 7.4.2.4. C509UnsignedOCSPRequest . . . . . . . . . . . . . 28 7.4.2.5. C509SignedOCSPRequest . . . . . . . . . . . . . . 28 7.4.2.6. C509SimpleOCSPRequest . . . . . . . . . . . . . . 29 7.4.3. PEM Representation . . . . . . . . . . . . . . . . . 30 7.5. C509 OCSP Response . . . . . . . . . . . . . . . . . . . 30 7.5.1. CDDL . . . . . . . . . . . . . . . . . . . . . . . . 30 7.5.2. Field Encodings . . . . . . . . . . . . . . . . . . . 32 7.5.2.1. C509ErrorOCSPResponse . . . . . . . . . . . . . . 32 7.5.2.2. C509BasicOCSPResponse . . . . . . . . . . . . . . 32 7.5.2.3. C509SimpleOCSPResponse . . . . . . . . . . . . . 33 7.5.2.4. nonce . . . . . . . . . . . . . . . . . . . . . . 34 7.5.2.5. responderCertHash . . . . . . . . . . . . . . . . 34 7.5.2.6. responderCerts . . . . . . . . . . . . . . . . . 34 7.5.2.7. signatureAlgorithm and signatureValue . . . . . . 35 7.5.2.8. producedAt, thisUpdate, nextUpdate . . . . . . . 35 7.5.2.9. extensions . . . . . . . . . . . . . . . . . . . 35 7.5.2.10. PerIssuerOCSPResponses and PerIssuerOCSPResponse . . . . . . . . . . . . . . . 35 7.5.2.11. SingleCertResponse . . . . . . . . . . . . . . . 36 7.5.2.12. Per-Issuer OCSP Extensions . . . . . . . . . . . 36 7.5.2.13. OCSP Extensions . . . . . . . . . . . . . . . . . 37 7.5.3. PEM Representation . . . . . . . . . . . . . . . . . 40 7.6. Certificate Type Interoperability . . . . . . . . . . . . 40 Liao, et al. Expires 6 May 2027 [Page 3] Internet-Draft C509 Revocation November 2026 7.7. OCSP Stapling in TLS . . . . . . . . . . . . . . . . . . 41 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 42 8.1. Implementation #1 . . . . . . . . . . . . . . . . . . . . 42 8.2. Implementation #2 . . . . . . . . . . . . . . . . . . . . 44 9. Security Considerations . . . . . . . . . . . . . . . . . . . 44 9.1. Signature Verification . . . . . . . . . . . . . . . . . 44 9.2. Truncated Hash Identifiers . . . . . . . . . . . . . . . 45 9.3. Privacy . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.4. Freshness and Replay . . . . . . . . . . . . . . . . . . 45 9.5. Completeness of CRLs . . . . . . . . . . . . . . . . . . 46 9.6. Parsing and Denial of Service . . . . . . . . . . . . . . 46 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 47 10.1. C509 CRL Types Registry . . . . . . . . . . . . . . . . 47 10.2. C509 OCSP Request Types Registry . . . . . . . . . . . . 47 10.3. C509 OCSP Response Types Registry . . . . . . . . . . . 48 10.4. Extension Identifiers Registry . . . . . . . . . . . . . 48 10.5. TLS CertificateStatusType Registry . . . . . . . . . . . 49 10.6. PEM Label Registry . . . . . . . . . . . . . . . . . . . 50 10.7. Media Type Application Registry . . . . . . . . . . . . 50 10.7.1. Media Type application/c509-crl+cbor . . . . . . . . 50 10.7.2. Media Type application/c509-crlinfo+cbor . . . . . . 51 10.7.3. Media Type application/c509-ocspreq+cbor . . . . . . 52 10.7.4. Media Type application/c509-ocspresp+cbor . . . . . 53 10.8. CoAP Content-Formats Registry . . . . . . . . . . . . . 54 10.9. Expert Review Guidelines . . . . . . . . . . . . . . . . 55 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 11.1. Normative References . . . . . . . . . . . . . . . . . . 55 11.2. Informative References . . . . . . . . . . . . . . . . . 57 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 59 A.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 59 A.2. Helper Keys and Certificates . . . . . . . . . . . . . . 60 A.2.1. CA Private Key and Certificate . . . . . . . . . . . 60 A.2.1.1. CA Private Key . . . . . . . . . . . . . . . . . 60 A.2.1.2. CA Certificate . . . . . . . . . . . . . . . . . 60 A.2.2. CRL Signer Private Key and Certificate . . . . . . . 61 A.2.2.1. CRL Signer Private Key . . . . . . . . . . . . . 61 A.2.2.2. CRL Signer Certificate . . . . . . . . . . . . . 62 A.2.3. OCSP Requestor Private Key and Certificate . . . . . 63 A.2.3.1. OCSP Requestor Private Key . . . . . . . . . . . 63 A.2.3.2. OCSP Requestor Certificate . . . . . . . . . . . 63 A.2.4. OCSP Responder Private Key and Certificate . . . . . 64 A.2.4.1. OCSP Responder Private Key . . . . . . . . . . . 64 A.2.4.2. OCSP Responder Certificate . . . . . . . . . . . 64 A.3. CRL Examples . . . . . . . . . . . . . . . . . . . . . . 66 A.3.1. CRL Example Without Revoked Certificates . . . . . . 66 A.3.1.1. X.509 CRL . . . . . . . . . . . . . . . . . . . . 66 A.3.1.2. C509 CRL . . . . . . . . . . . . . . . . . . . . 66 A.3.2. CRL Example With Revoked Certificates . . . . . . . . 67 Liao, et al. Expires 6 May 2027 [Page 4] Internet-Draft C509 Revocation November 2026 A.3.2.1. X.509 CRL . . . . . . . . . . . . . . . . . . . . 68 A.3.2.2. C509 CRL . . . . . . . . . . . . . . . . . . . . 68 A.3.3. Delta CRL Example With Revoked Certificates . . . . . 71 A.3.3.1. X.509 CRL . . . . . . . . . . . . . . . . . . . . 71 A.3.3.2. C509 CRL . . . . . . . . . . . . . . . . . . . . 71 A.3.4. Indirect CRL Example With Revoked Certificates . . . 73 A.3.4.1. X.509 CRL . . . . . . . . . . . . . . . . . . . . 74 A.3.4.2. C509 CRL . . . . . . . . . . . . . . . . . . . . 74 A.4. OCSP Request Examples . . . . . . . . . . . . . . . . . . 77 A.4.1. Simple OCSP Request Example . . . . . . . . . . . . . 77 A.4.1.1. X.509 OCSP Request . . . . . . . . . . . . . . . 77 A.4.1.2. C509 OCSP Request . . . . . . . . . . . . . . . . 77 A.4.2. Unsigned OCSP Request Example . . . . . . . . . . . . 78 A.4.2.1. X.509 OCSP Request . . . . . . . . . . . . . . . 78 A.4.2.2. C509 OCSP Request . . . . . . . . . . . . . . . . 79 A.4.3. Signed OCSP Request Example Without Requestor's Certificate . . . . . . . . . . . . . . . . . . . . . 81 A.4.3.1. X.509 OCSP Request . . . . . . . . . . . . . . . 82 A.4.3.2. C509 OCSP Request . . . . . . . . . . . . . . . . 82 A.4.4. Signed OCSP Request Example With Requestor's Certificate . . . . . . . . . . . . . . . . . . . . . 85 A.4.4.1. X.509 OCSP Request . . . . . . . . . . . . . . . 85 A.4.4.2. C509 OCSP Request . . . . . . . . . . . . . . . . 85 A.4.5. Signed OCSP Request Example With Requestor's Certificate Chain . . . . . . . . . . . . . . . . . . 89 A.4.5.1. X.509 OCSP Request . . . . . . . . . . . . . . . 89 A.4.5.2. C509 OCSP Request . . . . . . . . . . . . . . . . 90 A.5. OCSP Response Examples . . . . . . . . . . . . . . . . . 94 A.5.1. Error OCSP Response Example . . . . . . . . . . . . . 95 A.5.1.1. X.509 OCSP Response . . . . . . . . . . . . . . . 95 A.5.1.2. C509 OCSP Response . . . . . . . . . . . . . . . 95 A.5.2. Simple OCSP Response Example . . . . . . . . . . . . 95 A.5.2.1. X.509 OCSP Response . . . . . . . . . . . . . . . 96 A.5.2.2. C509 OCSP Response . . . . . . . . . . . . . . . 96 A.5.3. Basic OCSP Response Example Without Responder's Certificate . . . . . . . . . . . . . . . . . . . . . 98 A.5.3.1. X.509 OCSP Response . . . . . . . . . . . . . . . 98 A.5.3.2. C509 OCSP Response . . . . . . . . . . . . . . . 99 A.5.4. Basic OCSP Response Example With Responder's Certificate . . . . . . . . . . . . . . . . . . . . . 102 A.5.4.1. X.509 OCSP Response . . . . . . . . . . . . . . . 102 A.5.4.2. C509 OCSP Response . . . . . . . . . . . . . . . 103 A.5.5. Basic OCSP Response Example With Responder's Certificate Chain . . . . . . . . . . . . . . . . . . 107 A.5.5.1. X.509 OCSP Response . . . . . . . . . . . . . . . 107 A.5.5.2. C509 OCSP Response . . . . . . . . . . . . . . . 108 Appendix B. Document Updates . . . . . . . . . . . . . . . . . . 113 B.1. Version -00 to -01 . . . . . . . . . . . . . . . . . . . 113 Liao, et al. Expires 6 May 2027 [Page 5] Internet-Draft C509 Revocation November 2026 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 113 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 113 1. Introduction Public Key Infrastructure (PKI) for constrained environments [RFC7228] requires compact certificate representations and compact revocation information. [I-D.ietf-cose-cbor-encoded-cert] defines C509 certificates, a CBOR encoding of X.509 certificates [RFC5280] that reduces certificate size by over 50% for typical constrained- device profiles. However, revocation mechanisms such as Certificate Revocation Lists (CRLs) and Online Certificate Status Protocol (OCSP) messages have not yet received the same treatment. CRLs as defined in [RFC5280] can be large, especially when many certificates have been revoked or when CRL extensions add overhead. In the complementary OCSP mechanism defined in [RFC6960], OCSP responses carry per-certificate status information and may be exchanged during TLS [RFC9846] and DTLS [RFC9147] handshakes via OCSP stapling [RFC6066], directly affecting handshake latency. Note on terminology: The label "C509" is used for consistency with the C509 certificate encoding and to promote a cohesive C509 PKI ecosystem (C509 certificates, CRLs, OCSP, and related tooling). Although this document uses "C509" in its names, the encodings and protocols defined here are certificate-type agnostic and apply equally to X.509 certificates and other certificate types; see Section 7.6. This document specifies: * *C509 CRL* -- a natively signed CBOR [RFC8949] encoding of X.509 CRLs ([RFC5280], Section 5). The signature is computed over the CBOR Sequence [RFC8742] TBSCertList; no ASN.1 encoding is involved. Three key improvements are made over [RFC5280]: - Reduce the search complexity for a given certificate serial number from O(n) to O(log(n)): o Replace the implicit certificateIssuer mechanism with explicit per-issuer grouping. o Use a dedicated list for the removeFromCRL revocation entries. o Use fixed-length entry encoding. Liao, et al. Expires 6 May 2027 [Page 6] Internet-Draft C509 Revocation November 2026 - Define a new standalone C509CRLInfo structure to carry CRL information without the (large) revocation list itself. - Define dedicated fields for the common extensions to simplify the encoding: crlNumber, authorityKeyIdentifier, deltaCRLIndicator. * *C509 OCSP* -- a CBOR encoding of OCSP requests and responses ([RFC6960]). The encoding compresses common fields while preserving semantic equivalence. Four key improvements are made over [RFC6960]: - The signature in signed requests and responses is computed over a wider set of fields than in [RFC6960], including the signature algorithm and the certificate chain, preventing algorithm-substitution and certificate-chain substitution attacks. - Certificate serial numbers in requests and responses are replaced by hashes (serialNumberHash), providing privacy against passive observers who do not already know the queried serial numbers. - The issuer is identified by a single hash over the issuer certificate (issuerCertHash) rather than by the two-hash CertID, reducing per-issuer overhead. - All participants (requestor, responder, issuer) are identified by a hash over their certificate (requestorCertHash, responderCertHash, issuerCertHash) rather than by a plaintext Subject distinguished name or SubjectKeyIdentifier, avoiding structural CHOICE types such as the X.509 ResponderID (byName or byKey) and simplifying support for different certificate types (e.g., C509, X.509, or future types) because the same hash applies regardless of the certificate encoding. The CRL and OCSP structures defined in this document are certificate- type agnostic: they can be used with C509 certificates, X.509 certificates, or any future certificate type without modification; see Section 7.6. C509 CRL and C509 OCSP apply the same compression techniques as C509 certificates: static fields are elided, OIDs are replaced with short integers, time values are compressed to POSIX timestamps, and redundant encoding is removed. Implementers may use the CBOR playground [CborMe] to inspect encoded examples. Liao, et al. Expires 6 May 2027 [Page 7] Internet-Draft C509 Revocation November 2026 C509 CRL and C509 OCSP are not wire-format-compatible with their DER- encoded counterparts defined in [RFC5280] and [RFC6960]. Systems that use C509 CRL or C509 OCSP must explicitly support these CBOR- encoded formats; they cannot be transparently substituted for or derived from the corresponding DER-encoded structures. C509 CRL and C509 OCSP are designed to be compatible with certificate profiles for constrained deployments, such as [RFC7925]. 2. Alternative Certificate Status Checking Mechanisms This section considers both widely deployed certificate-status mechanisms and closely related prior work for constrained environments. Several such mechanisms can be used to check certificate status, but none of them replaces the work in this document. * *X.509 CRLs and OCSP* ([RFC5280], [RFC6960]) provide the baseline revocation mechanisms, but their DER encodings are not compact enough for constrained deployments and are not certificate-type agnostic. This document keeps their semantics while defining CBOR encodings that are smaller and easier to process. * *OCSP stapling* ([RFC6066], [RFC9846]) reduces client latency by having the server provide a fresh OCSP response, but it does not define a revocation status format of its own. It still depends on the underlying OCSP message structure, so it cannot replace a compact, standalone status representation. * *Short-lived certificates* reduce reliance on revocation, but they do not provide revocation status when certificates must remain valid for longer periods or must be withdrawn immediately after compromise. They also shift the problem to more frequent issuance and renewal rather than eliminating status checking. * *CRLSets* [CRLSets] are a browser-distributed revocation blocklist rather than a general-purpose revocation protocol. They cover only a limited subset of certificates and are tied to a specific browser ecosystem, so they cannot provide complete, interoperable status checking for arbitrary C509, X.509, or future certificate types. Liao, et al. Expires 6 May 2027 [Page 8] Internet-Draft C509 Revocation November 2026 * *CRLite* [CRLite] compresses revocation information into a browser-oriented filter-based representation, which is useful for client-side deployment at scale. However, it is not a wire-format replacement for CRLs or OCSP, does not preserve the full per- certificate status structures defined here, and is not a certificate-type-agnostic status format that other implementations can exchange directly. * *Compact CBOR revocation for IoT (TinyOCSP and CCRL)* [TinyOCSP] are prior research mechanisms that reduce OCSP and CRL overhead for low-power IoT, confirming the feasibility and benefits of CBOR-based revocation on constrained hardware. They are a precursor to this work. However, they were specified as point solutions rather than as interoperable, certificate-type-agnostic wire formats aligned with the C509 certificate encoding [I-D.ietf-cose-cbor-encoded-cert]; this document generalizes those mechanisms into complete C509 CRL and C509 OCSP structures usable with C509, X.509, and future certificate types. The compactness benefit over the DER-encoded baselines is concrete and substantial. For the representative profiles in the worked examples (Appendix A), C509 CRLs are 18% to 52% smaller than the equivalent X.509 CRLs (for example, a CRL carrying revoked certificates is reduced from 335 to 177 bytes, a 47% reduction), and C509 OCSP messages are 40% to 73% smaller (for example, a Simple OCSP request from 150 to 51 bytes, and a Basic OCSP response without the responder's certificate from 837 to 248 bytes); see Table 14. These alternatives are useful in specific deployments, but they do not provide the CBOR-based, certificate-type-agnostic revocation structures defined here for C509, X.509, and future certificate types. 3. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. This document uses the terminology from [RFC5280], [RFC6960], [RFC7228], [RFC8610], [RFC8742], [RFC8949], and [RFC9682]. Unless otherwise stated, "CBOR" refers to deterministically encoded CBOR as specified in Sections 4.2.1 and 4.2.2 of [RFC8949]. Liao, et al. Expires 6 May 2027 [Page 9] Internet-Draft C509 Revocation November 2026 4. Common Types The following types are imported from [I-D.ietf-cose-cbor-encoded-cert]: Name, Extension, Extensions, Defined, COSE_C509, and AlgorithmIdentifier. Additionally, the following type is imported from [RFC9360]: COSE_X509. This document further defines the following constrained aliases for use in all CDDL definitions: uint8 = uint .le 255 uint32 = 0..4294967295 ; 2^32 - 1 uint63 = 0..9223372036854775807 ; 2^63 - 1 int16 = -32768..32767 IntAlgorithmIdentifier = int16 IntExtension = ( extensionID: IntExtensionID, extensionValue: Defined ) IntExtensionID = 1..9223372036854775807 / ; 2^32 - 1 -9223372036854775807..-1 ; -(2^32 - 1) IntExtensions = [ * IntExtension ] The CDDL definitions in this document are split into three files: c509common.cddl (the definitions above), c509crl.cddl (Section 6), and c509ocsp.cddl (Section 7). Both c509crl.cddl and c509ocsp.cddl depend on c509common.cddl and on the types imported from [I-D.ietf-cose-cbor-encoded-cert] and [RFC9360]. IntAlgorithmIdentifier is the int-only instantiation of AlgorithmIdentifier from [I-D.ietf-cose-cbor-encoded-cert]. It is used throughout this document wherever an algorithm identifier appears in the wire encoding. IntExtension is the instantiation of Extension from [I-D.ietf-cose-cbor-encoded-cert] with an integer extensionID. As in C509 certificates ([I-D.ietf-cose-cbor-encoded-cert], Section 3.1.10), the absolute value of extensionID is the value from the "C509 Extensions" registry, and its sign indicates whether the extension is critical: critical extensions are encoded with a negative sign and non-critical extensions with a positive sign. It is used throughout this document wherever a single extension appears in the wire encoding. Liao, et al. Expires 6 May 2027 [Page 10] Internet-Draft C509 Revocation November 2026 IntExtensions is the instantiation of Extensions from [I-D.ietf-cose-cbor-encoded-cert] where all embedded Extension entries are IntExtension entries. An IntExtensions field with no extensions is encoded as an empty array. 5. Encoding of Time Fields Time fields are encoded as unwrapped CBOR epoch-based date/time (~time). The value MUST be a non-negative integer. In POSIX time [POSIX], leap seconds are ignored; a leap second has the same POSIX time as the second before it. 6. C509 CRL 6.1. Overview A C509 CRL is a natively signed CBOR [RFC8949] encoding of an X.509 v2 CRL as defined in [RFC5280], Section 5. The signature is computed over the CBOR Sequence [RFC8742] TBSCertList; no ASN.1 encoding is involved. A C509 CRL preserves the semantics of the corresponding DER-encoded X.509 CRL for the subset of RFC 5280 structures supported by this document. A C509 CRL is not wire-format-compatible with a DER-encoded X.509 CRL. The two formats cannot be mechanically converted to or from each other without semantic interpretation of the contained data. 6.2. C509 CRL CDDL The following CDDL defines the top-level C509CRL structure and the TBSCertList sequence: Liao, et al. Expires 6 May 2027 [Page 11] Internet-Draft C509 Revocation November 2026 C509CRL = [ TBSCertList, signatureValue : any, ] TBSCertList = ( CRLInfoData, revokedCertsList : [+ PerIssuerRevokedCerts] / null ) C509CRLInfo = [ CRLInfoData ] CRLInfoData = ( crlType : 0, ; int16 signatureAlgorithm : IntAlgorithmIdentifier, authoritySubject : Name / #6.121(bytes), authorityKeyIdentifier : bytes, crlNumber : CRLNumber, thisUpdate : ~time, nextUpdate : uint63 / null, baseCrlNumber : CRLNumber / null, crlExtensions : IntExtensions, ) CRLNumber = 1..9223372036854775807 PerIssuerRevokedCerts = ( issuer : Name / #6.121(bytes) / null, revokedCertsControl : RevokedCertsControl / null, extensions : IntExtensions, revokedCerts : bytes .size (1..2147483647) / null, removedFromCRLCerts : bytes .size (1..2147483647) / null, ) RevokedCertsControl = [ flags : uint32, serialNumberLength : 1..20, dateLength : uint .le 8, baseDate : ~time, ] Figure 1: CDDL for C509CRL 6.3. Field Encodings Liao, et al. Expires 6 May 2027 [Page 12] Internet-Draft C509 Revocation November 2026 6.3.1. CRLInfoData and C509CRLInfo CRLInfoData is a CDDL group that carries all CRL fields except revokedCertsList. C509CRLInfo is the standalone CBOR array form of CRLInfoData; it can be used to convey CRL information (crlType, signature algorithm, issuer identity, CRL number, validity window, base CRL number, extensions) without the potentially large revocation list. TBSCertList embeds CRLInfoData and adds revokedCertsList. 6.3.2. crlType The crlType field serves as the discriminator for C509CRL: +=======+=========+ | Value | Type | +=======+=========+ | 0 | C509CRL | +-------+---------+ Table 1: CRL types Future specifications may define additional types by assigning new integer values. 6.3.3. signatureAlgorithm Encoded identically to the int choice of issuerSignatureAlgorithm in C509 certificates (see [I-D.ietf-cose-cbor-encoded-cert], Section 3.1.3). Algorithm integer values are from the same registry used for C509 certificates. Unlike in [RFC5280], where the signature algorithm appears outside the TBSCertList and is therefore not covered by the CRL signature, signatureAlgorithm is part of CRLInfoData within TBSCertList and is therefore covered by the signature. This prevents algorithm- substitution attacks on the CRL. 6.3.4. authoritySubject and authorityKeyIdentifier The authoritySubject and authorityKeyIdentifier fields identify the CRL authority. The authoritySubject field identifies the subject of the CRL issuer. When the CRL is issued by a C509 CA, authoritySubject is a Name value identical to the subject field of the authority C509 certificate. When the CRL is issued by an X.509 CA (e.g., in a hybrid deployment where a legacy CA issues a C509-format CRL), authoritySubject is encoded as #6.121(bytes) (tag 121 is alternative 0), where the byte Liao, et al. Expires 6 May 2027 [Page 13] Internet-Draft C509 Revocation November 2026 string contains the DER-encoded Name from the subject field of the issuing X.509 CA certificate ([X.690]). Since the Name structure may also be bytes, the DER-encoded subject is wrapped in a 121-tagged structure. The authorityKeyIdentifier field is identical to the value of the authority's subjectKeyIdentifier extension. This field corresponds to the X.509 CRL extension authorityKeyIdentifier ([RFC5280], Section 5.2.1). It is promoted to a dedicated field because it MUST be present in conforming X.509 CRLs and because making it explicit simplifies the structure and reduces encoded size compared to representing it as a generic extension. 6.3.5. crlNumber The crlNumber field is encoded as a positive integer (CRLNumber, from 1 to 2^63 - 1). It corresponds to the cRLNumber extension in [RFC5280], Section 5.2.3, which this document replaces with a dedicated field. The value is monotonically increasing for both full and delta CRLs. 6.3.6. thisUpdate and nextUpdate The thisUpdate field is encoded as described in Section 5. The nextUpdate field is encoded as a uint63 representing the number of seconds from thisUpdate until the next CRL is expected to be issued. It is encoded as null when no next update time is known. 6.3.7. baseCrlNumber The baseCrlNumber field is encoded as null for a full CRL. For a delta CRL, it contains the CRL number of the corresponding base full CRL. It corresponds to the deltaCRLIndicator extension in [RFC5280], Section 5.2.4, which this document replaces with a dedicated field. 6.3.8. reasonCode Encoding The reasonCode ENUMERATED value is encoded as one unsigned byte. The byte values are aligned with the ENUMERATED values of the CRLReason type defined in [RFC5280], Section 5.3.1; a C509 revocationReason byte value equals the corresponding ASN.1 ENUMERATED integer value for the same reason code. Liao, et al. Expires 6 May 2027 [Page 14] Internet-Draft C509 Revocation November 2026 +======+======================+ | Byte | reasonCode | +======+======================+ | 0x00 | unspecified | +------+----------------------+ | 0x01 | keyCompromise | +------+----------------------+ | 0x02 | cACompromise | +------+----------------------+ | 0x03 | affiliationChanged | +------+----------------------+ | 0x04 | superseded | +------+----------------------+ | 0x05 | cessationOfOperation | +------+----------------------+ | 0x06 | certificateHold | +------+----------------------+ | - | removeFromCRL | +------+----------------------+ | 0x09 | privilegeWithdrawn | +------+----------------------+ | 0x0A | aACompromise | +------+----------------------+ Table 2: reasonCode encoding removeFromCRL (enumeration value 0x08) is not encoded in revokedCerts. Certificates removed from the CRL are instead indicated in the removedFromCRLCerts field of PerIssuerRevokedCerts. 6.3.9. revokedCertsList and PerIssuerRevokedCerts 6.3.9.1. Design Considerations In X.509 CRLs ([RFC5280], Section 5.3.3), an indirect CRL uses the certificateIssuer CRL entry extension to indicate that a revocation entry -- and all subsequent entries -- belong to a different issuer. This mechanism has two significant drawbacks: * It is implicit and positional, making it difficult to parse correctly and error-prone to implement. * It is impossible to represent an issuer that has no currently revoked certificates (e.g., to carry per-issuer extensions or to explicitly indicate that the issuer is known but has an empty revocation list), because there is no entry to attach the certificateIssuer extension to. Liao, et al. Expires 6 May 2027 [Page 15] Internet-Draft C509 Revocation November 2026 PerIssuerRevokedCerts solves both problems by introducing an explicit intermediate structure that groups all revocation information for one issuer. The issuer is identified directly in the issuer field of the structure rather than being inferred from the position of a CRL entry extension. This makes the grouping unambiguous and easy to parse, and it allows an issuer to appear in the list even when it has no revoked certificates. A second design problem in X.509 CRLs is that each revocation entry has variable length because: * the serial number length differs between certificates, * the revocation date uses different encodings depending on whether the date falls before or after 2050, * optional per-entry extensions (e.g., reason code) may or may not be present. This variable-length layout makes it impossible to determine whether a given serial number is present in the list without scanning every entry sequentially, resulting in O(n) lookup time. In this document, the revokedCertsControl structure introduces fixed parameters (serialNumberLength, dateLength) that make every entry within revokedCerts exactly the same size. The flags field can additionally indicate that entries are sorted in ascending order by serial number, enabling binary search and reducing lookup time to O(log(n)). Using a compact byte-string concatenation rather than a CBOR array of structured items further reduces encoded size and accelerates parsing. Furthermore, certificates removed from the CRL (delta CRL removeFromCRL entries in X.509) are kept in a dedicated removedFromCRLCerts field rather than mixed into revokedCerts. This keeps revokedCerts free of removal noise, reducing its size and allowing implementations to process currently revoked and removed entries independently. 6.3.9.2. Fields The revokedCertsList field is either a CBOR array of one or more PerIssuerRevokedCerts entries, each describing the revocation state for certificates issued by one issuer, or CBOR null. Since PerIssuerRevokedCerts is a CDDL group, the fields of each entry are inlined in the array rather than wrapped in a nested array; an array with n entries therefore contains 5n elements. revokedCertsList MUST be encoded as CBOR null when all of the following conditions hold: no certificates are currently revoked, no certificates have been removed from the CRL, the only issuer that would appear is the CRL's own Liao, et al. Expires 6 May 2027 [Page 16] Internet-Draft C509 Revocation November 2026 authoritySubject (i.e., the issuer field is null), and there are no non-empty per-issuer extensions. Each PerIssuerRevokedCerts entry describes revoked certificates for one issuer using the following fields: * The issuer field identifies the issuer of the certificates covered by this PerIssuerRevokedCerts entry. When the issuer is a C509 CA, it is encoded as a Name value identical to the issuer field of the covered C509 certificates. When the issuer is an X.509 CA, it is encoded as #6.121(bytes) (tag 121 is alternative 0), where the byte string contains the DER-encoded Name from the issuer field of the covered X.509 certificates ([X.690]). If the issuer is identical to the CRL's authoritySubject field, it MUST be encoded as CBOR null. * The revokedCertsControl field defines the controls for interpreting removedFromCRLCerts and revokedCerts. If either removedFromCRLCerts or revokedCerts is non-null, revokedCertsControl MUST NOT be null. If both removedFromCRLCerts and revokedCerts are null, revokedCertsControl MUST be null to reduce CRL size. - The flags field is an unsigned integer encoding boolean control bits for crlType = 0: bit 0 indicates whether entries in revokedCerts are sorted in ascending order by the integer value of the certificate serial number; bit 1 indicates whether each entry contains a reason code. Bits greater than 1 are reserved for crlType = 0 and MUST be zero and MUST be ignored by receivers. Future crlType values defined in successor documents may assign additional bit meanings. - The serialNumberLength field defines the length, in bytes, of a certificate serial number. It MUST be greater than 0. It is the smallest value that can encode all certificate serial numbers without leading zeros. Each certificate serial number is encoded as a fixed-length big-endian integer of length serialNumberLength. If the encoded value is shorter than serialNumberLength, it is left- padded with zeros. - The dateLength field defines the length, in bytes, of the big- endian encoded revocation-date offset relative to baseDate. A value of 0 means that no revocation date is included in revokedCerts entries. This is permitted in C509-native deployments where the revocation date is not required -- for example, when minimizing revocation data is more important than Liao, et al. Expires 6 May 2027 [Page 17] Internet-Draft C509 Revocation November 2026 recording the revocation time. Implementations that need to convert a C509 CRL to an RFC 5280 DER-encoded CRL MUST set dateLength to a non-zero value, since [RFC5280], Section 5.1 requires a revocationDate in every CRL entry. When dateLength is non-zero, the offset MUST fit within the specified byte length without leading zero bytes. - The baseDate field is a reference time used to compute revocation and removal dates, encoded as described in Section 5. It MUST be greater than or equal to the issuer certificate's notBefore, which ensures that all stored offsets are non-negative. It is RECOMMENDED to set baseDate to the earliest revocation date and removal-from-CRL date among all entries in this CRL, as this minimizes the magnitude of stored offsets and reduces encoding size. Any time between the issuer certificate's notBefore (inclusive) and that earliest date (inclusive) is a conformant value. Revocation dates in revokedCerts and removal dates in removedFromCRLCerts are stored as non-negative offsets, in seconds, from baseDate. * The extensions field contains per-issuer extensions. * The revokedCerts field is a CBOR byte string containing the concatenated byte sequence of revoked-certificate entries. Each entry is the concatenation of: - a big-endian encoded certificate serial number of length serialNumberLength; - a big-endian encoded revocation-date offset from baseDate, in seconds, of length dateLength (absent when dateLength is 0); and - an optional reason code (1 byte if bit 1 of flags is set, absent otherwise). If there are no entries, this field MUST be encoded as CBOR null instead of a zero-length byte string. The revocation date for a given entry is recovered by adding the stored offset to baseDate. When dateLength is 0, no revocation date is stored and no date recovery is possible. Revoked-certificate entries have fixed length. If bit 0 of flags is set, entries are sorted in ascending order, enabling binary search for a given serial number in O(log(n)) time. Liao, et al. Expires 6 May 2027 [Page 18] Internet-Draft C509 Revocation November 2026 * The removedFromCRLCerts field contains a concatenated byte sequence of entries for certificates removed from the CRL since publication of the CRL with crlNumber = baseCrlNumber. Each entry is the concatenation of: - a big-endian encoded certificate serial number of length serialNumberLength; and - a big-endian encoded removal-date offset from baseDate, in seconds, of length dateLength (absent when dateLength is 0). If there are no entries, this field MUST be encoded as CBOR null instead of a zero-length byte string. The removal date for a given entry is recovered by adding the stored offset to baseDate. When dateLength is 0, no removal date is stored and no date recovery is possible. Removed-certificate entries have fixed length. If bit 0 of flags is set, entries are sorted in ascending order, enabling binary search for a given serial number in O(log(n)) time. 6.3.10. CRL Extensions The crlExtensions field contains extensions for the CRL. This document does not define any new CRL-level extensions. Table 3 lists X.509 CRL extensions and their equivalents. +====+==========================+==========+======================+ |Code| Extension |Reference |Equivalent | +====+==========================+==========+======================+ |- | authorityKeyIdentifier |[RFC5280],|field | | | |Section |authorityKeyIdentifier| | | |5.2.1 | | +----+--------------------------+----------+----------------------+ |- | issuerAltName |[RFC5280],|- | | | |Section | | | | |5.2.2 | | +----+--------------------------+----------+----------------------+ |- | cRLNumber |[RFC5280],|field crlNumber | | | |Section | | | | |5.2.3 | | +----+--------------------------+----------+----------------------+ |- | deltaCRLIndicator |[RFC5280],|field baseCrlNumber | | | |Section | | | | |5.2.4 | | +----+--------------------------+----------+----------------------+ Liao, et al. Expires 6 May 2027 [Page 19] Internet-Draft C509 Revocation November 2026 |- | issuingDistributionPoint |[RFC5280],|- | | | |Section | | | | |5.2.5 | | +----+--------------------------+----------+----------------------+ |- | freshestCRL |[RFC5280],|- | | | |Section | | | | |5.2.6 | | +----+--------------------------+----------+----------------------+ |- | authorityInfoAccess |[RFC5280],|- | | | |Section | | | | |5.2.7 | | +----+--------------------------+----------+----------------------+ |- | orderedList |OID |bit 0 of flags | | | |2.5.29.56 |(ascSerialNum); - | | | |(ITU-T |(ascRevDate) | | | |X.509, | | | | |Section | | | | |9.5.2.5) | | +----+--------------------------+----------+----------------------+ |- | toBeRevoked |OID |- | | | |2.5.29.58 | | | | |(ITU-T | | | | |X.509, | | | | |Section | | | | |9.5.2.6) | | +----+--------------------------+----------+----------------------+ |- | revokedGroups |OID |- | | | |2.5.29.59 | | | | |(ITU-T | | | | |X.509, | | | | |Section | | | | |9.5.2.7) | | +----+--------------------------+----------+----------------------+ Table 3: CRL extensions and their equivalents 6.3.11. Per-Issuer Extensions The extensions field of PerIssuerRevokedCerts contains per-issuer extensions. This document defines one per-issuer extension (expiredCertsOnCRL, see Section 6.3.11.1). Table 4 lists per-issuer extensions defined in this document. Liao, et al. Expires 6 May 2027 [Page 20] Internet-Draft C509 Revocation November 2026 +======+===================+=========================+============+ | Code | Extension | Reference | Equivalent | +======+===================+=========================+============+ | TBD4 | expiredCertsOnCRL | OID 2.5.29.60 (ITU-T | - | | | | X.509, Section 9.5.2.8) | | +------+-------------------+-------------------------+------------+ Table 4: Per-issuer extensions and their equivalents 6.3.11.1. expiredCertsOnCRL The expiredCertsOnCRL extension indicates that this CRL includes revocation information for certificates that have already expired. The extension value is a time value indicating the earliest expiration date of certificates included on the CRL; certificates that expired on or after this date are listed even if they are expired when the CRL is generated. The extension value MUST be encoded as follows. ExpiredCertsOnCRL = ~time The value is encoded as described in Section 5. When this extension is present, a relying party processing expired certificates (for example, for audit or archiving purposes) SHOULD use the indicated date to determine the extent of historical revocation coverage. 6.3.12. CRL Entry Extensions Table 5 lists X.509 CRL entry extensions. No corresponding extension is defined in this document. Liao, et al. Expires 6 May 2027 [Page 21] Internet-Draft C509 Revocation November 2026 +======+=====================+==============+=======================+ | Code | Extension | Reference | Equivalent | +======+=====================+==============+=======================+ | - | reasonCode | [RFC5280], | fields | | | | Section | removedFromCRLCerts | | | | 5.3.1 / | and revokedCerts | | | | ITU-T | | | | | X.509, | | | | | Section | | | | | 9.6.2.1 | | +------+---------------------+--------------+-----------------------+ | - | holdInstructionCode | [RFC3280], | - | | | | Section | | | | | 5.3.2 / | | | | | ITU-T | | | | | X.509, | | | | | Section | | | | | 9.6.2.2 | | +------+---------------------+--------------+-----------------------+ | - | invalidityDate | [RFC5280], | - | | | | Section | | | | | 5.3.2 / | | | | | ITU-T | | | | | X.509, | | | | | Section | | | | | 9.6.2.3 | | +------+---------------------+--------------+-----------------------+ | - | certificateIssuer | [RFC5280], | field issuer within | | | | Section | PerIssuerRevokedCerts | | | | 5.3.3 / | | | | | ITU-T | | | | | X.509, | | | | | Section | | | | | 9.6.2.4 | | +------+---------------------+--------------+-----------------------+ Table 5: CRL entry extensions defined for X.509 CRLs 6.3.13. signatureValue Encoded identically to signatureValue in C509 certificates (see [I-D.ietf-cose-cbor-encoded-cert], Section 3.1.12). 6.4. PEM Representation The CBOR-encoded C509CRL is first Base64-encoded and then wrapped between "-----BEGIN C509 CRL-----" and "-----END C509 CRL-----", following the framework of [RFC7468]. Liao, et al. Expires 6 May 2027 [Page 22] Internet-Draft C509 Revocation November 2026 -----BEGIN C509 CRL----- (base64-encoded CBOR C509CRL) -----END C509 CRL----- Figure 2: C509 CRL PEM Encoding 7. C509 OCSP 7.1. Overview C509 OCSP defines CBOR encodings for OCSP requests and OCSP responses as defined in [RFC6960]. The encoding follows the same compression principles as C509 CRL and C509 certificates. C509 OCSP requests and responses are not wire-format-compatible with DER-encoded OCSP messages as defined in [RFC6960]. The two formats cannot be mechanically converted to or from each other without semantic interpretation of the contained data. C509OCSPRequest and C509OCSPResponse are designed to be extensible. The first field of every message is ocspRequestType or ocspResponseType, an integer that identifies the structure type. Future specifications may define additional types by assigning new integer values, enabling new request or response structures to be introduced without modifying the existing types. 7.2. Hash Algorithms The hashAlgorithm field of C509 OCSP requests and responses identifies the hash algorithm used to compute all hashes within the enclosing structure. Its value is the integer identifier of a hash algorithm from the "COSE Algorithms" registry [IANA.cose], e.g., -16 for SHA-256, -43 for SHA-384, and -44 for SHA-512 [RFC9054]. Any hash algorithm in that registry can be used, subject to the restrictions below; for example, SHA3-256 or SM3 can be used once they are registered. Liao, et al. Expires 6 May 2027 [Page 23] Internet-Draft C509 Revocation November 2026 The hash algorithm MUST produce an output of at least 20 bytes, so that HashId20 values can be derived (see Section 7.3). Consequently, SHA-256/64 (-15) MUST NOT be used. Other truncated hash algorithms, such as SHA-512/256 (-17), SHOULD NOT be used: this document already defines the truncated identifiers HashId8 and HashId20, so using a truncated hash algorithm provides no benefit. SHA-1 (-14) MUST NOT be used either, since it is not collision resistant. For SHAKE128 (-18) and SHAKE256 (-45), the output length is as specified in [RFC9054], i.e., 256 and 512 bits, respectively. For an extendable- output function whose output length is not fixed by its registration, such as TurboSHAKE128 (-261) and TurboSHAKE256 (-262) [RFC9861], the output length is the length of the identifier being computed, i.e., 8 bytes for HashId8 and 20 bytes for HashId20. 7.3. Identification of Certificates To reduce OCSP message size, this document defines two truncated-hash identifier types used to refer to certificates compactly: * HashId8: the leading 8 bytes of the hash value computed using the enclosing hashAlgorithm. HashId8 is used to identify issuer certificates and the certificates of OCSP requestors and responders in request and response structures where a short identifier provides sufficient uniqueness in the deployment context. * HashId20: the leading 20 bytes of the hash value computed using the enclosing hashAlgorithm. HashId20 is intended for identifying certificate serial numbers (the serialNumberHash field) when higher uniqueness is required to minimize collision risk. When derived from a secure hash (e.g., SHA-256 or SHA3-256) and treated as a random output, it gives ~2^160 preimage work and ~2^80 collision resistance (birthday bound) for the truncated value. Since the relying party verifies a certificate's signature before querying OCSP, an adversary needs to construct a different certificate that (a) validates under the same issuer chain and (b) has a serial number whose hash truncation equals an existing certificate's HashId20. Such a construction is practically infeasible. HashId8 = bytes .size 8 HashId20 = bytes .size 20 Liao, et al. Expires 6 May 2027 [Page 24] Internet-Draft C509 Revocation November 2026 HashId20 is used to carry the hash of the certificate serial number of the target certificate, computed using the hashAlgorithm of the enclosing structure. The serial number is encoded in big-endian byte order without a leading zero byte (as in C509 certificates) before hashing. In X.509, a CertificateSerialNumber INTEGER is DER-encoded with a leading zero byte when the most-significant bit is set; that leading zero MUST be stripped before computing the hash. Using a hash rather than the plain serial number preserves the privacy of the requestor: an observer cannot determine which certificate is being queried without already knowing the serial number. 7.4. C509 OCSP Request 7.4.1. CDDL C509OCSPRequest = C509UnsignedOCSPRequest / C509SignedOCSPRequest / C509SimpleOCSPRequest C509UnsignedOCSPRequest = [ ocspRequestType : 0, ; int16 hashAlgorithm : IntAlgorithmIdentifier, nonce : bytes .size (16..32) / null, extensions : IntExtensions, requests : PerIssuerOCSPRequests ] TBSOCSPRequest = ( ocspRequestType : 1, ; int16 signatureAlgorithm : IntAlgorithmIdentifier, hashAlgorithm : IntAlgorithmIdentifier, nonce : bytes .size (16..32) / null, requestorCertHash : HashId8, extensions : IntExtensions, requests : PerIssuerOCSPRequests, requestorCerts : COSE_C509 / #6.121(COSE_X509) / null, ) C509SignedOCSPRequest = [ TBSOCSPRequest, signatureValue : any, ] C509SimpleOCSPRequest = [ ocspRequestType : 2, ; int16 hashAlgorithm : IntAlgorithmIdentifier, Liao, et al. Expires 6 May 2027 [Page 25] Internet-Draft C509 Revocation November 2026 nonce : bytes .size (16..32) / null, issuerCertHash : HashId8, serialNumberHash : HashId20, extensions : IntExtensions ] PerIssuerOCSPRequests = [ + PerIssuerOCSPRequest ] PerIssuerOCSPRequest = ( issuerCertHash : HashId8, extensions : IntExtensions, singleRequests : SingleCertRequests, ) SingleCertRequests = [ + SingleCertRequest ] SingleCertRequest = ( serialNumberHash : HashId20, extensions : IntExtensions, ) Figure 3: CDDL for C509OCSPRequest 7.4.2. Field Encodings 7.4.2.1. ocspRequestType The ocspRequestType field serves as the discriminator for C509OCSPRequest: +=======+=========================+ | Value | Type | +=======+=========================+ | 0 | C509UnsignedOCSPRequest | +-------+-------------------------+ | 1 | C509SignedOCSPRequest | +-------+-------------------------+ | 2 | C509SimpleOCSPRequest | +-------+-------------------------+ Table 6: OCSP request types 7.4.2.2. issuerCertHash The issuerCertHash field appears in PerIssuerOCSPRequest, PerIssuerOCSPResponse, C509SimpleOCSPRequest, and TBSSimpleOCSPResponse. It contains a hash of the issuer certificate: Liao, et al. Expires 6 May 2027 [Page 26] Internet-Draft C509 Revocation November 2026 * issuerCertHash: hash computed over the deterministically encoded certificate, i.e., the CBOR-encoded C509Certificate or the DER- encoded ([X.690]) X.509 certificate. For a CBOR re-encoded X.509 certificate (c509CertificateType = 3, see [I-D.ietf-cose-cbor-encoded-cert], Section 3.1.1), the hash MUST be computed over the DER-encoded X.509 certificate, not over its C509 encoding, since such a certificate may have more than one conformant CBOR encoding (see [I-D.ietf-cose-cbor-encoded-cert], Section 3.4). The hash algorithm is specified by the hashAlgorithm field of the enclosing request or response structure. In X.509 OCSP ([RFC6960], Section 4.1.1), the CertID structure identifies the issuer using two separate hashes: issuerNameHash (a hash of the DER-encoded issuer name) and issuerKeyHash (a hash of the issuer's public key bit string). This two-hash approach was designed for interoperability with DER-encoded X.509 structures, but it doubles the per-issuer overhead in the message. In C509 OCSP, the issuer is identified by a single hash of the issuer certificate (issuerCertHash), which is simpler, smaller, and unambiguous. Implementations that need to cross-reference a C509 issuerCertHash with an RFC 6960 DER-encoded CertID must recompute the respective hash inputs; the values are not directly comparable. 7.4.2.3. PerIssuerOCSPRequests, PerIssuerOCSPRequest, SingleCertRequests and SingleCertRequest PerIssuerOCSPRequests is a list of PerIssuerOCSPRequest entries. In X.509 OCSP ([RFC6960], Section 4.1.1), every Request entry embeds a full CertID containing the issuer identity fields (hashAlgorithm, issuerNameHash, issuerKeyHash) alongside the serialNumber. When multiple certificates from the same issuer are queried in a single request, these issuer fields are repeated verbatim for every entry, wasting space. PerIssuerOCSPRequest solves this by grouping all single-certificate requests for the same issuer under one entry: the issuerCertHash field is encoded once and shared across all SingleCertRequest entries in the singleRequests list, eliminating the per-entry duplication. Since PerIssuerOCSPRequest and SingleCertRequest are CDDL groups, the fields of each entry are inlined in the enclosing array rather than wrapped in a nested array. * The extensions field contains per-issuer extensions that apply to all single-certificate requests in this PerIssuerOCSPRequest entry; see Section 7.5.2.12. * The singleRequests field is a list of SingleCertRequest entries for certificates from this issuer. Liao, et al. Expires 6 May 2027 [Page 27] Internet-Draft C509 Revocation November 2026 Each SingleCertRequest contains: * The serialNumberHash field is the truncated hash of the certificate serial number of the target certificate, computed using the hashAlgorithm of the enclosing request structure. The serial number is encoded in big-endian byte order without a leading zero byte (as in C509 certificates) before hashing. Using a hash rather than the plain serial number preserves the privacy of the requestor: an observer cannot determine which certificate is being queried without already knowing the serial number. * The extensions field contains extensions for the single request; see Section 7.5.2.13. 7.4.2.4. C509UnsignedOCSPRequest * The ocspRequestType field MUST be 0. * The hashAlgorithm field specifies the hash algorithm used to compute issuerCertHash and serialNumberHash. The algorithm is encoded as specified in Section 7.2. * The nonce field contains the request nonce, or MUST be null when no nonce is present. The nonce MUST be generated by a cryptographically strong pseudorandom number generator and MUST be between 16 and 32 bytes long. An OCSP server MUST reject a request whose nonce is shorter than 16 bytes or longer than 32 bytes by returning a C509ErrorOCSPResponse with responseStatus set to malformedRequest (1). * The extensions field contains request-level extensions; see Section 7.5.2.13. * The requests field is a list of PerIssuerOCSPRequest entries, each grouping target certificates by issuer; see Section 7.4.2.3. 7.4.2.5. C509SignedOCSPRequest * The ocspRequestType field MUST be 1. * The signatureAlgorithm field specifies the signature algorithm, as defined in [I-D.ietf-cose-cbor-encoded-cert], Section 3.1.3. * The hashAlgorithm field specifies the hash algorithm used to compute requestorCertHash, issuerCertHash, and serialNumberHash. The algorithm is encoded as specified in Section 7.2. Liao, et al. Expires 6 May 2027 [Page 28] Internet-Draft C509 Revocation November 2026 * The nonce field is as defined for C509UnsignedOCSPRequest (Section 7.4.2.4). * The requestorCertHash field is a hash of the signer's certificate, computed using hashAlgorithm. When requestorCerts is not null, it carries the corresponding certificate chain so that the receiver can verify the identity of the requestor. * The extensions field contains request-level extensions; see Section 7.5.2.13. * The requests field is as defined for C509UnsignedOCSPRequest (Section 7.4.2.4). * The requestorCerts field contains a sorted certificate chain starting with the signer's certificate, or MUST be null if no certificates are transported. When the signer holds a C509 certificate chain, the value is COSE_C509. When the signer holds an X.509 certificate chain, the value is #6.121(COSE_X509), wrapping a COSE_X509 chain with CBOR tag 121 (alternative 0). * The signatureValue field is the signature computed over the CBOR Sequence of the TBSOCSPRequest group. 7.4.2.6. C509SimpleOCSPRequest C509SimpleOCSPRequest is a compact request format for querying the status of a single certificate. Unlike C509UnsignedOCSPRequest, which uses a two-level PerIssuerOCSPRequests / SingleCertRequest grouping to batch multiple serial numbers across one or more issuers, C509SimpleOCSPRequest flattens the structure into a single CBOR array for the common case of a one-certificate query. * The ocspRequestType field MUST be 2. * The hashAlgorithm field specifies the hash algorithm used to compute issuerCertHash and serialNumberHash. The algorithm is encoded as specified in Section 7.2. * The nonce field is as defined for C509UnsignedOCSPRequest (Section 7.4.2.4). * The issuerCertHash field identifies the issuer of the target certificate; see Section 7.4.2.2. * The serialNumberHash field is the hash of the certificate serial number of the target certificate, computed as in Section 7.3. Liao, et al. Expires 6 May 2027 [Page 29] Internet-Draft C509 Revocation November 2026 * The extensions field contains request-level extensions; see Section 7.5.2.13. 7.4.3. PEM Representation The CBOR-encoded C509 OCSP request is first Base64-encoded and then wrapped between "-----BEGIN C509 OCSP REQUEST-----" and "-----END C509 OCSP REQUEST-----", following the framework of [RFC7468]. -----BEGIN C509 OCSP REQUEST----- (base64-encoded CBOR C509 OCSP Request) -----END C509 OCSP REQUEST----- Figure 4: C509 OCSP Request PEM Encoding 7.5. C509 OCSP Response 7.5.1. CDDL C509OCSPResponse = C509ErrorOCSPResponse / C509BasicOCSPResponse / C509SimpleOCSPResponse C509ErrorOCSPResponse = [ ocspResponseType : 0, ; int16 responseStatus : -128..127 ] TBSBasicOCSPResponse = ( ocspResponseType : 1, ; int16 signatureAlgorithm : IntAlgorithmIdentifier, hashAlgorithm : IntAlgorithmIdentifier, nonce : bytes .size (16..32) / null, responderCertHash : HashId8, producedAt : ~time, extensions : IntExtensions, responses : PerIssuerOCSPResponses, responderCerts : COSE_C509 / #6.121(COSE_X509) / null, ) C509BasicOCSPResponse = [ TBSBasicOCSPResponse, signatureValue : any ] TBSSimpleOCSPResponse = ( ocspResponseType : 2, ; int16 signatureAlgorithm : IntAlgorithmIdentifier, Liao, et al. Expires 6 May 2027 [Page 30] Internet-Draft C509 Revocation November 2026 hashAlgorithm : IntAlgorithmIdentifier, nonce : bytes .size (16..32) / null, responderCertHash : HashId8, issuerCertHash : HashId8, serialNumberHash : HashId20, certStatus : CertStatus, producedAt : ~time, thisUpdate : nint / 0, nextUpdate : uint63 / null, extensions : IntExtensions, responderCerts : COSE_C509 / #6.121(COSE_X509) / null, ) C509SimpleOCSPResponse = [ TBSSimpleOCSPResponse, signatureValue : any ] PerIssuerOCSPResponses = [ + PerIssuerOCSPResponse ] PerIssuerOCSPResponse = ( issuerCertHash : HashId8, extensions : IntExtensions, singleResponses : SingleCertResponses, ) SingleCertResponses = [ + SingleCertResponse ] SingleCertResponse = ( serialNumberHash : HashId20, certStatus : CertStatus, thisUpdate : nint / 0, nextUpdate : uint63 / null, extensions : IntExtensions, ) CertStatus = 0 ; good / 1 ; not-issued (issuer recognized, ; serial number not issued) / 2 ; unknown (issuer not recognized) / RevokedInfo RevokedInfo = [ revocationTime : ~time, revocationReason : uint8, ] Figure 5: CDDL for C509OCSPResponse Liao, et al. Expires 6 May 2027 [Page 31] Internet-Draft C509 Revocation November 2026 7.5.2. Field Encodings 7.5.2.1. C509ErrorOCSPResponse If the OCSP server cannot process the OCSP query, it returns a C509ErrorOCSPResponse. The ocspResponseType value MUST be 0, and responseStatus has the following enumerated values, as in [RFC6960], Section 4.2.1: +=====+==================+ | int | responseStatus | +=====+==================+ | - | successful | +-----+------------------+ | 1 | malformedRequest | +-----+------------------+ | 2 | internalError | +-----+------------------+ | 3 | tryLater | +-----+------------------+ | 5 | sigRequired | +-----+------------------+ | 6 | unauthorized | +-----+------------------+ Table 7: responseStatus values 7.5.2.2. C509BasicOCSPResponse The ocspResponseType field of C509BasicOCSPResponse is 1, distinguishing it from C509ErrorOCSPResponse. It corresponds to BasicOCSPResponse in [RFC6960]. TBSBasicOCSPResponse is the group of fields to be signed. The signatureValue field is the only field outside the signed group. Covering signatureAlgorithm and responderCerts within the signed content prevents algorithm-substitution and certificate-chain substitution attacks; this design goes beyond the protections offered by the DER-encoded BasicOCSPResponse defined in [RFC6960]. Liao, et al. Expires 6 May 2027 [Page 32] Internet-Draft C509 Revocation November 2026 7.5.2.3. C509SimpleOCSPResponse C509SimpleOCSPResponse is a compact signed response for a single- certificate status query. It is the response counterpart to C509SimpleOCSPRequest (see Section 7.4.2.6). Unlike C509BasicOCSPResponse, which uses a two-level PerIssuerOCSPResponses / SingleCertResponse grouping to carry status for multiple certificates across one or more issuers, C509SimpleOCSPResponse flattens the structure into a single signed CBOR array for the common case of a one-certificate response. TBSSimpleOCSPResponse is the group of fields to be signed. The signatureValue field is the only field outside the signed group. Covering signatureAlgorithm, responderCertHash, and responderCerts within the signed content prevents algorithm-substitution and certificate-chain substitution attacks. * The ocspResponseType field MUST be 2, which discriminates C509SimpleOCSPResponse from C509ErrorOCSPResponse and C509BasicOCSPResponse. * The signatureAlgorithm field specifies the signature algorithm, as defined in [I-D.ietf-cose-cbor-encoded-cert], Section 3.1.3. It is part of TBSSimpleOCSPResponse and is therefore covered by the signature. * The hashAlgorithm field specifies the hash algorithm used to compute responderCertHash, issuerCertHash, and serialNumberHash. The algorithm is encoded as specified in Section 7.2. * The nonce field contains the request nonce, or MUST be null when no nonce is present. If present, it MUST have the same value as the nonce in the corresponding C509SimpleOCSPRequest. * The responderCertHash field identifies the OCSP responder; see Section 7.5.2.5. * The issuerCertHash field identifies the issuer of the queried certificate; see Section 7.4.2.2. * The serialNumberHash field is the hash of the certificate serial number of the target certificate, computed as in Section 7.3. * The certStatus field encodes the revocation status; see Section 7.5.2.11. * The producedAt field is the time at which this response was produced, encoded as described in Section 5. Liao, et al. Expires 6 May 2027 [Page 33] Internet-Draft C509 Revocation November 2026 * The thisUpdate field is encoded as a non-positive integer (nint / 0) representing the number of seconds from producedAt at which the indicated status is known to be correct. It MUST be 0 or negative, since the status cannot be known at a time in the future relative to the time the response was produced. * The nextUpdate field is encoded as a uint63 representing the number of seconds from producedAt until the next response update is expected, or null if the update time is unknown. * The extensions field contains response-level extensions; see Section 7.5.2.13. * The responderCerts field carries the certificate chain starting with the responder certificate identified by responderCertHash; see Section 7.5.2.6. * The signatureValue field is the signature computed over the CBOR Sequence of the TBSSimpleOCSPResponse group. 7.5.2.4. nonce If present, this field MUST have the same value as the nonce in the corresponding request. 7.5.2.5. responderCertHash responderCertHash is a truncated hash over the responder's certificate, computed using the same hashAlgorithm as issuerCertHash. In X.509 OCSP ([RFC6960]), the responder is identified by a ResponderID CHOICE that carries either a distinguished name or a public-key hash. C509 OCSP replaces this with a single hash over the entire responder certificate, which is consistent with the issuerCertHash design for issuer identification. 7.5.2.6. responderCerts When present, the responderCerts field carries the certificate chain starting with the responder certificate identified by responderCertHash. When the responder holds a C509 certificate chain, the value is COSE_C509. When the responder holds an X.509 certificate chain, the value is #6.121(COSE_X509), wrapping a COSE_X509 chain with CBOR tag 121 (alternative 0). The field is part of TBSBasicOCSPResponse or TBSSimpleOCSPResponse and is therefore covered by the signature, which prevents certificate-chain substitution attacks. Liao, et al. Expires 6 May 2027 [Page 34] Internet-Draft C509 Revocation November 2026 7.5.2.7. signatureAlgorithm and signatureValue * signatureAlgorithm: the signature algorithm used to compute signatureValue, as defined in [I-D.ietf-cose-cbor-encoded-cert], Section 3.1.3. It is part of the TBSBasicOCSPResponse or TBSSimpleOCSPResponse group and is therefore covered by the signature. * signatureValue: the signature computed over the CBOR Sequence of the TBSBasicOCSPResponse or TBSSimpleOCSPResponse group. 7.5.2.8. producedAt, thisUpdate, nextUpdate The producedAt field is encoded as described in Section 5. The thisUpdate field is encoded as a non-positive integer (nint / 0) representing the number of seconds from producedAt at which the indicated status is known to be correct; it MUST be 0 or negative, since the status cannot be known at a time in the future relative to when the response was produced. The nextUpdate field is encoded as a uint63 representing the number of seconds from producedAt until the next update is expected to be available. nextUpdate may be null, which indicates an unknown update time. 7.5.2.9. extensions See Section 7.5.2.13. 7.5.2.10. PerIssuerOCSPResponses and PerIssuerOCSPResponse PerIssuerOCSPResponses is a list of PerIssuerOCSPResponse entries. For the same reason as on the request side (see Section 7.4.2.3), the issuerCertHash field is encoded once per issuer and shared across all SingleCertResponse entries in the singleResponses list, avoiding the per-entry repetition that would occur if the issuer identity were embedded in every individual response entry. PerIssuerOCSPResponse groups single responses for certificates issued by the same issuer; the issuer is identified by issuerCertHash (see Section 7.4.2.2). As on the request side, PerIssuerOCSPResponse and SingleCertResponse are CDDL groups whose fields are inlined in the enclosing array. * The extensions field contains per-issuer extensions that apply to all single-certificate responses in this PerIssuerOCSPResponse entry; see Section 7.5.2.12. * The singleResponses field contains one SingleCertResponse for each queried certificate issued by that issuer. Liao, et al. Expires 6 May 2027 [Page 35] Internet-Draft C509 Revocation November 2026 7.5.2.11. SingleCertResponse 7.5.2.11.1. serialNumberHash This field contains the truncated hash of the serial number of the certificate being queried, computed as in Section 7.3. 7.5.2.11.2. extensions See Section 7.5.2.13. 7.5.2.11.3. certStatus CertStatus is encoded either as an integer (for good, not-issued, and unknown) or as a RevokedInfo array: * 0: good -- the certificate is not revoked. * 1: not-issued -- the issuer is recognized but the serial number is unknown. * 2: unknown -- the responder does not recognize the issuer identified by issuerCertHash. * RevokedInfo: revoked -- an array carrying revocationTime and revocationReason. The revocationReason field is encoded as specified in Section 6.3.8. When the revocation reason is not known, revocationReason MUST be set to 0 (unspecified). The integer values are chosen to align with the ASN.1 IMPLICIT tag numbers of CertStatus in [RFC6960]: good uses ASN.1 tag 0 and unknown uses ASN.1 tag 2. The ASN.1 revoked alternative uses ASN.1 tag 1; since C509 represents the revoked status as the explicit RevokedInfo array, the integer value 1 becomes available. It is assigned to the not-issued status, which was introduced in [RFC6960], Section 4.4.8 to distinguish unrecognized serial numbers from unrecognized issuers, thereby maintaining a contiguous integer range for the non-revoked statuses. 7.5.2.12. Per-Issuer OCSP Extensions PerIssuerOCSPRequest.extensions and PerIssuerOCSPResponse.extensions carry per-issuer extensions. Table 8 lists the per-issuer extensions defined in this document. Liao, et al. Expires 6 May 2027 [Page 36] Internet-Draft C509 Revocation November 2026 +================+===========+============+==========+ | Code | Extension | Applied in | Comments | +================+===========+============+==========+ | (none defined) | | | | +----------------+-----------+------------+----------+ Table 8: Per-issuer OCSP extensions 7.5.2.13. OCSP Extensions Table 9 describes the OCSP extensions defined in [RFC6960] and [I-D.ietf-stir-certificates-ocsp] and their mapping in this document. Liao, et al. Expires 6 May 2027 [Page 37] Internet-Draft C509 Revocation November 2026 +====+==========+=================================+==========+============+ |Code|Extension |RFC Reference |Applied in|Replaced in | | | | | |this | | | | | |document | +====+==========+=================================+==========+============+ | - |nonce |[RFC6960], Section 4.4.1 |Request |field nonce | | | | |Extension,| | | | | |Response | | | | | |Extension | | +----+----------+---------------------------------+----------+------------+ | - |CRL |[RFC6960], Section 4.4.2 |Single |- | | |References| |Response | | | | | |Extension | | +----+----------+---------------------------------+----------+------------+ |TBD2|Acceptable|[RFC6960], Section 4.4.3 |Request |- | | |Response | |Extension | | | |Types | | | | +----+----------+---------------------------------+----------+------------+ | - |Archive |[RFC6960], Section 4.4.4 |Response |- | | |Cutoff | |Extension | | +----+----------+---------------------------------+----------+------------+ | - |Service |[RFC6960], Section 4.4.5 |Request |- | | |Locator | |Extension | | +----+----------+---------------------------------+----------+------------+ |TBD3|Preferred |[RFC6960], Section 4.4.7 |Request |- | | |Signature | |Extension | | | |Algorithms| | | | +----+----------+---------------------------------+----------+------------+ | - |Extended |[RFC6960], Section 4.4.8 |Response |cert status | | |Revoked | |Extension |not-issued | | |Definition| | |(for serial | | | | | |numbers not | | | | | |issued by a | | | | | |recognized | | | | | |issuer) and | | | | | |unknown (for| | | | | |unrecognized| | | | | |issuers) | +----+----------+---------------------------------+----------+------------+ |TBD6|TN Query |[I-D.ietf-stir-certificates-ocsp]|Single |- | | | | |Request | | | | | |Extension | | +----+----------+---------------------------------+----------+------------+ Table 9: OCSP extensions and their mapping This document defines the following extension values: Liao, et al. Expires 6 May 2027 [Page 38] Internet-Draft C509 Revocation November 2026 * Acceptable Response Types: The extension value MUST be encoded as follows. AcceptableResponseTypes = [ + int] The integers in AcceptableResponseTypes form a sorted list of preferred C509OCSPResponse types, in descending order of preference, that the requestor is willing to accept. This document defines types 0 (C509ErrorOCSPResponse), 1 (C509BasicOCSPResponse), and 2 (C509SimpleOCSPResponse). Type 0 (C509ErrorOCSPResponse) is always implicitly supported and does not need to be listed. When this extension is absent, an OCSP server responding to a C509UnsignedOCSPRequest or C509SignedOCSPRequest MUST reply with a C509BasicOCSPResponse (type 1); an OCSP server responding to a C509SimpleOCSPRequest MUST reply with a C509SimpleOCSPResponse (type 2). If AcceptableResponseTypes contains type 2 but not type 1, and the corresponding request contains entries for two or more certificates, the server SHALL return a C509ErrorOCSPResponse with responseStatus set to malformedRequest (1), since C509SimpleOCSPResponse can only carry status for a single certificate. * Preferred Signature Algorithms: The extension value MUST be encoded as follows. PreferredSignatureAlgorithm = ( sigIdentifier : IntAlgorithmIdentifier, pubKeyAlgIdentifiers : [ 2* IntAlgorithmIdentifier ] / IntAlgorithmIdentifier / null, ) PreferredSignatureAlgorithms = [ + PreferredSignatureAlgorithm ] The sigIdentifier field carries the signature algorithm identifier. The pubKeyAlgIdentifiers field carries the public key algorithm identifier and MUST be one of: * a CBOR array of two or more IntAlgorithmIdentifier values, sorted in descending order of preference, when the requestor is willing to accept any of the listed public key algorithms as a match for this signature algorithm preference (e.g., to express hybrid or multi-algorithm key policies); the first entry in the array represents the most preferred public key algorithm, * a single IntAlgorithmIdentifier value, when exactly one public key algorithm is acceptable, or Liao, et al. Expires 6 May 2027 [Page 39] Internet-Draft C509 Revocation November 2026 * null, when the public key algorithm is unconstrained or implied by sigIdentifier. PreferredSignatureAlgorithms MUST be sorted in descending order of preference; the first entry represents the most preferred algorithm combination. Since PreferredSignatureAlgorithm is a CDDL group, the fields of each entry are inlined in the array rather than wrapped in a nested array. * TN Query: The extension value MUST be encoded as follows. TNQuery = text .size (1..15) The TNQuery extension carries a telephone number string conforming to the TelephoneNumber ASN.1 type ([RFC8226], Section 3). When included in single request extensions, it specifies the telephone number for which the OCSP query is being performed (typically the number from the "orig" field of a PASSporT being validated). This extension is allowed only in the single-request extensions per [I-D.ietf-stir-certificates-ocsp]. 7.5.3. PEM Representation The CBOR-encoded C509 OCSP response is first Base64-encoded and then wrapped between "-----BEGIN C509 OCSP RESPONSE-----" and "-----END C509 OCSP RESPONSE-----", following the framework of [RFC7468]. -----BEGIN C509 OCSP RESPONSE----- (base64-encoded CBOR C509 OCSP Response) -----END C509 OCSP RESPONSE----- Figure 6: C509 OCSP Response PEM Encoding 7.6. Certificate Type Interoperability C509 OCSP uses a single set of request and response structures that handles both C509 and X.509 certificates without modification. All participants (requestor, responder, issuer) are identified by a hash over their certificate rather than by type-specific fields such as a Subject distinguished name, SubjectKeyIdentifier, or the X.509 ResponderID CHOICE (byName or byKey). Because a hash applies uniformly regardless of the certificate encoding, the same OCSP structures accommodate C509 certificates (CBOR-encoded), X.509 certificates (DER-encoded), and any future certificate types. The only per-type differences are in how identity hashes are computed and how certificate chains are carried: Liao, et al. Expires 6 May 2027 [Page 40] Internet-Draft C509 Revocation November 2026 +===================+======================+=====================+ | Field | C509 certificate | X.509 certificate | +===================+======================+=====================+ | issuerCertHash | Hash of CBOR-encoded | Hash of DER-encoded | | | C509Certificate | X.509 certificate | +-------------------+----------------------+---------------------+ | requestorCertHash | Hash of CBOR-encoded | Hash of DER-encoded | | | C509Certificate | X.509 certificate | +-------------------+----------------------+---------------------+ | responderCertHash | Hash of CBOR-encoded | Hash of DER-encoded | | | C509Certificate | X.509 certificate | +-------------------+----------------------+---------------------+ | requestorCerts / | COSE_C509 | #6.121(COSE_X509) | | responderCerts | | | +-------------------+----------------------+---------------------+ Table 10: Per-type differences in C509 OCSP identity fields In this table, "C509 certificate" refers to a natively signed C509 certificate (c509CertificateType = 2). A CBOR re-encoded X.509 certificate (c509CertificateType = 3) is treated as an X.509 certificate: its identity hash MUST be computed over the DER-encoded X.509 certificate. In a hybrid deployment where the responder holds an X.509 certificate, responderCertHash contains the hash of the DER-encoded X.509 certificate and responderCerts carries a #6.121(COSE_X509) chain. In a deployment using C509 certificates throughout, all identity hashes are computed over CBOR-encoded certificates and certificate chains are carried as COSE_C509. The hashAlgorithm field at the top level of each request or response structure governs all hashes within that structure. 7.7. OCSP Stapling in TLS In standard TLS certificate status stapling (see the status_request extension, [RFC9846]), the stapled OCSP response is a DER-encoded OCSPResponse. To allow C509 OCSP stapling, this document defines a new TLS CertificateStatusType value (see [RFC6066], Section 8): Liao, et al. Expires 6 May 2027 [Page 41] Internet-Draft C509 Revocation November 2026 +=======+===========+===============+ | Value | Name | Reference | +=======+===========+===============+ | TBD1 | c509_ocsp | This document | +-------+-----------+---------------+ Table 11: TLS CertificateStatusType for C509 OCSP When CertificateStatusType is c509_ocsp, the status field contains a CBOR-encoded C509OCSPResponse instead of a DER-encoded OCSPResponse. 8. Implementation Status This section is to be removed before publishing as an RFC. Note to RFC Editor: Please remove this section before publication. When deleting this section, please also delete RFC 7942 from the references of this document. (Boilerplate as per Section 2.1 of [RFC7942]:) This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in [RFC7942]. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist. According to [RFC7942], "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit". 8.1. Implementation #1 * Organization: RISE AB Liao, et al. Expires 6 May 2027 [Page 42] Internet-Draft C509 Revocation November 2026 * Implementation: c509rev, available in the c509rev directory of the GitHub repository of this document (https://github.com/lijun-nio/ idc509rev) * Description: A reference implementation of the C509 CRL and C509 OCSP structures specified in this document, written in Rust. * Implementation's level of maturity: Prototype. Intended for testing and reference purposes, not for production use. * Coverage: - C509 CRL, including the compact revokedCertsList encoding with fixed-length revoked-certificate and removed-from-CRL entries. - C509 OCSP requests of all defined types (simple, unsigned, and signed). The signed-request variants carrying the requestor's certificate or certificate chain are supported only as an opaque pass-through. - C509 OCSP responses of all defined types (error, basic, and simple). - The hash algorithms SHA-256, SHA-384, and SHA-512, including truncated identity hashes. - Time encoding, including the delta encodings used in OCSP. - Signing and signature verification with Ed25519 and ECDSA with secp256r1 and SHA-256. - PEM textual representation of C509 CRLs and C509 OCSP messages, as specified in this document. - Names are supported only in the single common-name text form. * Version compatibility: draft-liao-cose-c509-revocation-00 * Interoperability: The encoder output matches the examples in this document byte for byte (for signed objects, the to-be-signed part), and all examples successfully round-trip through decoding and re-encoding. No interoperability testing with independent implementations has been performed yet. * Licensing: See the repository of this document. * Contact: Joel Höglund (joel.hoglund@ri.se) Liao, et al. Expires 6 May 2027 [Page 43] Internet-Draft C509 Revocation November 2026 8.2. Implementation #2 * Organization: NIO Inc. * Implementation: Internal project, not publicly available * Description: An implementation of the C509 CRL and C509 OCSP structures specified in this document, written in Java. * Implementation's level of maturity: Prototype. * Coverage: All structures and features specified in this document. * Version compatibility: draft-liao-cose-c509-revocation-00 * Interoperability: This implementation was used to produce the examples in the appendices of this document. * Licensing: Internal use only. * Contact: Lijun Liao (lijun.liao@nio.io) 9. Security Considerations The security considerations of [RFC5280], [RFC6960], [I-D.ietf-cose-cbor-encoded-cert], and [RFC8949], Section 10 apply. This section covers the considerations specific to this document. 9.1. Signature Verification The signatures of C509 CRLs and of signed C509 OCSP messages cover all fields except signatureValue, including signatureAlgorithm and requestorCerts or responderCerts. This prevents algorithm and certificate-chain substitution, but does not replace the validation of [RFC5280] and [RFC6960]: the verifier MUST check that signatureAlgorithm matches the signer's public key, MUST validate the signer's certificate chain (a transported chain is only a hint for path construction), and MUST verify that the signer is authorized, as specified in [RFC6960], Section 4.2.2.2 for OCSP responses and in [RFC5280], Section 6.3 for CRLs. The signature SHOULD be verified over the bytes as received rather than over a re-encoding. C509ErrorOCSPResponse and C509CRLInfo (Section 6.3.1) are not signed. An error response MUST NOT be interpreted as status information about any certificate. A C509CRLInfo MUST NOT be used for revocation or freshness decisions unless it was obtained over a channel that authenticates the CRL issuer. Liao, et al. Expires 6 May 2027 [Page 44] Internet-Draft C509 Revocation November 2026 9.2. Truncated Hash Identifiers HashId8 (Section 7.3) only selects a certificate and does not authenticate it; security relies on the signature verification in Section 9.1. A relying party MUST match a response to its request using hash values it has computed itself from the certificates it holds. A receiver that finds several certificates matching a HashId8 MUST NOT assume that a particular one is intended. An OCSP responder for which an issuerCertHash matches more than one of its issuers, or a serialNumberHash matches more than one serial number, MUST NOT return the status good for that entry. Since serial numbers are chosen by the CA, an attacker cannot mount a collision attack on serialNumberHash; making the status of one certificate appear as that of another requires a second preimage of about 2^160 operations. The serial number MUST be normalized as specified in Section 7.3 before hashing; otherwise, a revoked certificate is not found. 9.3. Privacy serialNumberHash hides the queried certificate only from observers that do not know its serial number. Serial numbers are not secret, and the hash is unsalted, so an observer with a set of candidate serial numbers can identify the queried certificate and link repeated queries; issuerCertHash reveals the issuer. Where this matters, requests and responses SHOULD be protected, e.g., by DTLS or OSCORE, or OCSP stapling (Section 7.7) SHOULD be used. 9.4. Freshness and Replay A relying party MUST check the validity interval of an OCSP response ([RFC6960], Section 4.2.2.1) and, if it sent a nonce, that the response carries the same nonce. Without a nonce, a response can be replayed until it expires; relying parties without a reliable clock SHOULD use nonces. The nonce is 16 to 32 bytes long (Section 7.4.2.4), whereas [RFC8954] requires new clients to use 32 octets in the Nonce extension of [RFC6960]. A replay succeeds only if the attacker has obtained, from the OCSP responder, a response for the nonce that the relying party later chooses. With N such responses and M requests, the probability is about N * M / 2^128 for a 16-byte nonce, i.e., about 2^-48 even for N = M = 2^40, and the attack can be neither performed offline nor accelerated by a quantum computer. A 32-byte nonce adds no practical security but 16 bytes to each request and response, which is significant on constrained links. Liao, et al. Expires 6 May 2027 [Page 45] Internet-Draft C509 Revocation November 2026 A relying party MUST NOT use a CRL after thisUpdate + nextUpdate, SHOULD reject a CRL whose crlNumber is lower than that of a CRL previously accepted for the same scope, and MUST combine a delta CRL only with a full CRL whose crlNumber is at least baseCrlNumber ([RFC5280], Section 5.2.4). 9.5. Completeness of CRLs * Certificates whose serial number is not a positive integer of at most 20 bytes, as required by [RFC5280], Section 4.1.2.2, are not supported by this document; C509 CRLs cannot list some of them, and relying parties MUST reject them. * When dateLength is 0, no revocation date is available, and a listed certificate MUST be treated as revoked at all times. * When bit 1 of flags is not set, no reason code is available, and the reason MUST be treated as unspecified. * The issuer MUST be compared in the representation that matches the certificate type (Name or tag 121 with a DER-encoded name). Implementations MUST reject a CRL in which the length of revokedCerts or removedFromCRLCerts is not a multiple of the entry length. An implementation that uses binary search based on bit 0 of flags MUST verify that the entries are sorted, since otherwise a revoked certificate can be missed. 9.6. Parsing and Denial of Service Messages are parsed before their signature is verified, and unsigned requests are never authenticated. Implementations MUST reject input that does not conform to the CDDL, SHOULD limit message sizes and the number of entries, and MUST reject input for which computing an absolute time from a base time and an offset overflows. Answering a request may require a signature, and responses are larger than requests, which exposes OCSP responders to resource exhaustion and to abuse for traffic amplification over UDP ([RFC7252], Section 11.3). OCSP responders SHOULD rate-limit requests and MAY require signed requests. A stapled C509OCSPResponse (Section 7.7) MUST be validated as if obtained directly from the OCSP responder. Liao, et al. Expires 6 May 2027 [Page 46] Internet-Draft C509 Revocation November 2026 10. IANA Considerations This document has the following actions for IANA. Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph. 10.1. C509 CRL Types Registry IANA is requested to create a new registry titled "C509 CRL Types" under the registry group "CBOR Encoded X.509 (C509)". The fields of the registry are Value, Description, and Reference, where Value is an integer in the interval [-32768, 32767], and the other columns are text strings. It is mandatory to specify content in all columns. For values in the interval [-24, 23], the registration procedure is "IETF Review with Expert Review", and for all other values, the registration procedure is "Expert Review". The initial contents of the registry are: +-------+-------------------------------+-------------------+ | Value | Description | Reference | +=======+===============================+===================+ | 0 | C509CRL | [[this document]] | +-------+-------------------------------+-------------------+ Figure 7: C509 CRL Types 10.2. C509 OCSP Request Types Registry IANA is requested to create a new registry titled "C509 OCSP Request Types" under the registry group "CBOR Encoded X.509 (C509)". The fields of the registry are Value, Description, and Reference, where Value is an integer in the interval [-32768, 32767], and the other columns are text strings. It is mandatory to specify content in all columns. For values in the interval [-24, 23], the registration procedure is "IETF Review with Expert Review", and for all other values, the registration procedure is "Expert Review". The initial contents of the registry are: +-------+-------------------------------+-------------------+ | Value | Description | Reference | +=======+===============================+===================+ | 0 | C509 Unsigned OCSP Request | [[this document]] | +-------+-------------------------------+-------------------+ | 1 | C509 Signed OCSP Request | [[this document]] | +-------+-------------------------------+-------------------+ | 2 | C509 Simple OCSP Request | [[this document]] | +-------+-------------------------------+-------------------+ Liao, et al. Expires 6 May 2027 [Page 47] Internet-Draft C509 Revocation November 2026 Figure 8: C509 OCSP Request Types 10.3. C509 OCSP Response Types Registry IANA is requested to create a new registry titled "C509 OCSP Response Types" under the registry group "CBOR Encoded X.509 (C509)". The fields of the registry are Value, Description, and Reference, where Value is an integer in the interval [-32768, 32767], and the other columns are text strings. It is mandatory to specify content in all columns. For values in the interval [-24, 23], the registration procedure is "IETF Review with Expert Review", and for all other values, the registration procedure is "Expert Review". The initial contents of the registry are: +-------+-------------------------------+-------------------+ | Value | Description | Reference | +=======+===============================+===================+ | 0 | C509 Error OCSP Response | [[this document]] | +-------+-------------------------------+-------------------+ | 1 | C509 Basic OCSP Response | [[this document]] | +-------+-------------------------------+-------------------+ | 2 | C509 Simple OCSP Response | [[this document]] | +-------+-------------------------------+-------------------+ Figure 9: C509 OCSP Response Types 10.4. Extension Identifiers Registry IANA is requested to assign the new values shown in Figure 10 in the "C509 Extensions" registry under the new registry group "CBOR Encoded X.509 (C509)" defined in [I-D.ietf-cose-cbor-encoded-cert]. Liao, et al. Expires 6 May 2027 [Page 48] Internet-Draft C509 Revocation November 2026 +-------+----------------------------------------------------------+ | Value | Extension | +=======+==========================================================+ | TBD2 | Name: Acceptable Response Types | | | Identifiers: id-pkix-ocsp-response | | | OID: 1.3.6.1.5.5.7.48.1.4 | | | DER: 06 09 2B 06 01 05 05 07 30 01 04 | | | Comments: RFC 6960 | | | extensionValue: AcceptableResponseTypes | | | Reference: [[this document]] | +-------+----------------------------------------------------------+ | TBD3 | Name: Preferred Signature Algorithms | | | Identifiers: id-pkix-ocsp-pref-sig-algs | | | OID: 1.3.6.1.5.5.7.48.1.8 | | | DER: 06 09 2B 06 01 05 05 07 30 01 08 | | | Comments: RFC 6960 | | | extensionValue: PreferredSignatureAlgorithms | | | Reference: [[this document]] | +-------+----------------------------------------------------------+ | TBD4 | Name: Expired Certificates on CRL | | | Identifiers: id-ce-expiredCertsOnCRL | | | OID: 2.5.29.60 | | | DER: 06 03 55 1D 3C | | | Comments: ITU-T X.509, Section 9.5.2.8 | | | extensionValue: ExpiredCertsOnCRL | | | Reference: [[this document]] | +-------+----------------------------------------------------------+ | TBD6 | Name: TN Query | | | Identifiers: id-pkix-ocsp-stir-tn | | | OID: 1.3.6.1.5.5.7.48.1.10 | | | DER: 06 09 2B 06 01 05 05 07 30 01 0A | | | Comments: draft-ietf-stir-certificates-ocsp | | | extensionValue: TNQuery | | | Reference: [[this document]] | +-------+----------------------------------------------------------+ Figure 10: C509 extension identifier allocation requests 10.5. TLS CertificateStatusType Registry IANA is requested to assign the value shown in Table 12 in the "TLS Certificate Status Types" registry under "Transport Layer Security (TLS) Extensions": Liao, et al. Expires 6 May 2027 [Page 49] Internet-Draft C509 Revocation November 2026 +=======+=============+============+=========+ | Value | Description | Reference | Comment | +=======+=============+============+=========+ | TBD1 | c509_ocsp | [RFC-XXXX] | N/A | +-------+-------------+------------+---------+ Table 12: TLS CertificateStatusType allocation request 10.6. PEM Label Registry IANA is requested to register the following entries in the "Textual Encoding Label" registry under the registry group "PKIX Parameters" [RFC7468]: +====================+============+ | Label | Reference | +====================+============+ | C509 CRL | [RFC-XXXX] | +--------------------+------------+ | C509 OCSP REQUEST | [RFC-XXXX] | +--------------------+------------+ | C509 OCSP RESPONSE | [RFC-XXXX] | +--------------------+------------+ Table 13: PEM Label Registrations 10.7. Media Type Application Registry IANA is requested to assign the following entries in the "application" registry in the registry group "Media Types" with this document as reference. 10.7.1. Media Type application/c509-crl+cbor When the application/c509-crl+cbor media type is used, the data is a C509CRL structure. A stored file format is defined with "magic number" TBD11 using the reserved CBOR tag 55799 and the Content- Format TBD7, enveloped as described in [RFC9277], Section 2.2. Subtype name: c509-crl+cbor Required parameters: N/A Optional parameters: N/A Encoding considerations: binary Liao, et al. Expires 6 May 2027 [Page 50] Internet-Draft C509 Revocation November 2026 Security considerations: See Section 9 of [RFC-XXXX]. Interoperability considerations: N/A Published specification: [RFC-XXXX] Applications that use this media type: Any MIME-compliant transport Fragment identifier considerations: N/A Additional information: * Deprecated alias names for this type: N/A * Magic number(s): TBD11 * File extension(s): .c509 * Macintosh file type code(s): N/A Person & email address to contact for further information: iesg@ietf.org Intended usage: COMMON Restrictions on usage: N/A Author: COSE WG Change controller: IETF 10.7.2. Media Type application/c509-crlinfo+cbor When the application/c509-crlinfo+cbor media type is used, the data is a C509CRLInfo structure. A stored file format is defined with "magic number" TBD12 using the reserved CBOR tag 55799 and the Content-Format TBD8, enveloped as described in [RFC9277], Section 2.2. Subtype name: c509-crlinfo+cbor Required parameters: N/A Optional parameters: N/A Encoding considerations: binary Security considerations: See Section 9 of [RFC-XXXX]. Liao, et al. Expires 6 May 2027 [Page 51] Internet-Draft C509 Revocation November 2026 Interoperability considerations: N/A Published specification: [RFC-XXXX] Applications that use this media type: Any MIME-compliant transport Fragment identifier considerations: N/A Additional information: * Deprecated alias names for this type: N/A * Magic number(s): TBD12 * File extension(s): .c509 * Macintosh file type code(s): N/A Person & email address to contact for further information: iesg@ietf.org Intended usage: COMMON Restrictions on usage: N/A Author: COSE WG Change controller: IETF 10.7.3. Media Type application/c509-ocspreq+cbor When the application/c509-ocspreq+cbor media type is used, the data is a C509OCSPRequest structure. A stored file format is defined with "magic number" TBD13 using the reserved CBOR tag 55799 and the Content-Format TBD9, enveloped as described in [RFC9277], Section 2.2. Subtype name: c509-ocspreq+cbor Required parameters: N/A Optional parameters: N/A Encoding considerations: binary Security considerations: See Section 9 of [RFC-XXXX]. Interoperability considerations: N/A Liao, et al. Expires 6 May 2027 [Page 52] Internet-Draft C509 Revocation November 2026 Published specification: [RFC-XXXX] Applications that use this media type: OCSP clients Fragment identifier considerations: N/A Additional information: * Deprecated alias names for this type: N/A * Magic number(s): TBD13 * File extension(s): .c509 * Macintosh file type code(s): N/A Person & email address to contact for further information: iesg@ietf.org Intended usage: COMMON Restrictions on usage: N/A Author: COSE WG Change controller: IETF 10.7.4. Media Type application/c509-ocspresp+cbor When the application/c509-ocspresp+cbor media type is used, the data is a C509OCSPResponse structure. A stored file format is defined with "magic number" TBD14 using the reserved CBOR tag 55799 and the Content-Format TBD10, enveloped as described in [RFC9277], Section 2.2. Subtype name: c509-ocspresp+cbor Required parameters: N/A Optional parameters: N/A Encoding considerations: binary Security considerations: See Section 9 of [RFC-XXXX]. Interoperability considerations: N/A Published specification: [RFC-XXXX] Liao, et al. Expires 6 May 2027 [Page 53] Internet-Draft C509 Revocation November 2026 Applications that use this media type: OCSP servers Fragment identifier considerations: N/A Additional information: * Deprecated alias names for this type: N/A * Magic number(s): TBD14 * File extension(s): .c509 * Macintosh file type code(s): N/A Person & email address to contact for further information: iesg@ietf.org Intended usage: COMMON Restrictions on usage: N/A Author: COSE WG Change controller: IETF 10.8. CoAP Content-Formats Registry IANA is requested to add entries for "application/c509-crl+cbor", "application/c509-crlinfo+cbor", "application/c509-ocspreq+cbor" and "application/c509-ocspresp+cbor" to the "CoAP Content-Formats" registry in the registry group "Constrained RESTful Environments (CoRE) Parameters". Liao, et al. Expires 6 May 2027 [Page 54] Internet-Draft C509 Revocation November 2026 +-------------------------+---------+-------+------------+ | Content | Content | ID | Reference | | Type | Coding | | | +=========================+=========+=======+============+ | application/ | - | TBD7 | [[this | | c509-crl+cbor | | | document]] | +-------------------------+---------+-------+------------+ | application/ | | TBD8 | [[this | | c509-crlinfo+cbor | - | | document]] | +-------------------------+---------+-------+------------+ | application/ | - | TBD9 | [[this | | c509-ocspreq+cbor | | | document]] | +-------------------------+---------+-------+------------+ | application/ | - | TBD10 | [[this | | c509-ocspresp+cbor | | | document]] | +-------------------------+---------+-------+------------+ 10.9. Expert Review Guidelines TODO 11. References 11.1. Normative References [I-D.ietf-cose-cbor-encoded-cert] Mattsson, J. P., Selander, G., Raza, S., Höglund, J., Furuhed, M., and L. Liao, "CBOR Encoded X.509 Certificates (C509 Certificates)", Work in Progress, Internet-Draft, draft-ietf-cose-cbor-encoded-cert-21, 24 September 2026, . [I-D.ietf-stir-certificates-ocsp] Peterson, J. and S. Turner, "OCSP Usage for Secure Telephone Identity Certificates", Work in Progress, Internet-Draft, draft-ietf-stir-certificates-ocsp-14, 10 June 2026, . [IANA.cose] IANA, "CBOR Object Signing and Encryption (COSE)", . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . Liao, et al. Expires 6 May 2027 [Page 55] Internet-Draft C509 Revocation November 2026 [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, . [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) Extensions: Extension Definitions", RFC 6066, DOI 10.17487/RFC6066, January 2011, . [RFC6960] Santesson, S., Myers, M., Ankney, R., Malpani, A., Galperin, S., and C. Adams, "X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP", RFC 6960, DOI 10.17487/RFC6960, June 2013, . [RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code Points", BCP 100, RFC 7120, DOI 10.17487/RFC7120, January 2014, . [RFC7468] Josefsson, S. and S. Leonard, "Textual Encodings of PKIX, PKCS, and CMS Structures", RFC 7468, DOI 10.17487/RFC7468, April 2015, . [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8226] Peterson, J. and S. Turner, "Secure Telephone Identity Credentials: Certificates", RFC 8226, DOI 10.17487/RFC8226, February 2018, . [RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, June 2019, . [RFC8742] Bormann, C., "Concise Binary Object Representation (CBOR) Sequences", RFC 8742, DOI 10.17487/RFC8742, February 2020, . Liao, et al. Expires 6 May 2027 [Page 56] Internet-Draft C509 Revocation November 2026 [RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", STD 94, RFC 8949, DOI 10.17487/RFC8949, December 2020, . [RFC9054] Schaad, J., "CBOR Object Signing and Encryption (COSE): Hash Algorithms", RFC 9054, DOI 10.17487/RFC9054, August 2022, . [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The Datagram Transport Layer Security (DTLS) Protocol Version 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, . [RFC9277] Richardson, M. and C. Bormann, "On Stable Storage for Items in Concise Binary Object Representation (CBOR)", RFC 9277, DOI 10.17487/RFC9277, August 2022, . [RFC9360] Schaad, J., "CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates", RFC 9360, DOI 10.17487/RFC9360, February 2023, . [RFC9682] Bormann, C., "Updates to the Concise Data Definition Language (CDDL) Grammar", RFC 9682, DOI 10.17487/RFC9682, November 2024, . [RFC9846] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 9846, DOI 10.17487/RFC9846, July 2026, . 11.2. Informative References [CborMe] Bormann, C., "CBOR Playground", May 2018, . [CRLite] "mozilla/crlite", n.d., . [CRLSets] "CRLSets - The Chromium Projects", n.d., . [POSIX] "IEEE Standard for Information Technology--Portable Operating System Interface (POSIX(TM)) Base Specifications, Issue 7", January 2018, . Liao, et al. Expires 6 May 2027 [Page 57] Internet-Draft C509 Revocation November 2026 [RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3280, DOI 10.17487/RFC3280, May 2002, . [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for Constrained-Node Networks", RFC 7228, DOI 10.17487/RFC7228, May 2014, . [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained Application Protocol (CoAP)", RFC 7252, DOI 10.17487/RFC7252, June 2014, . [RFC7925] Tschofenig, H., Ed. and T. Fossati, "Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things", RFC 7925, DOI 10.17487/RFC7925, July 2016, . [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running Code: The Implementation Status Section", BCP 205, RFC 7942, DOI 10.17487/RFC7942, July 2016, . [RFC8954] Sahni, M., Ed., "Online Certificate Status Protocol (OCSP) Nonce Extension", RFC 8954, DOI 10.17487/RFC8954, November 2020, . [RFC9861] Viguier, B., Wong, D., Ed., Van Assche, G., Ed., Dang, Q., Ed., and J. Daemen, Ed., "KangarooTwelve and TurboSHAKE", RFC 9861, DOI 10.17487/RFC9861, October 2025, . [TinyOCSP] Höglund, J., Furuhed, M., and S. Raza, "Lightweight certificate revocation for low-power IoT with end-to-end security", Journal of Information Security and Applications 73:103424, DOI 10.1016/j.jisa.2023.103424, 2023, . [X.690] "ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)", n.d., . Liao, et al. Expires 6 May 2027 [Page 58] Internet-Draft C509 Revocation November 2026 Appendix A. Examples A.1. Overview +==========+==================+============+============+===========+ | Section | Description | size(X509) | size(C509) | Size | | | | | | Reduction | +==========+==================+============+============+===========+ | Appendix | CRL Example | 147 | 120 | 18% | | A.3.1 | Without Revoked | | | | | | Certificates | | | | +----------+------------------+------------+------------+-----------+ | Appendix | CRL Example | 335 | 177 | 47% | | A.3.2 | With Revoked | | | | | | Certificates | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Delta CRL | 335 | 160 | 52% | | A.3.3 | Example With | | | | | | Revoked | | | | | | Certificates | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Indirect CRL | 409 | 202 | 51% | | A.3.4 | Example With | | | | | | Revoked | | | | | | Certificates | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Simple OCSP | 150 | 51 | 66% | | A.4.1 | Request Example | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Unsigned OCSP | 475 | 132 | 72% | | A.4.2 | Request Example | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Signed OCSP | 584 | 209 | 64% | | A.4.3 | Request Example | | | | | | Without | | | | | | Requestor's | | | | | | Certificate | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Signed OCSP | 1035 | 420 | 59% | | A.4.4 | Request Example | | | | | | With | | | | | | Requestor's | | | | | | Certificate | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Signed OCSP | 1371 | 625 | 54% | | A.4.5 | Request Example | | | | | | With | | | | | | Requestor's | | | | Liao, et al. Expires 6 May 2027 [Page 59] Internet-Draft C509 Revocation November 2026 | | Certificate | | | | | | Chain | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Error OCSP | 5 | 3 | 40% | | A.5.1 | Response | | | | | | Example | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Simple OCSP | 336 | 140 | 58% | | A.5.2 | Response | | | | | | Example | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Basic OCSP | 837 | 248 | 70% | | A.5.3 | Response | | | | | | Example Without | | | | | | Responder's | | | | | | Certificate | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Basic OCSP | 1181 | 446 | 62% | | A.5.4 | Response | | | | | | Example With | | | | | | Responder's | | | | | | Certificate | | | | +----------+------------------+------------+------------+-----------+ | Appendix | Basic OCSP | 1517 | 651 | 57% | | A.5.5 | Response | | | | | | Example With | | | | | | Responder's | | | | | | Certificate | | | | | | Chain | | | | +----------+------------------+------------+------------+-----------+ Table 14: Size comparison in examples A.2. Helper Keys and Certificates A.2.1. CA Private Key and Certificate A.2.1.1. CA Private Key -----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIDP+AdMbqXudBAN3YNAwoR0i3nl4IuoSSA6Hazy2oAKc -----END PRIVATE KEY----- A.2.1.2. CA Certificate A.2.1.2.1. Plain Hex Liao, et al. Expires 6 May 2027 [Page 60] Internet-Draft C509 Revocation November 2026 8B0241010C73746573742063726C6F6373702D726F6F7463611A677485801A6B36EC 7F6F746573742063726C6F6373702D63610C58205EF8A355A001A7C50D2349470120 8131A4BB2AB920D40BFB0EE1F6AB28FF74008801542F45E78D2CAEDF368CDF53C390 05D492450E1056211860230107542DA3A403F7D2F4E0B3D8031A73BA8A839F557F0F 5840E50465D60C02A2111EF3FC6E44F2A36008765B552351F9A3F5B2AA7C76F1F05D 259847A4F4250B2E4B0AE2099762A2596D3CC1DB2CCD180AA0A2D0E191310B0F A.2.1.2.2. Textual Representation Certificate TBSCertificate Certificate Type: 2 Serial Number 01 Signature Algorithm: Ed25519 (12) Issuer : CN=test crlocsp-rootca Subject: CN=test crlocsp-ca Validity Not Before: 2025-01-01T00:00:00Z Not After : 2026-12-31T23:59:59Z Subject Public Key Info: algorithm: Ed25519 (12) Raw public key 5e:f8:a3:55:a0:01:a7:c5:0d:23:49:47:01:20:81:31: a4:bb:2a:b9:20:d4:0b:fb:0e:e1:f6:ab:28:ff:74:00 Extensions SubjectKeyIdentifier (1) 2f:45:e7:8d:2c:ae:df:36:8c:df:53:c3:90:05:d4:92: 45:0e:10:56 KeyUsage (2), critical 0x60: [keyCertSign, cRLSign] BasicConstraints (4), critical CA: true, pathLenConstraint: 1 AuthorityKeyIdentifier (7) Key Identifier 2d:a3:a4:03:f7:d2:f4:e0:b3:d8:03:1a:73:ba:8a:83: 9f:55:7f:0f Signature Value e5:04:65:d6:0c:02:a2:11:1e:f3:fc:6e:44:f2:a3:60: 08:76:5b:55:23:51:f9:a3:f5:b2:aa:7c:76:f1:f0:5d: 25:98:47:a4:f4:25:0b:2e:4b:0a:e2:09:97:62:a2:59: 6d:3c:c1:db:2c:cd:18:0a:a0:a2:d0:e1:91:31:0b:0f A.2.2. CRL Signer Private Key and Certificate A.2.2.1. CRL Signer Private Key Liao, et al. Expires 6 May 2027 [Page 61] Internet-Draft C509 Revocation November 2026 -----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIOJ3HnsrBJ5g5Pb5oy7qlvijr3Wfx3ywAUvnmRV4354s -----END PRIVATE KEY----- A.2.2.2. CRL Signer Certificate A.2.2.2.1. Plain Hex 8B024212340C6F746573742063726C6F6373702D63611A6775D7001A69570A806A63 726C2D7369676E65720C5820C9BA1EC496DACB97AED087ADE390F398FBD477871EE9 203817EC0E31902789FF86015409E433582556550A27DB4A19BCE2D660884722B621 184007542F45E78D2CAEDF368CDF53C39005D492450E10565840D46E6A8F9FD53417 F36DFE56CBB8CACE0FC3E59ACBE72CD9916B3E4C5022D06D16CC9BF9AC54394037C9 5433644194FAE18FF783381959584A21BDC0E1C6CB0B A.2.2.2.2. Textual Representation Certificate TBSCertificate Certificate Type: 2 Serial Number 12:34 Signature Algorithm: Ed25519 (12) Issuer : CN=test crlocsp-ca Subject: CN=crl-signer Validity Not Before: 2025-01-02T00:00:00Z Not After : 2026-01-02T00:00:00Z Subject Public Key Info: algorithm: Ed25519 (12) Raw public key c9:ba:1e:c4:96:da:cb:97:ae:d0:87:ad:e3:90:f3:98: fb:d4:77:87:1e:e9:20:38:17:ec:0e:31:90:27:89:ff Extensions SubjectKeyIdentifier (1) 09:e4:33:58:25:56:55:0a:27:db:4a:19:bc:e2:d6:60: 88:47:22:b6 KeyUsage (2), critical 0x40: [cRLSign] AuthorityKeyIdentifier (7) Key Identifier 2f:45:e7:8d:2c:ae:df:36:8c:df:53:c3:90:05:d4:92: 45:0e:10:56 Signature Value d4:6e:6a:8f:9f:d5:34:17:f3:6d:fe:56:cb:b8:ca:ce: 0f:c3:e5:9a:cb:e7:2c:d9:91:6b:3e:4c:50:22:d0:6d: 16:cc:9b:f9:ac:54:39:40:37:c9:54:33:64:41:94:fa: e1:8f:f7:83:38:19:59:58:4a:21:bd:c0:e1:c6:cb:0b Liao, et al. Expires 6 May 2027 [Page 62] Internet-Draft C509 Revocation November 2026 A.2.3. OCSP Requestor Private Key and Certificate A.2.3.1. OCSP Requestor Private Key -----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIDoXZF67Rh+ENmXzefN4vLk/o2fK5q/otI2G1xQYtThH -----END PRIVATE KEY----- A.2.3.2. OCSP Requestor Certificate A.2.3.2.1. Plain Hex 8B024212360C6F746573742063726C6F6373702D63611A6775D7001A69570A806E6F 6373702D726571756573746F720C582004530B1764EDD4B4E33AB44AF0F838961C00 7176D74B6A3546ECB7FD57320DD3860154DD51BDB2A2C791C062D4027856DBACF526 07F0BE210107542F45E78D2CAEDF368CDF53C39005D492450E10565840F8C6183ECF 8C3EFD50DD4942D172814C46EC0FC01DD586A597178DF864A0D9DA86B7CA17FC9F77 2FF04C80E98B60D5B4B62408A277A5B70D0D2A3F5ED5442D07 A.2.3.2.2. Textual Representation Liao, et al. Expires 6 May 2027 [Page 63] Internet-Draft C509 Revocation November 2026 Certificate TBSCertificate Certificate Type: 2 Serial Number 12:36 Signature Algorithm: Ed25519 (12) Issuer : CN=test crlocsp-ca Subject: CN=ocsp-requestor Validity Not Before: 2025-01-02T00:00:00Z Not After : 2026-01-02T00:00:00Z Subject Public Key Info: algorithm: Ed25519 (12) Raw public key 04:53:0b:17:64:ed:d4:b4:e3:3a:b4:4a:f0:f8:38:96: 1c:00:71:76:d7:4b:6a:35:46:ec:b7:fd:57:32:0d:d3 Extensions SubjectKeyIdentifier (1) dd:51:bd:b2:a2:c7:91:c0:62:d4:02:78:56:db:ac:f5: 26:07:f0:be KeyUsage (2), critical 0x1: [digitalSignature] AuthorityKeyIdentifier (7) Key Identifier 2f:45:e7:8d:2c:ae:df:36:8c:df:53:c3:90:05:d4:92: 45:0e:10:56 Signature Value f8:c6:18:3e:cf:8c:3e:fd:50:dd:49:42:d1:72:81:4c: 46:ec:0f:c0:1d:d5:86:a5:97:17:8d:f8:64:a0:d9:da: 86:b7:ca:17:fc:9f:77:2f:f0:4c:80:e9:8b:60:d5:b4: b6:24:08:a2:77:a5:b7:0d:0d:2a:3f:5e:d5:44:2d:07 A.2.4. OCSP Responder Private Key and Certificate A.2.4.1. OCSP Responder Private Key -----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEII5swSxWTjlZinUj+5kie//qjgBbzupdc0lmaHF9NkXl -----END PRIVATE KEY----- A.2.4.2. OCSP Responder Certificate A.2.4.2.1. Plain Hex Liao, et al. Expires 6 May 2027 [Page 64] Internet-Draft C509 Revocation November 2026 8B024212350C6F746573742063726C6F6373702D63611A6775D7001A69570A806E6F 6373702D726573706F6E6465720C582081947BBC248AAC79738211A8D75BF92CB777 D994073DF23AE06380EF2C573976880154B5B4CAF35401D06151DF9629DB579DC8CC A453A8210107542F45E78D2CAEDF368CDF53C39005D492450E105627095840A01B0C BF3E34A4762D05404FD08A7AEC103035358314686D72B6159078C76E1D88597F3753 1886A3F52F256FD722192B289D6844014467F1F17F05ACBB7B660A A.2.4.2.2. Textual Representation Certificate TBSCertificate Certificate Type: 2 Serial Number 12:35 Signature Algorithm: Ed25519 (12) Issuer : CN=test crlocsp-ca Subject: CN=ocsp-responder Validity Not Before: 2025-01-02T00:00:00Z Not After : 2026-01-02T00:00:00Z Subject Public Key Info: algorithm: Ed25519 (12) Raw public key 81:94:7b:bc:24:8a:ac:79:73:82:11:a8:d7:5b:f9:2c: b7:77:d9:94:07:3d:f2:3a:e0:63:80:ef:2c:57:39:76 Extensions SubjectKeyIdentifier (1) b5:b4:ca:f3:54:01:d0:61:51:df:96:29:db:57:9d:c8: cc:a4:53:a8 KeyUsage (2), critical 0x1: [digitalSignature] AuthorityKeyIdentifier (7) Key Identifier 2f:45:e7:8d:2c:ae:df:36:8c:df:53:c3:90:05:d4:92: 45:0e:10:56 ExtendedKeyUsage (8), critical OCSPSigning (9) Signature Value a0:1b:0c:bf:3e:34:a4:76:2d:05:40:4f:d0:8a:7a:ec: 10:30:35:35:83:14:68:6d:72:b6:15:90:78:c7:6e:1d: 88:59:7f:37:53:18:86:a3:f5:2f:25:6f:d7:22:19:2b: 28:9d:68:44:01:44:67:f1:f1:7f:05:ac:bb:7b:66:0a Liao, et al. Expires 6 May 2027 [Page 65] Internet-Draft C509 Revocation November 2026 A.3. CRL Examples A.3.1. CRL Example Without Revoked Certificates * Size reduction: 18% * Verifiable with certificate in Appendix A.2.1.2 * Direct CRL * Full CRL * No revoked certificates * Note that the X.509 CRL and the C509 CRL are not convertible. A.3.1.1. X.509 CRL PEM content (147 bytes): -----BEGIN X509 CRL----- MIGQMEQCAQEwBQYDK2VwMBoxGDAWBgNVBAMMD3Rlc3QgY3Jsb2NzcC1jYRcNMjUw MTAyMDAwMDAwWhcNMjUwMTA5MDAwMDAwWjAFBgMrZXADQQBeSb215S+/7HT9HjQN zeuuETZAjRIwCLxCIZatpkiov3ndsI7fjXcabny/kx9d5Ce39o3RcDG3QiDDdWOi R5UK -----END X509 CRL----- A.3.1.2. C509 CRL Plain Hex (120 bytes): 8B000C6F746573742063726C6F6373702D6361542F45E78D2CAEDF368CDF53C39005 D492450E1056011A6775D7001A00093A80F680F6584013834F4E38AA9F0DC5B8D21C 8650C776A6D961C31C894C36A71A6433F5ED7D30E67F787F13C7E4C349B2848A181F DBBCE361A14C220021C4A267367AD5F1D90D Textual Representation Liao, et al. Expires 6 May 2027 [Page 66] Internet-Draft C509 Revocation November 2026 C509CRL TBSCertList CRL Type: C509CRL (0) Signature Algorithm: Ed25519 (12) Authority Subject: CN=test crlocsp-ca Authority Key Identifier: 2F:45:E7:8D:2C:AE:DF:36:8C:DF:53:C3:90:05:D4:92: 45:0E:10:56 CRL Number: 1 This Update: 2025-01-02T00:00:00Z Next Update: 2025-01-09T00:00:00Z Base CRL Number: Extensions: revokedCertsList: Signature Value 13:83:4f:4e:38:aa:9f:0d:c5:b8:d2:1c:86:50:c7:76: a6:d9:61:c3:1c:89:4c:36:a7:1a:64:33:f5:ed:7d:30: e6:7f:78:7f:13:c7:e4:c3:49:b2:84:8a:18:1f:db:bc: e3:61:a1:4c:22:00:21:c4:a2:67:36:7a:d5:f1:d9:0d Annotated hex 0: 8B # C509CRL=array[11] 1: 00 # [0]. crlType=0 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 6F # [2]. authoritySubject=char[15] 4: 746573742063726C6F6373702D6361 # "test crlocsp-ca" 19: 54 # [3]. authorityKeyIdentifier=byte[20] 20: 2F45E78D2CAEDF368CDF53C39005D492450E1056 40: 01 # [4]. crlNumber=1 41: 1A 6775D700 # [5]. thisUpdate=1735776000: # 2025-01-02T00:00:00Z 46: 1A 00093A80 # [6]. nextUpdate=604800: 2025-01-09T00:00:00Z 51: F6 # [7]. baseCrlNumber= 52: 80 # [8]. crlExtensions=array[0] 53: F6 # [9]. revokedCertsList: 54: 58 40 # [10]. signature value=byte[64] 56: 13834F4E38AA9F0DC5B8D21C8650C776A6D961C31C894C36A71A6433F5 85: ED7D30E67F787F13C7E4C349B2848A181FDBBCE361A14C220021C4A267 114: 367AD5F1D90D A.3.2. CRL Example With Revoked Certificates * Size reduction: 47% * Verifiable with certificate in Appendix A.2.1.2 * Direct CRL Liao, et al. Expires 6 May 2027 [Page 67] Internet-Draft C509 Revocation November 2026 * Full CRL * With revoked certificates * With Per-Issuer Extension ExpiredCertsOnCRL * Note that the X.509 CRL and the C509 CRL are not convertible. A.3.2.1. X.509 CRL PEM content (335 bytes): -----BEGIN X509 CRL----- MIIBSzCB/gIBATAFBgMrZXAwGjEYMBYGA1UEAwwPdGVzdCBjcmxvY3NwLWNhFw0y NTAxMDcwMDEyMzRaFw0yNTAxMTQwMDEyMzRaMIG3MCECAhEiFw0yNTAxMDYwMDEy MzRaMAwwCgYDVR0VBAMKAQYwIQICEjQXDTI1MDEwMTAwMTIzNFowDDAKBgNVHRUE AwoBATAhAgIzRBcNMjUwMTA0MDAxMjM0WjAMMAoGA1UdFQQDCgEGMCECAlVmFw0y NTAxMDIwMDEyMzRaMAwwCgYDVR0VBAMKAQYwEwICVngXDTI1MDEwNTAwMTIzNFow FAIDAJq8Fw0yNTAxMDMwMDEyMzRaMAUGAytlcANBAAK0jdEbZtlvJDmhKAJQTklZ WqS7xaN9gHvLC/8lvmqsSdY8T/1YbdkVGCyKsWuDSBGVFtrM2DrBzSDarRKctwY= -----END X509 CRL----- A.3.2.2. C509 CRL Plain Hex (177 bytes): 8B000C6F746573742063726C6F6373702D6361542F45E78D2CAEDF368CDF53C39005 D492450E1056021A677C71721A00093A80F68085F6840302031A677488728218571A 677485805824112206978006123400000001334403F4800655660151800656780546 00009ABC02A30000F6584070BB7A38065FBCABFE615170F05A9A9FE83DC892D5F735 812B2A053AF4B300EB466BABB4F1A387CDCE90D8302C680B77AA61566423D7C235F7 BD31344CF7F405 Textual Representation Liao, et al. Expires 6 May 2027 [Page 68] Internet-Draft C509 Revocation November 2026 C509CRL TBSCertList CRL Type: C509CRL (0) Signature Algorithm: Ed25519 (12) Authority Subject: CN=test crlocsp-ca Authority Key Identifier: 2F:45:E7:8D:2C:AE:DF:36:8C:DF:53:C3:90:05:D4:92: 45:0E:10:56 CRL Number: 2 This Update: 2025-01-07T00:12:34Z Next Update: 2025-01-14T00:12:34Z Base CRL Number: Extensions: revokedCertsList: PerIssuerRevokedCerts[0] Issuer: RevokedCertsControl Flags: sorted, with reason (0x3) Serial number length: 2 Date length: 3 Base date: 2025-01-01T00:12:34Z Extensions ExpiredCertsOnCRL (87) 2025-01-01T00:00:00Z RevokedCerts: 0x1122, 2025-01-06T00:12:34Z, certificateHold 0x1234, 2025-01-01T00:12:34Z, keyCompromise 0x3344, 2025-01-04T00:12:34Z, certificateHold 0x5566, 2025-01-02T00:12:34Z, certificateHold 0x5678, 2025-01-05T00:12:34Z, unspecified 0x9ABC, 2025-01-03T00:12:34Z, unspecified RemovedFromCRLCerts: Signature Value 70:bb:7a:38:06:5f:bc:ab:fe:61:51:70:f0:5a:9a:9f: e8:3d:c8:92:d5:f7:35:81:2b:2a:05:3a:f4:b3:00:eb: 46:6b:ab:b4:f1:a3:87:cd:ce:90:d8:30:2c:68:0b:77: aa:61:56:64:23:d7:c2:35:f7:bd:31:34:4c:f7:f4:05 Annotated hex 0: 8B # C509CRL=array[11] 1: 00 # [0]. crlType=0 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 6F # [2]. authoritySubject=char[15] 4: 746573742063726C6F6373702D6361 # "test crlocsp-ca" 19: 54 # [3]. authorityKeyIdentifier=byte[20] 20: 2F45E78D2CAEDF368CDF53C39005D492450E1056 40: 02 # [4]. crlNumber=2 Liao, et al. Expires 6 May 2027 [Page 69] Internet-Draft C509 Revocation November 2026 41: 1A 677C7172 # [5]. thisUpdate=1736208754: # 2025-01-07T00:12:34Z 46: 1A 00093A80 # [6]. nextUpdate=604800: 2025-01-14T00:12:34Z 51: F6 # [7]. baseCrlNumber= 52: 80 # [8]. crlExtensions=array[0] 53: 85 # [9]. revokedCertsList=array[5] #---PerIssuerRevokedCerts[0]--- 54: F6 # [0]. issuer= 55: 84 # [1]. revokedCertsControl=array[4] 56: 03 # [0]. flags: sorted, with reason (0x3) 57: 02 # [1]. serialNumberLength=2 58: 03 # [2]. dateLength=3 59: 1A 67748872 # [3]. baseDate=1735690354: # 2025-01-01T00:12:34Z 64: 82 # [2]. extensions=array[2] #---extension[0]--- 65: 18 57 # [0]. type=ExpiredCertsOnCRL (87) 67: 1A 67748580 # [1]. value=1735689600: # 2025-01-01T00:00:00Z 72: 58 24 # [3]. revokedCerts=byte[36], 6 entries #---entries[0]--- 74: 1122 # CSN=1122 76: 069780 # date=069780: 2025-01-06T00:12:34Z 79: 06 # reason=6: certificateHold #---entries[1]--- 80: 1234 # CSN=1234 82: 000000 # date=000000: 2025-01-01T00:12:34Z 85: 01 # reason=1: keyCompromise #---entries[2]--- 86: 3344 # CSN=3344 88: 03F480 # date=03F480: 2025-01-04T00:12:34Z 91: 06 # reason=6: certificateHold #---entries[3]--- 92: 5566 # CSN=5566 94: 015180 # date=015180: 2025-01-02T00:12:34Z 97: 06 # reason=6: certificateHold #---entries[4]--- 98: 5678 # CSN=5678 100: 054600 # date=054600: 2025-01-05T00:12:34Z 103: 00 # reason=0: unspecified #---entries[5]--- 104: 9ABC # CSN=9ABC 106: 02A300 # date=02A300: 2025-01-03T00:12:34Z 109: 00 # reason=0: unspecified 110: F6 # [4]. removedFromCRLCerts= 111: 58 40 # [10]. signature value=byte[64] 113: 70BB7A38065FBCABFE615170F05A9A9FE83DC892D5F735812B2A053AF4 142: B300EB466BABB4F1A387CDCE90D8302C680B77AA61566423D7C235F7BD Liao, et al. Expires 6 May 2027 [Page 70] Internet-Draft C509 Revocation November 2026 171: 31344CF7F405 A.3.3. Delta CRL Example With Revoked Certificates * Size reduction: 52% * Verifiable with certificate in Appendix A.2.1.2 * Direct CRL * Delta CRL * With revoked certificates * With entries removed from the CRL since the last full CRL * Note that the X.509 CRL and the C509 CRL are not convertible. A.3.3.1. X.509 CRL PEM content (335 bytes): -----BEGIN X509 CRL----- MIIBSzCB/gIBATAFBgMrZXAwGjEYMBYGA1UEAwwPdGVzdCBjcmxvY3NwLWNhFw0y NTAxMDgwMDEyMzRaFw0yNTAxMTAwMDEyMzRaMIG3MCECAjQSFw0yNTAxMDcxMjEy MzRaMAwwCgYDVR0VBAMKAQEwEwICeFYXDTI1MDEwODAwMTAzNFowFAIDALyaFw0y NTAxMDgwMDA4MzRaMCECAhEiFw0yNTAxMDcxMzEyMzRaMAwwCgYDVR0VBAMKAQgw IQICM0QXDTI1MDEwNzE0MTIzNFowDDAKBgNVHRUEAwoBCDAhAgJVZhcNMjUwMTA3 MTUxMjM0WjAMMAoGA1UdFQQDCgEIMAUGAytlcANBAKxSjqeefzjGdniA3bQCg3rL d7rrJnfh8GfsWdawC9BHjK1G336hRYaxwLOtyQS4Mn80jjSwrN+bXg10spSA4gA= -----END X509 CRL----- A.3.3.2. C509 CRL Plain Hex (160 bytes): 8B000C6F746573742063726C6F6373702D6361542F45E78D2CAEDF368CDF53C39005 D492450E1056031A677DC2F21A0002A300028085F6840302021A677D1A32804F3412 0000017856A84800BC9AA7D0004C11220E1033441C2055662A305840369C3E6412E9 D0537CD39EA1DA40C68C32B4EC0E5678650D6AF73677A5A0CF37F1CDE75D663DE374 9101F4354CCD6D8D05773887650046932B583C5365D7EB0B Textual Representation Liao, et al. Expires 6 May 2027 [Page 71] Internet-Draft C509 Revocation November 2026 C509CRL TBSCertList CRL Type: C509CRL (0) Signature Algorithm: Ed25519 (12) Authority Subject: CN=test crlocsp-ca Authority Key Identifier: 2F:45:E7:8D:2C:AE:DF:36:8C:DF:53:C3:90:05:D4:92: 45:0E:10:56 CRL Number: 3 This Update: 2025-01-08T00:12:34Z Next Update: 2025-01-10T00:12:34Z Base CRL Number: 2 Extensions: revokedCertsList: PerIssuerRevokedCerts[0] Issuer: RevokedCertsControl Flags: sorted, with reason (0x3) Serial number length: 2 Date length: 2 Base date: 2025-01-07T12:12:34Z Extensions: RevokedCerts: 0x3412, 2025-01-07T12:12:34Z, keyCompromise 0x7856, 2025-01-08T00:10:34Z, unspecified 0xBC9A, 2025-01-08T00:08:34Z, unspecified RemovedFromCRLCerts: 0x1122, 2025-01-07T13:12:34Z 0x3344, 2025-01-07T14:12:34Z 0x5566, 2025-01-07T15:12:34Z Signature Value 36:9c:3e:64:12:e9:d0:53:7c:d3:9e:a1:da:40:c6:8c: 32:b4:ec:0e:56:78:65:0d:6a:f7:36:77:a5:a0:cf:37: f1:cd:e7:5d:66:3d:e3:74:91:01:f4:35:4c:cd:6d:8d: 05:77:38:87:65:00:46:93:2b:58:3c:53:65:d7:eb:0b Annotated hex 0: 8B # C509CRL=array[11] 1: 00 # [0]. crlType=0 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 6F # [2]. authoritySubject=char[15] 4: 746573742063726C6F6373702D6361 # "test crlocsp-ca" 19: 54 # [3]. authorityKeyIdentifier=byte[20] 20: 2F45E78D2CAEDF368CDF53C39005D492450E1056 40: 03 # [4]. crlNumber=3 41: 1A 677DC2F2 # [5]. thisUpdate=1736295154: # 2025-01-08T00:12:34Z Liao, et al. Expires 6 May 2027 [Page 72] Internet-Draft C509 Revocation November 2026 46: 1A 0002A300 # [6]. nextUpdate=172800: 2025-01-10T00:12:34Z 51: 02 # [7]. baseCrlNumber=2 52: 80 # [8]. crlExtensions=array[0] 53: 85 # [9]. revokedCertsList=array[5] #---PerIssuerRevokedCerts[0]--- 54: F6 # [0]. issuer= 55: 84 # [1]. revokedCertsControl=array[4] 56: 03 # [0]. flags: sorted, with reason (0x3) 57: 02 # [1]. serialNumberLength=2 58: 02 # [2]. dateLength=2 59: 1A 677D1A32 # [3]. baseDate=1736251954: # 2025-01-07T12:12:34Z 64: 80 # [2]. extensions=array[0] 65: 4F # [3]. revokedCerts=byte[15], 3 entries #---entries[0]--- 66: 3412 # CSN=3412 68: 0000 # date=0000: 2025-01-07T12:12:34Z 70: 01 # reason=1: keyCompromise #---entries[1]--- 71: 7856 # CSN=7856 73: A848 # date=A848: 2025-01-08T00:10:34Z 75: 00 # reason=0: unspecified #---entries[2]--- 76: BC9A # CSN=BC9A 78: A7D0 # date=A7D0: 2025-01-08T00:08:34Z 80: 00 # reason=0: unspecified 81: 4C # [4]. removedFromCRLCerts=byte[12], 3 # entries #---entries[0]--- 82: 1122 # CSN=1122 84: 0E10 # date=0E10: 2025-01-07T13:12:34Z #---entries[1]--- 86: 3344 # CSN=3344 88: 1C20 # date=1C20: 2025-01-07T14:12:34Z #---entries[2]--- 90: 5566 # CSN=5566 92: 2A30 # date=2A30: 2025-01-07T15:12:34Z 94: 58 40 # [10]. signature value=byte[64] 96: 369C3E6412E9D0537CD39EA1DA40C68C32B4EC0E5678650D6AF73677A5 125: A0CF37F1CDE75D663DE3749101F4354CCD6D8D05773887650046932B58 154: 3C5365D7EB0B A.3.4. Indirect CRL Example With Revoked Certificates * Size reduction: 51% * Verifiable with certificate in Appendix A.2.2.2 Liao, et al. Expires 6 May 2027 [Page 73] Internet-Draft C509 Revocation November 2026 * Indirect CRL * Full CRL * With revoked certificates * With two issuers * Note that the X.509 CRL and the C509 CRL are not convertible. A.3.4.1. X.509 CRL PEM content (409 bytes): -----BEGIN X509 CRL----- MIIBlTCCAUcCAQEwBQYDK2VwMBUxEzARBgNVBAMMCmNybC1zaWduZXIXDTI1MDEw NzAwMTIzNFoXDTI1MDExNDAwMTIzNFowggEEMEoCAhI0Fw0yNTAxMDEwMDEyMzRa MDUwCgYDVR0VBAMKAQEwJwYDVR0dBCAwHqQcMBoxGDAWBgNVBAMMD3Rlc3QgY3Js b2NzcC1jYTATAgJWeBcNMjUwMTA1MDAxMjM0WjAUAgMAmrwXDTI1MDEwMzAwMTIz NFowRQICESIXDTI1MDEwNjAwMTIzNFowMDAKBgNVHRUEAwoBBjAiBgNVHR0EGzAZ pBcwFTETMBEGA1UEAwwKZXhhbXBsZSBDQTAhAgIzRBcNMjUwMTA0MDAxMjM0WjAM MAoGA1UdFQQDCgEGMCECAlVmFw0yNTAxMDIwMDEyMzRaMAwwCgYDVR0VBAMKAQYw BQYDK2VwA0EAUMWMYunvDSqQzFV+lo5O5TZmopxPvnMBpuR0Do8kCA4P4PHGg/E8 1U6GfBu/9MvUuTOX13loPDedsjvs/uK8AQ== -----END X509 CRL----- A.3.4.2. C509 CRL Plain Hex (202 bytes): 8B000C6A63726C2D7369676E65725409E433582556550A27DB4A19BCE2D660884722 B6041A677C71721A00093A80F6808A6F746573742063726C6F6373702D6361840302 031A6774887280521234000000015678054600009ABC02A30000F66A6578616D706C 65204341840302031A6775D9F28052112205460006334402A30006556600000006F6 5840F00D6270F91486A7F378D06F01A807E64E086BB366BE3A1592CE4A64BFFD621F 30E2AB93766B4F8818116AB7DA7BEDF7C3EBCBDEAC6D0455F5F5669712006205 Textual Representation Liao, et al. Expires 6 May 2027 [Page 74] Internet-Draft C509 Revocation November 2026 C509CRL TBSCertList CRL Type: C509CRL (0) Signature Algorithm: Ed25519 (12) Authority Subject: CN=crl-signer Authority Key Identifier: 09:E4:33:58:25:56:55:0A:27:DB:4A:19:BC:E2:D6:60: 88:47:22:B6 CRL Number: 4 This Update: 2025-01-07T00:12:34Z Next Update: 2025-01-14T00:12:34Z Base CRL Number: Extensions: revokedCertsList: PerIssuerRevokedCerts[0] Issuer: CN=test crlocsp-ca RevokedCertsControl Flags: sorted, with reason (0x3) Serial number length: 2 Date length: 3 Base date: 2025-01-01T00:12:34Z Extensions: RevokedCerts: 0x1234, 2025-01-01T00:12:34Z, keyCompromise 0x5678, 2025-01-05T00:12:34Z, unspecified 0x9ABC, 2025-01-03T00:12:34Z, unspecified RemovedFromCRLCerts: PerIssuerRevokedCerts[1] Issuer: CN=example CA RevokedCertsControl Flags: sorted, with reason (0x3) Serial number length: 2 Date length: 3 Base date: 2025-01-02T00:12:34Z Extensions: RevokedCerts: 0x1122, 2025-01-06T00:12:34Z, certificateHold 0x3344, 2025-01-04T00:12:34Z, certificateHold 0x5566, 2025-01-02T00:12:34Z, certificateHold RemovedFromCRLCerts: Signature Value f0:0d:62:70:f9:14:86:a7:f3:78:d0:6f:01:a8:07:e6: 4e:08:6b:b3:66:be:3a:15:92:ce:4a:64:bf:fd:62:1f: 30:e2:ab:93:76:6b:4f:88:18:11:6a:b7:da:7b:ed:f7: c3:eb:cb:de:ac:6d:04:55:f5:f5:66:97:12:00:62:05 Annotated hex Liao, et al. Expires 6 May 2027 [Page 75] Internet-Draft C509 Revocation November 2026 0: 8B # C509CRL=array[11] 1: 00 # [0]. crlType=0 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 6A # [2]. authoritySubject=char[10] 4: 63726C2D7369676E6572 # "crl-signer" 14: 54 # [3]. authorityKeyIdentifier=byte[20] 15: 09E433582556550A27DB4A19BCE2D660884722B6 35: 04 # [4]. crlNumber=4 36: 1A 677C7172 # [5]. thisUpdate=1736208754: # 2025-01-07T00:12:34Z 41: 1A 00093A80 # [6]. nextUpdate=604800: 2025-01-14T00:12:34Z 46: F6 # [7]. baseCrlNumber= 47: 80 # [8]. crlExtensions=array[0] 48: 8A # [9]. revokedCertsList=array[10] #---PerIssuerRevokedCerts[0]--- 49: 6F # [0]. issuer=char[15] 50: 746573742063726C6F6373702D6361 # "test crlocsp-ca" 65: 84 # [1]. revokedCertsControl=array[4] 66: 03 # [0]. flags: sorted, with reason (0x3) 67: 02 # [1]. serialNumberLength=2 68: 03 # [2]. dateLength=3 69: 1A 67748872 # [3]. baseDate=1735690354: # 2025-01-01T00:12:34Z 74: 80 # [2]. extensions=array[0] 75: 52 # [3]. revokedCerts=byte[18], 3 entries #---entries[0]--- 76: 1234 # CSN=1234 78: 000000 # date=000000: 2025-01-01T00:12:34Z 81: 01 # reason=1: keyCompromise #---entries[1]--- 82: 5678 # CSN=5678 84: 054600 # date=054600: 2025-01-05T00:12:34Z 87: 00 # reason=0: unspecified #---entries[2]--- 88: 9ABC # CSN=9ABC 90: 02A300 # date=02A300: 2025-01-03T00:12:34Z 93: 00 # reason=0: unspecified 94: F6 # [4]. removedFromCRLCerts= #---PerIssuerRevokedCerts[1]--- 95: 6A # [5]. issuer=char[10] 96: 6578616D706C65204341 # "example CA" 106: 84 # [6]. revokedCertsControl=array[4] 107: 03 # [0]. flags: sorted, with reason (0x3) 108: 02 # [1]. serialNumberLength=2 109: 03 # [2]. dateLength=3 110: 1A 6775D9F2 # [3]. baseDate=1735776754: # 2025-01-02T00:12:34Z 115: 80 # [7]. extensions=array[0] Liao, et al. Expires 6 May 2027 [Page 76] Internet-Draft C509 Revocation November 2026 116: 52 # [8]. revokedCerts=byte[18], 3 entries #---entries[0]--- 117: 1122 # CSN=1122 119: 054600 # date=054600: 2025-01-06T00:12:34Z 122: 06 # reason=6: certificateHold #---entries[1]--- 123: 3344 # CSN=3344 125: 02A300 # date=02A300: 2025-01-04T00:12:34Z 128: 06 # reason=6: certificateHold #---entries[2]--- 129: 5566 # CSN=5566 131: 000000 # date=000000: 2025-01-02T00:12:34Z 134: 06 # reason=6: certificateHold 135: F6 # [9]. removedFromCRLCerts= 136: 58 40 # [10]. signature value=byte[64] 138: F00D6270F91486A7F378D06F01A807E64E086BB366BE3A1592CE4A64BF 167: FD621F30E2AB93766B4F8818116AB7DA7BEDF7C3EBCBDEAC6D0455F5F5 196: 669712006205 A.4. OCSP Request Examples A.4.1. Simple OCSP Request Example * Size reduction: 66% * Simple OCSP Request (C509SimpleOCSPRequest) * Note that the X.509 OCSP Request and the C509 OCSP Request are not convertible. A.4.1.1. X.509 OCSP Request PEM content (150 bytes): -----BEGIN OCSP REQUEST----- MIGTMIGQMGswaTBnMAsGCWCGSAFlAwQCAQQgMlOOdIW9N65FTx8NK5dV11i5H26O Onrzl6D0AGBcb/gEIMwRyHQKBQnsTaFM5YhucjZMD2O2DtY0fxPBbuclt2aiAhQS NBI0EjQSNBI0EjQSNBI0EjQSNKIhMB8wHQYJKwYBBQUHMAECBBARERERERERERER ERERERER -----END OCSP REQUEST----- A.4.1.2. C509 OCSP Request Plain Hex (51 bytes): 86022F501111111111111111111111111111111148A01C73A5F3B063345410652787 FA0527BC2449A1BFC5AB31AA5A6F0D8D80 Liao, et al. Expires 6 May 2027 [Page 77] Internet-Draft C509 Revocation November 2026 Textual Representation C509SimpleOCSPRequest Type: C509SimpleOCSPRequest (2) Hash Algorithm: SHA256 (-16) IssuerCertHash: a0:1c:73:a5:f3:b0:63:34 SerialNumberHash: 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 Extensions: Annotated hex 0: 86 # C509OCSPRequest=array[6] 1: 02 # [0]. ocspRequestType=C509SimpleOCSPRequest # (2) 2: 2F # [1]. hashAlgorithm=SHA256 (-16) 3: 50 # [2]. nonce=byte[16] 4: 11111111111111111111111111111111 20: 48 # [3]. issuerCertHash=byte[8] 21: A01C73A5F3B06334 29: 54 # [4]. serialNumberHash=byte[20] 30: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 50: 80 # [5]. extensions=array[0] A.4.2. Unsigned OCSP Request Example * Size reduction: 72% * Unsigned OCSP Request (C509UnsignedOCSPRequest) * Note that the X.509 OCSP Request and the C509 OCSP Request are not convertible. A.4.2.1. X.509 OCSP Request PEM content (475 bytes): Liao, et al. Expires 6 May 2027 [Page 78] Internet-Draft C509 Revocation November 2026 -----BEGIN OCSP REQUEST----- MIIB1zCCAdMwggGsMGkwZzALBglghkgBZQMEAgEEIDJTjnSFvTeuRU8fDSuXVddY uR9ujjp685eg9ABgXG/4BCDMEch0CgUJ7E2hTOWIbnI2TA9jtg7WNH8TwW7nJbdm ogIUEjQSNBI0EjQSNBI0EjQSNBI0EjQwaTBnMAsGCWCGSAFlAwQCAQQgMlOOdIW9 N65FTx8NK5dV11i5H26OOnrzl6D0AGBcb/gEIMwRyHQKBQnsTaFM5YhucjZMD2O2 DtY0fxPBbuclt2aiAhQ0VjRWNFY0VjRWNFY0VjRWNFY0VjBpMGcwCwYJYIZIAWUD BAIBBCAyU450hb03rkVPHw0rl1XXWLkfbo46evOXoPQAYFxv+AQgzBHIdAoFCexN oUzliG5yNkwPY7YO1jR/E8Fu5yW3ZqICFFZ4VnhWeFZ4VnhWeFZ4VnhWeFZ4MGkw ZzALBglghkgBZQMEAgEEIDMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMz BCBERERERERERERERERERERERERERERERERERERERERERAIUIjMiMyIzIjMiMyIz IjMiMyIzIjOiITAfMB0GCSsGAQUFBzABAgQQEREREREREREREREREREREQ== -----END OCSP REQUEST----- A.4.2.2. C509 OCSP Request Plain Hex (132 bytes): 85002F5011111111111111111111111111111111808648A01C73A5F3B06334808654 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D805475D8BC4FBAFC6694467641E7 48DFD53A8B9D176D8054D1AC135D7DA29BDCF4DCA0D5281A51605B67840080482222 222222222222808254D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B80 Textual Representation Liao, et al. Expires 6 May 2027 [Page 79] Internet-Draft C509 Revocation November 2026 C509UnsignedOCSPRequest Type: C509UnsignedOCSPRequest (0) Hash Algorithm: SHA256 (-16) Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 Requests OcspPerIssuerRequest issuerCertHash a0:1c:73:a5:f3:b0:63:34 extensions: singleRequests SingleCertRequest SerialNumberHash: 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Extensions: SingleCertRequest SerialNumberHash: 75:d8:bc:4f:ba:fc:66:94:46:76:41:e7:48:df:d5:3a: 8b:9d:17:6d Extensions: SingleCertRequest SerialNumberHash: d1:ac:13:5d:7d:a2:9b:dc:f4:dc:a0:d5:28:1a:51:60: 5b:67:84:00 Extensions: OcspPerIssuerRequest issuerCertHash 22:22:22:22:22:22:22:22 extensions: singleRequests SingleCertRequest SerialNumberHash: d3:a0:c1:e3:db:92:e8:f6:81:05:37:d4:5c:fa:ec:f6: ce:41:7e:3b Extensions: Extensions: Annotated hex Liao, et al. Expires 6 May 2027 [Page 80] Internet-Draft C509 Revocation November 2026 0: 85 # C509OCSPRequest=array[5] 1: 00 # [0]. ocspRequestType=C509UnsignedOCSPRequest # (0) 2: 2F # [1]. hashAlgorithm=SHA256 (-16) 3: 50 # [2]. nonce=byte[16] 4: 11111111111111111111111111111111 20: 80 # [3]. extensions=array[0] 21: 86 # [4]. requests=array[6] #---PerIssuerRequests[0]--- 22: 48 # [0]. issuerCertHash=byte[8] 23: A01C73A5F3B06334 31: 80 # [1]. extensions=array[0] 32: 86 # [2]. singleRequests=array[6] #---SingleCertRequests[0]--- 33: 54 # [0]. serialNumberHash=byte[20] 34: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 54: 80 # [1]. extensions=array[0] #---SingleCertRequests[1]--- 55: 54 # [2]. serialNumberHash=byte[20] 56: 75D8BC4FBAFC6694467641E748DFD53A8B9D176D 76: 80 # [3]. extensions=array[0] #---SingleCertRequests[2]--- 77: 54 # [4]. serialNumberHash=byte[20] 78: D1AC135D7DA29BDCF4DCA0D5281A51605B678400 98: 80 # [5]. extensions=array[0] #---PerIssuerRequests[1]--- 99: 48 # [3]. issuerCertHash=byte[8] 100: 2222222222222222 108: 80 # [4]. extensions=array[0] 109: 82 # [5]. singleRequests=array[2] #---SingleCertRequests[0]--- 110: 54 # [0]. serialNumberHash=byte[20] 111: D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B 131: 80 # [1]. extensions=array[0] A.4.3. Signed OCSP Request Example Without Requestor's Certificate * Size reduction: 64% * Verifiable with certificate in Appendix A.2.3.2 * Signed OCSP Request (C509SignedOCSPRequest) without requestor's certificate * Note that the X.509 OCSP Request and the C509 OCSP Request are not convertible. Liao, et al. Expires 6 May 2027 [Page 81] Internet-Draft C509 Revocation November 2026 A.4.3.1. X.509 OCSP Request PEM content (584 bytes): -----BEGIN OCSP REQUEST----- MIICRDCCAfKhHaQbMBkxFzAVBgNVBAMMDm9jc3AtcmVxdWVzdG9yMIIBrDBpMGcw CwYJYIZIAWUDBAIBBCAyU450hb03rkVPHw0rl1XXWLkfbo46evOXoPQAYFxv+AQg zBHIdAoFCexNoUzliG5yNkwPY7YO1jR/E8Fu5yW3ZqICFBI0EjQSNBI0EjQSNBI0 EjQSNBI0MGkwZzALBglghkgBZQMEAgEEIDJTjnSFvTeuRU8fDSuXVddYuR9ujjp6 85eg9ABgXG/4BCDMEch0CgUJ7E2hTOWIbnI2TA9jtg7WNH8TwW7nJbdmogIUNFY0 VjRWNFY0VjRWNFY0VjRWNFYwaTBnMAsGCWCGSAFlAwQCAQQgMlOOdIW9N65FTx8N K5dV11i5H26OOnrzl6D0AGBcb/gEIMwRyHQKBQnsTaFM5YhucjZMD2O2DtY0fxPB buclt2aiAhRWeFZ4VnhWeFZ4VnhWeFZ4VnhWeDBpMGcwCwYJYIZIAWUDBAIBBCAz MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwQgRERERERERERERERERERE REREREREREREREREREREREQCFCIzIjMiMyIzIjMiMyIzIjMiMyIzoiEwHzAdBgkr BgEFBQcwAQIEEBERERERERERERERERERERGgTDBKMAUGAytlcANBAJxdKYl8BFnb nngr44EK7xqnJFQWfa8iM4Lje1eezFCTX1GiRVJEqS2Oe2HEdFggCngY5q5RkRaY qvjTEhXlRwg= -----END OCSP REQUEST----- A.4.3.2. C509 OCSP Request Plain Hex (209 bytes): 89010C2F50111111111111111111111111111111114844F0528B56F35AD9808648A0 1C73A5F3B0633480865410652787FA0527BC2449A1BFC5AB31AA5A6F0D8D805475D8 BC4FBAFC6694467641E748DFD53A8B9D176D8054D1AC135D7DA29BDCF4DCA0D5281A 51605B67840080482222222222222222808254D3A0C1E3DB92E8F6810537D45CFAEC F6CE417E3B80F658407B840FABA2179AC564A97BA369436F05316FE45FFA28B773FB 33397123BA7AB17605572D7B638B26127E1B86FB452C5B4F1FEAE1638D5D328AF893 B77A7D1106 Textual Representation Liao, et al. Expires 6 May 2027 [Page 82] Internet-Draft C509 Revocation November 2026 C509SignedOCSPRequest TBSOCSPRequest Type: C509SignedOCSPRequest (1) Signature Algorithm: Ed25519 (12) Hash Algorithm: SHA256 (-16) RequestorCertHash 44:f0:52:8b:56:f3:5a:d9 Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 Extensions: Requests OcspPerIssuerRequest issuerCertHash a0:1c:73:a5:f3:b0:63:34 extensions: singleRequests SingleCertRequest SerialNumberHash: 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Extensions: SingleCertRequest SerialNumberHash: 75:d8:bc:4f:ba:fc:66:94:46:76:41:e7:48:df:d5:3a: 8b:9d:17:6d Extensions: SingleCertRequest SerialNumberHash: d1:ac:13:5d:7d:a2:9b:dc:f4:dc:a0:d5:28:1a:51:60: 5b:67:84:00 Extensions: OcspPerIssuerRequest issuerCertHash 22:22:22:22:22:22:22:22 extensions: singleRequests SingleCertRequest SerialNumberHash: d3:a0:c1:e3:db:92:e8:f6:81:05:37:d4:5c:fa:ec:f6: ce:41:7e:3b Extensions: Requestor Certs: null Signature Value 7b:84:0f:ab:a2:17:9a:c5:64:a9:7b:a3:69:43:6f:05: 31:6f:e4:5f:fa:28:b7:73:fb:33:39:71:23:ba:7a:b1: 76:05:57:2d:7b:63:8b:26:12:7e:1b:86:fb:45:2c:5b: 4f:1f:ea:e1:63:8d:5d:32:8a:f8:93:b7:7a:7d:11:06 Liao, et al. Expires 6 May 2027 [Page 83] Internet-Draft C509 Revocation November 2026 Annotated hex 0: 89 # C509OCSPRequest=array[9] 1: 01 # [0]. ocspRequestType=C509SignedOCSPRequest # (1) 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 2F # [2]. hashAlgorithm=SHA256 (-16) 4: 50 # [3]. nonce=byte[16] 5: 11111111111111111111111111111111 21: 48 # [4]. requestorCertHash=byte[8] 22: 44F0528B56F35AD9 30: 80 # [5]. extensions=array[0] 31: 86 # [6]. requests=array[6] #---PerIssuerRequests[0]--- 32: 48 # [0]. issuerCertHash=byte[8] 33: A01C73A5F3B06334 41: 80 # [1]. extensions=array[0] 42: 86 # [2]. singleRequests=array[6] #---SingleCertRequests[0]--- 43: 54 # [0]. serialNumberHash=byte[20] 44: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 64: 80 # [1]. extensions=array[0] #---SingleCertRequests[1]--- 65: 54 # [2]. serialNumberHash=byte[20] 66: 75D8BC4FBAFC6694467641E748DFD53A8B9D176D 86: 80 # [3]. extensions=array[0] #---SingleCertRequests[2]--- 87: 54 # [4]. serialNumberHash=byte[20] 88: D1AC135D7DA29BDCF4DCA0D5281A51605B678400 108: 80 # [5]. extensions=array[0] #---PerIssuerRequests[1]--- 109: 48 # [3]. issuerCertHash=byte[8] 110: 2222222222222222 118: 80 # [4]. extensions=array[0] 119: 82 # [5]. singleRequests=array[2] #---SingleCertRequests[0]--- 120: 54 # [0]. serialNumberHash=byte[20] 121: D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B 141: 80 # [1]. extensions=array[0] 142: F6 # [7]. requestorCerts= 143: 58 40 # [8]. signatureValue=byte[64] 145: 7B840FABA2179AC564A97BA369436F05316FE45FFA28B773FB33397123 174: BA7AB17605572D7B638B26127E1B86FB452C5B4F1FEAE1638D5D328AF8 203: 93B77A7D1106 Liao, et al. Expires 6 May 2027 [Page 84] Internet-Draft C509 Revocation November 2026 A.4.4. Signed OCSP Request Example With Requestor's Certificate * Size reduction: 59% * Verifiable with certificate in Appendix A.2.3.2 * Signed OCSP Request (C509SignedOCSPRequest) with embedded requestor's certificate * Note that the X.509 OCSP Request and the C509 OCSP Request are not convertible. A.4.4.1. X.509 OCSP Request PEM content (1035 bytes): -----BEGIN OCSP REQUEST----- MIIEBzCCAnGhHaQbMBkxFzAVBgNVBAMMDm9jc3AtcmVxdWVzdG9yMIIBrDBpMGcw CwYJYIZIAWUDBAIBBCAyU450hb03rkVPHw0rl1XXWLkfbo46evOXoPQAYFxv+AQg zBHIdAoFCexNoUzliG5yNkwPY7YO1jR/E8Fu5yW3ZqICFBI0EjQSNBI0EjQSNBI0 EjQSNBI0MGkwZzALBglghkgBZQMEAgEEIDJTjnSFvTeuRU8fDSuXVddYuR9ujjp6 85eg9ABgXG/4BCDMEch0CgUJ7E2hTOWIbnI2TA9jtg7WNH8TwW7nJbdmogIUNFY0 VjRWNFY0VjRWNFY0VjRWNFYwaTBnMAsGCWCGSAFlAwQCAQQgMlOOdIW9N65FTx8N K5dV11i5H26OOnrzl6D0AGBcb/gEIMwRyHQKBQnsTaFM5YhucjZMD2O2DtY0fxPB buclt2aiAhRWeFZ4VnhWeFZ4VnhWeFZ4VnhWeDBpMGcwCwYJYIZIAWUDBAIBBCAz MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwQgRERERERERERERERERERE REREREREREREREREREREREQCFCIzIjMiMyIzIjMiMyIzIjMiMyIzooGfMIGcMBoG CSsGAQUFBzABBAQNMAsGCSsGAQUFBzABATBfBgkrBgEFBQcwAQgEUjBQMAcwBQYD K2VwMCEwCgYIKoZIzj0EAwIwEwYHKoZIzj0CAQYIKoZIzj0DAQcwIjAKBggqhkjO PQQDAjAUBgcqhkjOPQIBBgkrJAMDAggBAQcwHQYJKwYBBQUHMAECBBARERERERER ERERERERERERoIIBjjCCAYowBQYDK2VwA0EAnqnZjVvfg50lAZOGBiSExUCuMKja IHCZKykPyiVpW8ECz2Ejd8NiIQ/pnXvzTRvbQz1i7y+figq4L4YZYGfjAaCCATww ggE4MIIBNDCB56ADAgECAgISNjAFBgMrZXAwGjEYMBYGA1UEAwwPdGVzdCBjcmxv Y3NwLWNhMB4XDTI1MDEwMjAwMDAwMFoXDTI2MDEwMjAwMDAwMFowGTEXMBUGA1UE AwwOb2NzcC1yZXF1ZXN0b3IwKjAFBgMrZXADIQAEUwsXZO3UtOM6tErw+DiWHABx dtdLajVG7Lf9VzIN06NSMFAwHQYDVR0OBBYEFLE21FmKGxtqhtplEK6lZNgSl+T5 MA4GA1UdDwEB/wQEAwIHgDAfBgNVHSMEGDAWgBTZfXfmNML3ADAMpY/IdzZbFVAH ojAFBgMrZXADQQCY+ZIhXpHFm+r/HrfqPv0rqn4dvQHRKwN3gZhZyWeQP/nP6vYx W73WoQgSSbXiyYVCHNASdBpZljgSyNJ6NX0C -----END OCSP REQUEST----- A.4.4.2. C509 OCSP Request Plain Hex (420 bytes): Liao, et al. Expires 6 May 2027 [Page 85] Internet-Draft C509 Revocation November 2026 89010C2F50111111111111111111111111111111114844F0528B56F35AD984185D82 0001185E840CF600820118188648A01C73A5F3B0633480865410652787FA0527BC24 49A1BFC5AB31AA5A6F0D8D805475D8BC4FBAFC6694467641E748DFD53A8B9D176D80 54D1AC135D7DA29BDCF4DCA0D5281A51605B67840080482222222222222222808254 D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B8058C38B024212360C6F74657374 2063726C6F6373702D63611A6775D7001A69570A806E6F6373702D72657175657374 6F720C582004530B1764EDD4B4E33AB44AF0F838961C007176D74B6A3546ECB7FD57 320DD3860154DD51BDB2A2C791C062D4027856DBACF52607F0BE210107542F45E78D 2CAEDF368CDF53C39005D492450E10565840F8C6183ECF8C3EFD50DD4942D172814C 46EC0FC01DD586A597178DF864A0D9DA86B7CA17FC9F772FF04C80E98B60D5B4B624 08A277A5B70D0D2A3F5ED5442D07584075C65F028199FFC884B6A0E3E4F9EDC380A0 37B1E9B5868C74F5A0CEBCCDF6C7D0C0D69B1BB6976414444E156D72E12E2FF93678 2513516B02B4A1E40EB13D01 Textual Representation C509SignedOCSPRequest TBSOCSPRequest Type: C509SignedOCSPRequest (1) Signature Algorithm: Ed25519 (12) Hash Algorithm: SHA256 (-16) RequestorCertHash 44:f0:52:8b:56:f3:5a:d9 Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 Extensions AcceptOCSPResponseTypes (93) C509ErrorOCSPResponse (0) C509BasicOCSPResponse (1) preferredSignatureAlgorithms (94) Preferred Signature Algorithm: Signature Algorithm: Ed25519 (12) Preferred Signature Algorithm: Signature Algorithm: ecdsa-with-sha256 (0) Public Key Algorithms: EC public key on curve secp256r1 (1) EC public key on curve brainpoolp256r1 (24) Requests OcspPerIssuerRequest issuerCertHash a0:1c:73:a5:f3:b0:63:34 extensions: singleRequests SingleCertRequest SerialNumberHash: 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Extensions: Liao, et al. Expires 6 May 2027 [Page 86] Internet-Draft C509 Revocation November 2026 SingleCertRequest SerialNumberHash: 75:d8:bc:4f:ba:fc:66:94:46:76:41:e7:48:df:d5:3a: 8b:9d:17:6d Extensions: SingleCertRequest SerialNumberHash: d1:ac:13:5d:7d:a2:9b:dc:f4:dc:a0:d5:28:1a:51:60: 5b:67:84:00 Extensions: OcspPerIssuerRequest issuerCertHash 22:22:22:22:22:22:22:22 extensions: singleRequests SingleCertRequest SerialNumberHash: d3:a0:c1:e3:db:92:e8:f6:81:05:37:d4:5c:fa:ec:f6: ce:41:7e:3b Extensions: Requestor Certs C509Certificate 8b:02:42:12:36:0c:6f:74:65:73:74:20:63:72:6c:6f: 63:73:70:2d:63:61:1a:67:75:d7:00:1a:69:57:0a:80: 6e:6f:63:73:70:2d:72:65:71:75:65:73:74:6f:72:0c: 58:20:04:53:0b:17:64:ed:d4:b4:e3:3a:b4:4a:f0:f8: 38:96:1c:00:71:76:d7:4b:6a:35:46:ec:b7:fd:57:32: 0d:d3:86:01:54:dd:51:bd:b2:a2:c7:91:c0:62:d4:02: 78:56:db:ac:f5:26:07:f0:be:21:01:07:54:2f:45:e7: 8d:2c:ae:df:36:8c:df:53:c3:90:05:d4:92:45:0e:10: 56:58:40:f8:c6:18:3e:cf:8c:3e:fd:50:dd:49:42:d1: 72:81:4c:46:ec:0f:c0:1d:d5:86:a5:97:17:8d:f8:64: a0:d9:da:86:b7:ca:17:fc:9f:77:2f:f0:4c:80:e9:8b: 60:d5:b4:b6:24:08:a2:77:a5:b7:0d:0d:2a:3f:5e:d5: 44:2d:07 Signature Value 75:c6:5f:02:81:99:ff:c8:84:b6:a0:e3:e4:f9:ed:c3: 80:a0:37:b1:e9:b5:86:8c:74:f5:a0:ce:bc:cd:f6:c7: d0:c0:d6:9b:1b:b6:97:64:14:44:4e:15:6d:72:e1:2e: 2f:f9:36:78:25:13:51:6b:02:b4:a1:e4:0e:b1:3d:01 Annotated hex Liao, et al. Expires 6 May 2027 [Page 87] Internet-Draft C509 Revocation November 2026 0: 89 # C509OCSPRequest=array[9] 1: 01 # [0]. ocspRequestType=C509SignedOCSPRequest # (1) 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 2F # [2]. hashAlgorithm=SHA256 (-16) 4: 50 # [3]. nonce=byte[16] 5: 11111111111111111111111111111111 21: 48 # [4]. requestorCertHash=byte[8] 22: 44F0528B56F35AD9 30: 84 # [5]. extensions=array[4] #---extension[0]--- 31: 18 5D # [0]. type=AcceptOCSPResponseTypes (93) 33: 82 # [1]. value=array[2] 34: 00 # [0]. C509ErrorOCSPResponse (0) 35: 01 # [1]. C509BasicOCSPResponse (1) #---extension[1]--- 36: 18 5E # [2]. type=preferredSignatureAlgorithms # (94) 38: 84 # [3]. value=array[4] #---preferredSignatureAlgorithms[0]--- 39: 0C # [0]. sigIdentifier=Ed25519 (12) 40: F6 # [1]. pubKeyAlgIdentifiers= #---preferredSignatureAlgorithms[1]--- 41: 00 # [2]. sigIdentifier=ecdsa-with-sha256 (0) 42: 82 # [3]. pubKeyAlgIdentifiers=array[2] 43: 01 # [0]. pubKeyAlgIdentifier=EC public key # on curve secp256r1 (1) 44: 18 18 # [1]. pubKeyAlgIdentifier=EC public key # on curve brainpoolp256r1 (24) 46: 86 # [6]. requests=array[6] #---PerIssuerRequests[0]--- 47: 48 # [0]. issuerCertHash=byte[8] 48: A01C73A5F3B06334 56: 80 # [1]. extensions=array[0] 57: 86 # [2]. singleRequests=array[6] #---SingleCertRequests[0]--- 58: 54 # [0]. serialNumberHash=byte[20] 59: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 79: 80 # [1]. extensions=array[0] #---SingleCertRequests[1]--- 80: 54 # [2]. serialNumberHash=byte[20] 81: 75D8BC4FBAFC6694467641E748DFD53A8B9D176D 101: 80 # [3]. extensions=array[0] #---SingleCertRequests[2]--- 102: 54 # [4]. serialNumberHash=byte[20] 103: D1AC135D7DA29BDCF4DCA0D5281A51605B678400 123: 80 # [5]. extensions=array[0] #---PerIssuerRequests[1]--- Liao, et al. Expires 6 May 2027 [Page 88] Internet-Draft C509 Revocation November 2026 124: 48 # [3]. issuerCertHash=byte[8] 125: 2222222222222222 133: 80 # [4]. extensions=array[0] 134: 82 # [5]. singleRequests=array[2] #---SingleCertRequests[0]--- 135: 54 # [0]. serialNumberHash=byte[20] 136: D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B 156: 80 # [1]. extensions=array[0] 157: 58 C3 # [7]. requestorCerts(COSE_C509)=byte[195] 159: 8B024212360C6F746573742063726C6F6373702D63611A6775D7001A69 188: 570A806E6F6373702D726571756573746F720C582004530B1764EDD4B4 217: E33AB44AF0F838961C007176D74B6A3546ECB7FD57320DD3860154DD51 246: BDB2A2C791C062D4027856DBACF52607F0BE210107542F45E78D2CAEDF 275: 368CDF53C39005D492450E10565840F8C6183ECF8C3EFD50DD4942D172 304: 814C46EC0FC01DD586A597178DF864A0D9DA86B7CA17FC9F772FF04C80 333: E98B60D5B4B62408A277A5B70D0D2A3F5ED5442D07 354: 58 40 # [8]. signatureValue=byte[64] 356: 75C65F028199FFC884B6A0E3E4F9EDC380A037B1E9B5868C74F5A0CEBC 385: CDF6C7D0C0D69B1BB6976414444E156D72E12E2FF936782513516B02B4 414: A1E40EB13D01 A.4.5. Signed OCSP Request Example With Requestor's Certificate Chain * Size reduction: 54% * Verifiable with certificate in Appendix A.2.3.2 * Signed OCSP Request (C509SignedOCSPRequest) with embedded requestor's certificate chain (2 certificates) * Note that the X.509 OCSP Request and the C509 OCSP Request are not convertible. A.4.5.1. X.509 OCSP Request PEM content (1371 bytes): Liao, et al. Expires 6 May 2027 [Page 89] Internet-Draft C509 Revocation November 2026 -----BEGIN OCSP REQUEST----- MIIFVzCCAnGhHaQbMBkxFzAVBgNVBAMMDm9jc3AtcmVxdWVzdG9yMIIBrDBpMGcw CwYJYIZIAWUDBAIBBCAyU450hb03rkVPHw0rl1XXWLkfbo46evOXoPQAYFxv+AQg zBHIdAoFCexNoUzliG5yNkwPY7YO1jR/E8Fu5yW3ZqICFBI0EjQSNBI0EjQSNBI0 EjQSNBI0MGkwZzALBglghkgBZQMEAgEEIDJTjnSFvTeuRU8fDSuXVddYuR9ujjp6 85eg9ABgXG/4BCDMEch0CgUJ7E2hTOWIbnI2TA9jtg7WNH8TwW7nJbdmogIUNFY0 VjRWNFY0VjRWNFY0VjRWNFYwaTBnMAsGCWCGSAFlAwQCAQQgMlOOdIW9N65FTx8N K5dV11i5H26OOnrzl6D0AGBcb/gEIMwRyHQKBQnsTaFM5YhucjZMD2O2DtY0fxPB buclt2aiAhRWeFZ4VnhWeFZ4VnhWeFZ4VnhWeDBpMGcwCwYJYIZIAWUDBAIBBCAz MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwQgRERERERERERERERERERE REREREREREREREREREREREQCFCIzIjMiMyIzIjMiMyIzIjMiMyIzooGfMIGcMBoG CSsGAQUFBzABBAQNMAsGCSsGAQUFBzABATBfBgkrBgEFBQcwAQgEUjBQMAcwBQYD K2VwMCEwCgYIKoZIzj0EAwIwEwYHKoZIzj0CAQYIKoZIzj0DAQcwIjAKBggqhkjO PQQDAjAUBgcqhkjOPQIBBgkrJAMDAggBAQcwHQYJKwYBBQUHMAECBBARERERERER ERERERERERERoIIC3jCCAtowBQYDK2VwA0EAnqnZjVvfg50lAZOGBiSExUCuMKja IHCZKykPyiVpW8ECz2Ejd8NiIQ/pnXvzTRvbQz1i7y+figq4L4YZYGfjAaCCAoww ggKIMIIBNDCB56ADAgECAgISNjAFBgMrZXAwGjEYMBYGA1UEAwwPdGVzdCBjcmxv Y3NwLWNhMB4XDTI1MDEwMjAwMDAwMFoXDTI2MDEwMjAwMDAwMFowGTEXMBUGA1UE AwwOb2NzcC1yZXF1ZXN0b3IwKjAFBgMrZXADIQAEUwsXZO3UtOM6tErw+DiWHABx dtdLajVG7Lf9VzIN06NSMFAwHQYDVR0OBBYEFLE21FmKGxtqhtplEK6lZNgSl+T5 MA4GA1UdDwEB/wQEAwIHgDAfBgNVHSMEGDAWgBTZfXfmNML3ADAMpY/IdzZbFVAH ojAFBgMrZXADQQCY+ZIhXpHFm+r/HrfqPv0rqn4dvQHRKwN3gZhZyWeQP/nP6vYx W73WoQgSSbXiyYVCHNASdBpZljgSyNJ6NX0CMIIBTDCB/6ADAgECAgEBMAUGAytl cDAeMRwwGgYDVQQDDBN0ZXN0IGNybG9jc3Atcm9vdGNhMB4XDTI1MDEwMTAwMDAw MFoXDTI2MTIzMTIzNTk1OVowGjEYMBYGA1UEAwwPdGVzdCBjcmxvY3NwLWNhMCow BQYDK2VwAyEAXvijVaABp8UNI0lHASCBMaS7Krkg1Av7DuH2qyj/dACjZjBkMB0G A1UdDgQWBBTZfXfmNML3ADAMpY/IdzZbFVAHojAOBgNVHQ8BAf8EBAMCAQYwEgYD VR0TAQH/BAgwBgEB/wIBATAfBgNVHSMEGDAWgBSRI5z6+eeDbLKfUeExkdsQ064W kzAFBgMrZXADQQDWXgHXy/pBf7F7mfeX7Wknr1Yv9j6NNbPjp9OBYMxkZ0AQTY85 GJfdqxGY89BaJhkgQ2Km+DwziCEbNrxWPUEC -----END OCSP REQUEST----- A.4.5.2. C509 OCSP Request Plain Hex (625 bytes): Liao, et al. Expires 6 May 2027 [Page 90] Internet-Draft C509 Revocation November 2026 89010C2F50111111111111111111111111111111114844F0528B56F35AD984185D82 0001185E840CF600820118188648A01C73A5F3B0633480865410652787FA0527BC24 49A1BFC5AB31AA5A6F0D8D805475D8BC4FBAFC6694467641E748DFD53A8B9D176D80 54D1AC135D7DA29BDCF4DCA0D5281A51605B67840080482222222222222222808254 D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B808258C38B024212360C6F746573 742063726C6F6373702D63611A6775D7001A69570A806E6F6373702D726571756573 746F720C582004530B1764EDD4B4E33AB44AF0F838961C007176D74B6A3546ECB7FD 57320DD3860154DD51BDB2A2C791C062D4027856DBACF52607F0BE210107542F45E7 8D2CAEDF368CDF53C39005D492450E10565840F8C6183ECF8C3EFD50DD4942D17281 4C46EC0FC01DD586A597178DF864A0D9DA86B7CA17FC9F772FF04C80E98B60D5B4B6 2408A277A5B70D0D2A3F5ED5442D0758CA8B0241010C73746573742063726C6F6373 702D726F6F7463611A677485801A6B36EC7F6F746573742063726C6F6373702D6361 0C58205EF8A355A001A7C50D23494701208131A4BB2AB920D40BFB0EE1F6AB28FF74 008801542F45E78D2CAEDF368CDF53C39005D492450E1056211860230107542DA3A4 03F7D2F4E0B3D8031A73BA8A839F557F0F5840E50465D60C02A2111EF3FC6E44F2A3 6008765B552351F9A3F5B2AA7C76F1F05D259847A4F4250B2E4B0AE2099762A2596D 3CC1DB2CCD180AA0A2D0E191310B0F58408EC4D20A1C156B2FDB61D82D39EF9D54CC BFFE42EAC1ACADDECD20787D979A38823BBB1A6458C22F07E6487073769FB9B52544 7A43B0C9C3BCDE790455DEC508 Textual Representation C509SignedOCSPRequest TBSOCSPRequest Type: C509SignedOCSPRequest (1) Signature Algorithm: Ed25519 (12) Hash Algorithm: SHA256 (-16) RequestorCertHash 44:f0:52:8b:56:f3:5a:d9 Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 Extensions AcceptOCSPResponseTypes (93) C509ErrorOCSPResponse (0) C509BasicOCSPResponse (1) preferredSignatureAlgorithms (94) Preferred Signature Algorithm: Signature Algorithm: Ed25519 (12) Preferred Signature Algorithm: Signature Algorithm: ecdsa-with-sha256 (0) Public Key Algorithms: EC public key on curve secp256r1 (1) EC public key on curve brainpoolp256r1 (24) Requests OcspPerIssuerRequest issuerCertHash a0:1c:73:a5:f3:b0:63:34 extensions: Liao, et al. Expires 6 May 2027 [Page 91] Internet-Draft C509 Revocation November 2026 singleRequests SingleCertRequest SerialNumberHash: 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Extensions: SingleCertRequest SerialNumberHash: 75:d8:bc:4f:ba:fc:66:94:46:76:41:e7:48:df:d5:3a: 8b:9d:17:6d Extensions: SingleCertRequest SerialNumberHash: d1:ac:13:5d:7d:a2:9b:dc:f4:dc:a0:d5:28:1a:51:60: 5b:67:84:00 Extensions: OcspPerIssuerRequest issuerCertHash 22:22:22:22:22:22:22:22 extensions: singleRequests SingleCertRequest SerialNumberHash: d3:a0:c1:e3:db:92:e8:f6:81:05:37:d4:5c:fa:ec:f6: ce:41:7e:3b Extensions: Requestor Certs C509Certificate 8b:02:42:12:36:0c:6f:74:65:73:74:20:63:72:6c:6f: 63:73:70:2d:63:61:1a:67:75:d7:00:1a:69:57:0a:80: 6e:6f:63:73:70:2d:72:65:71:75:65:73:74:6f:72:0c: 58:20:04:53:0b:17:64:ed:d4:b4:e3:3a:b4:4a:f0:f8: 38:96:1c:00:71:76:d7:4b:6a:35:46:ec:b7:fd:57:32: 0d:d3:86:01:54:dd:51:bd:b2:a2:c7:91:c0:62:d4:02: 78:56:db:ac:f5:26:07:f0:be:21:01:07:54:2f:45:e7: 8d:2c:ae:df:36:8c:df:53:c3:90:05:d4:92:45:0e:10: 56:58:40:f8:c6:18:3e:cf:8c:3e:fd:50:dd:49:42:d1: 72:81:4c:46:ec:0f:c0:1d:d5:86:a5:97:17:8d:f8:64: a0:d9:da:86:b7:ca:17:fc:9f:77:2f:f0:4c:80:e9:8b: 60:d5:b4:b6:24:08:a2:77:a5:b7:0d:0d:2a:3f:5e:d5: 44:2d:07 C509Certificate 8b:02:41:01:0c:73:74:65:73:74:20:63:72:6c:6f:63: 73:70:2d:72:6f:6f:74:63:61:1a:67:74:85:80:1a:6b: 36:ec:7f:6f:74:65:73:74:20:63:72:6c:6f:63:73:70: 2d:63:61:0c:58:20:5e:f8:a3:55:a0:01:a7:c5:0d:23: 49:47:01:20:81:31:a4:bb:2a:b9:20:d4:0b:fb:0e:e1: f6:ab:28:ff:74:00:88:01:54:2f:45:e7:8d:2c:ae:df: Liao, et al. Expires 6 May 2027 [Page 92] Internet-Draft C509 Revocation November 2026 36:8c:df:53:c3:90:05:d4:92:45:0e:10:56:21:18:60: 23:01:07:54:2d:a3:a4:03:f7:d2:f4:e0:b3:d8:03:1a: 73:ba:8a:83:9f:55:7f:0f:58:40:e5:04:65:d6:0c:02: a2:11:1e:f3:fc:6e:44:f2:a3:60:08:76:5b:55:23:51: f9:a3:f5:b2:aa:7c:76:f1:f0:5d:25:98:47:a4:f4:25: 0b:2e:4b:0a:e2:09:97:62:a2:59:6d:3c:c1:db:2c:cd: 18:0a:a0:a2:d0:e1:91:31:0b:0f Signature Value 8e:c4:d2:0a:1c:15:6b:2f:db:61:d8:2d:39:ef:9d:54: cc:bf:fe:42:ea:c1:ac:ad:de:cd:20:78:7d:97:9a:38: 82:3b:bb:1a:64:58:c2:2f:07:e6:48:70:73:76:9f:b9: b5:25:44:7a:43:b0:c9:c3:bc:de:79:04:55:de:c5:08 Annotated hex 0: 89 # C509OCSPRequest=array[9] 1: 01 # [0]. ocspRequestType=C509SignedOCSPRequest # (1) 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 2F # [2]. hashAlgorithm=SHA256 (-16) 4: 50 # [3]. nonce=byte[16] 5: 11111111111111111111111111111111 21: 48 # [4]. requestorCertHash=byte[8] 22: 44F0528B56F35AD9 30: 84 # [5]. extensions=array[4] #---extension[0]--- 31: 18 5D # [0]. type=AcceptOCSPResponseTypes (93) 33: 82 # [1]. value=array[2] 34: 00 # [0]. C509ErrorOCSPResponse (0) 35: 01 # [1]. C509BasicOCSPResponse (1) #---extension[1]--- 36: 18 5E # [2]. type=preferredSignatureAlgorithms # (94) 38: 84 # [3]. value=array[4] #---preferredSignatureAlgorithms[0]--- 39: 0C # [0]. sigIdentifier=Ed25519 (12) 40: F6 # [1]. pubKeyAlgIdentifiers= #---preferredSignatureAlgorithms[1]--- 41: 00 # [2]. sigIdentifier=ecdsa-with-sha256 (0) 42: 82 # [3]. pubKeyAlgIdentifiers=array[2] 43: 01 # [0]. pubKeyAlgIdentifier=EC public key # on curve secp256r1 (1) 44: 18 18 # [1]. pubKeyAlgIdentifier=EC public key # on curve brainpoolp256r1 (24) 46: 86 # [6]. requests=array[6] #---PerIssuerRequests[0]--- 47: 48 # [0]. issuerCertHash=byte[8] 48: A01C73A5F3B06334 Liao, et al. Expires 6 May 2027 [Page 93] Internet-Draft C509 Revocation November 2026 56: 80 # [1]. extensions=array[0] 57: 86 # [2]. singleRequests=array[6] #---SingleCertRequests[0]--- 58: 54 # [0]. serialNumberHash=byte[20] 59: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 79: 80 # [1]. extensions=array[0] #---SingleCertRequests[1]--- 80: 54 # [2]. serialNumberHash=byte[20] 81: 75D8BC4FBAFC6694467641E748DFD53A8B9D176D 101: 80 # [3]. extensions=array[0] #---SingleCertRequests[2]--- 102: 54 # [4]. serialNumberHash=byte[20] 103: D1AC135D7DA29BDCF4DCA0D5281A51605B678400 123: 80 # [5]. extensions=array[0] #---PerIssuerRequests[1]--- 124: 48 # [3]. issuerCertHash=byte[8] 125: 2222222222222222 133: 80 # [4]. extensions=array[0] 134: 82 # [5]. singleRequests=array[2] #---SingleCertRequests[0]--- 135: 54 # [0]. serialNumberHash=byte[20] 136: D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B 156: 80 # [1]. extensions=array[0] 157: 82 # [7]. requestorCerts(COSE_C509)=array[2] 158: 58 C3 # [0]. C509CertData=byte[195] 160: 8B024212360C6F746573742063726C6F6373702D63611A6775D7001A 188: 69570A806E6F6373702D726571756573746F720C582004530B1764ED 216: D4B4E33AB44AF0F838961C007176D74B6A3546ECB7FD57320DD38601 244: 54DD51BDB2A2C791C062D4027856DBACF52607F0BE210107542F45E7 272: 8D2CAEDF368CDF53C39005D492450E10565840F8C6183ECF8C3EFD50 300: DD4942D172814C46EC0FC01DD586A597178DF864A0D9DA86B7CA17FC 328: 9F772FF04C80E98B60D5B4B62408A277A5B70D0D2A3F5ED5442D07 355: 58 CA # [1]. C509CertData=byte[202] 357: 8B0241010C73746573742063726C6F6373702D726F6F7463611A6774 385: 85801A6B36EC7F6F746573742063726C6F6373702D63610C58205EF8 413: A355A001A7C50D23494701208131A4BB2AB920D40BFB0EE1F6AB28FF 441: 74008801542F45E78D2CAEDF368CDF53C39005D492450E1056211860 469: 230107542DA3A403F7D2F4E0B3D8031A73BA8A839F557F0F5840E504 497: 65D60C02A2111EF3FC6E44F2A36008765B552351F9A3F5B2AA7C76F1 525: F05D259847A4F4250B2E4B0AE2099762A2596D3CC1DB2CCD180AA0A2 553: D0E191310B0F 559: 58 40 # [8]. signatureValue=byte[64] 561: 8EC4D20A1C156B2FDB61D82D39EF9D54CCBFFE42EAC1ACADDECD20787D 590: 979A38823BBB1A6458C22F07E6487073769FB9B525447A43B0C9C3BCDE 619: 790455DEC508 A.5. OCSP Response Examples Liao, et al. Expires 6 May 2027 [Page 94] Internet-Draft C509 Revocation November 2026 A.5.1. Error OCSP Response Example * Size reduction: 40% * Error Response (C509ErrorOCSPResponse) A.5.1.1. X.509 OCSP Response PEM content (5 bytes): -----BEGIN OCSP RESPONSE----- MAMKAQY= -----END OCSP RESPONSE----- A.5.1.2. C509 OCSP Response Plain Hex (3 bytes): 820006 Textual Representation C509ErrorResponse Type: C509ErrorOCSPResponse (0) Status: unauthorized (6) Annotated hex 0: 82 # C509OCSPResponse=array[2] 1: 00 # [0]. ocspResponseType=C509ErrorOCSPResponse # (0) 2: 06 # [1]. responseStatus=unauthorized (6) A.5.2. Simple OCSP Response Example * Size reduction: 58% * Verifiable with certificate in Appendix A.2.4.2 * Simple OCSP Response (C509SimpleOCSPResponse) without responder's certificate * Note that the X.509 OCSP Response and the C509 OCSP Response are not convertible. Liao, et al. Expires 6 May 2027 [Page 95] Internet-Draft C509 Revocation November 2026 A.5.2.1. X.509 OCSP Response PEM content (336 bytes): -----BEGIN OCSP RESPONSE----- MIIBTAoBAKCCAUUwggFBBgkrBgEFBQcwAQEEggEyMIIBLjCB4aIWBBTq5ZqK6ar0 EEsV5Q6O4BcVF3QYrxgPMjAyNTAzMDMwMDAwMDBaMIGSMIGPMGcwCwYJYIZIAWUD BAIBBCAyU450hb03rkVPHw0rl1XXWLkfbo46evOXoPQAYFxv+AQgzBHIdAoFCexN oUzliG5yNkwPY7YO1jR/E8Fu5yW3ZqICFBI0EjQSNBI0EjQSNBI0EjQSNBI0gAAY DzIwMjUwMzAyMTYwMDAwWqARGA8yMDI1MDMwMzA3MDAwMFqhITAfMB0GCSsGAQUF BzABAgQQERERERERERERERERERERETAFBgMrZXADQQAoVz6mB1JqePHWA2adyeK4 ElU3cwbFiAepAQkUhmtUT9vU4J4mc/QxA39Ja36kVABy8+f62xw0f+5v3G9LTS0M -----END OCSP RESPONSE----- A.5.2.2. C509 OCSP Response Plain Hex (140 bytes): 8E020C2F5011111111111111111111111111111111480600867838E3311A48A01C73 A5F3B063345410652787FA0527BC2449A1BFC5AB31AA5A6F0D8D001A67C4F1003970 7F19627080F6584052D9F137BC08E4D17C3C1A0412EF70F6C4BA7124EB998F3B0A53 AAF62F84FD18BF9AB24AEC7CE9C73717A816BFA1E3E9B0BEE6FA1DD588F0A2C838DF DED37404 Textual Representation Liao, et al. Expires 6 May 2027 [Page 96] Internet-Draft C509 Revocation November 2026 C509SimpleOCSPResponse TBSSimpleOCSPResponse Type: C509SimpleOCSPResponse (2) Signature Algorithm: Ed25519 (12) Hash Algorithm: SHA256 (-16) Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 ResponderCertHash 06:00:86:78:38:e3:31:1a IssuerCertHash a0:1c:73:a5:f3:b0:63:34 SerialNumberHash 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Cert Status: good ProducedAt: 2025-03-03T00:00:00Z This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: Responder Certs: null Signature Value 52:d9:f1:37:bc:08:e4:d1:7c:3c:1a:04:12:ef:70:f6: c4:ba:71:24:eb:99:8f:3b:0a:53:aa:f6:2f:84:fd:18: bf:9a:b2:4a:ec:7c:e9:c7:37:17:a8:16:bf:a1:e3:e9: b0:be:e6:fa:1d:d5:88:f0:a2:c8:38:df:de:d3:74:04 Annotated hex Liao, et al. Expires 6 May 2027 [Page 97] Internet-Draft C509 Revocation November 2026 0: 8E # C509OCSPResponse=array[14] 1: 02 # [0]. ocspResponseType=C509SimpleOCSPResponse # (2) 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 2F # [2]. hashAlgorithm=SHA256 (-16) 4: 50 # [3]. nonce=byte[16] 5: 11111111111111111111111111111111 21: 48 # [4]. responderCertHash=byte[8] 22: 0600867838E3311A 30: 48 # [5]. issuerCertHash=byte[8] 31: A01C73A5F3B06334 39: 54 # [6]. serialNumberHash=byte[20] 40: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 60: 00 # [7]. certStatus=good (0) 61: 1A 67C4F100 # [8]. producedAt=1740960000: # 2025-03-03T00:00:00Z 66: 39 707F # [9]. thisUpdate=-28800: 2025-03-02T16:00:00Z 69: 19 6270 # [10]. nextUpdate=25200: 2025-03-03T07:00:00Z 72: 80 # [11]. extensions=array[0] 73: F6 # [12]. responderCerts= 74: 58 40 # [13]. signatureValue=byte[64] 76: 52D9F137BC08E4D17C3C1A0412EF70F6C4BA7124EB998F3B0A53AAF62F 105: 84FD18BF9AB24AEC7CE9C73717A816BFA1E3E9B0BEE6FA1DD588F0A2C8 134: 38DFDED37404 A.5.3. Basic OCSP Response Example Without Responder's Certificate * Size reduction: 70% * Verifiable with certificate in Appendix A.2.4.2 * Basic OCSP Response (C509BasicOCSPResponse) without responder's certificate * Note that the X.509 OCSP Response and the C509 OCSP Response are not convertible. A.5.3.1. X.509 OCSP Response PEM content (837 bytes): Liao, et al. Expires 6 May 2027 [Page 98] Internet-Draft C509 Revocation November 2026 -----BEGIN OCSP RESPONSE----- MIIDQQoBAKCCAzowggM2BgkrBgEFBQcwAQEEggMnMIIDIzCCAtWiFgQU6uWaiumq 9BBLFeUOjuAXFRd0GK8YDzIwMjUwMzAzMDAwMDAwWjCCAnQwgY8wZzALBglghkgB ZQMEAgEEIDJTjnSFvTeuRU8fDSuXVddYuR9ujjp685eg9ABgXG/4BCDMEch0CgUJ 7E2hTOWIbnI2TA9jtg7WNH8TwW7nJbdmogIUEjQSNBI0EjQSNBI0EjQSNBI0EjSA ABgPMjAyNTAzMDIxNjAwMDBaoBEYDzIwMjUwMzAzMDcwMDAwWjCBpTBnMAsGCWCG SAFlAwQCAQQgMlOOdIW9N65FTx8NK5dV11i5H26OOnrzl6D0AGBcb/gEIMwRyHQK BQnsTaFM5YhucjZMD2O2DtY0fxPBbuclt2aiAhQ0VjRWNFY0VjRWNFY0VjRWNFY0 VqEWGA8xOTcwMDEwMTAwMDAwMFqgAwoBBhgPMjAyNTAzMDIxNjAwMDBaoBEYDzIw MjUwMzAzMDcwMDAwWjCBpTBnMAsGCWCGSAFlAwQCAQQgMlOOdIW9N65FTx8NK5dV 11i5H26OOnrzl6D0AGBcb/gEIMwRyHQKBQnsTaFM5YhucjZMD2O2DtY0fxPBbucl t2aiAhRWeFZ4VnhWeFZ4VnhWeFZ4VnhWeKEWGA8yMDI1MDMwMTE2MDAwMFqgAwoB BBgPMjAyNTAzMDIxNjAwMDBaoBEYDzIwMjUwMzAzMDcwMDAwWjCBjzBnMAsGCWCG SAFlAwQCAQQgMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMEIERERERE REREREREREREREREREREREREREREREREREREAhQiMyIzIjMiMyIzIjMiMyIzIjMi M4IAGA8yMDI1MDMwMjE2MDAwMFqgERgPMjAyNTAzMDMwNzAwMDBaoTIwMDAdBgkr BgEFBQcwAQIEEBEREREREREREREREREREREwDwYJKwYBBQUHMAEJBAIFADAFBgMr ZXADQQCaRi+pYIEMvQ/4MpYqP8MDa4wRdqow+HmCecWetC36CdSC0KF+oukKTk/b 65VJ3TmJa1blNiaKl58HVz5zVR8D -----END OCSP RESPONSE----- A.5.3.2. C509 OCSP Response Plain Hex (248 bytes): 8A010C2F5011111111111111111111111111111111480600867838E3311A1A67C4F1 00808648A01C73A5F3B06334808F5410652787FA0527BC2449A1BFC5AB31AA5A6F0D 8D0039707F196270805475D8BC4FBAFC6694467641E748DFD53A8B9D176D0139707F 1962708054D1AC135D7DA29BDCF4DCA0D5281A51605B678400821A67C32F00043970 7F19627080482222222222222222808554D3A0C1E3DB92E8F6810537D45CFAECF6CE 417E3B0239707F19627080F658401BB7E5C65F7D65260A4FB127BE66B1DB3E7C9F16 DC2969D5F67DFCF25DCCF1EE09ED28441F92B5242AF60F760AE4029EC5C74DB7C042 3A941F869358C71FF800 Textual Representation C509BasicOCSPResponse TBSBasicOCSPResponse Type: C509BasicOCSPResponse (1) Signature Algorithm: Ed25519 (12) Hash Algorithm: SHA256 (-16) Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 ResponderCertHash 06:00:86:78:38:e3:31:1a ProducedAt: 2025-03-03T00:00:00Z Extensions: Responses Liao, et al. Expires 6 May 2027 [Page 99] Internet-Draft C509 Revocation November 2026 OcspPerIssuerResponse IssuerCertHash a0:1c:73:a5:f3:b0:63:34 Extensions: SingleResponses SingleCertResponse SerialNumberHash: 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Cert Status: good This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: SingleCertResponse SerialNumberHash: 75:d8:bc:4f:ba:fc:66:94:46:76:41:e7:48:df:d5:3a: 8b:9d:17:6d Cert Status: not-issued This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: SingleCertResponse SerialNumberHash: d1:ac:13:5d:7d:a2:9b:dc:f4:dc:a0:d5:28:1a:51:60: 5b:67:84:00 Cert Status: revoked (superseded) Revoked at 2025-03-01T16:00:00Z This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: OcspPerIssuerResponse IssuerCertHash 22:22:22:22:22:22:22:22 Extensions: SingleResponses SingleCertResponse SerialNumberHash: d3:a0:c1:e3:db:92:e8:f6:81:05:37:d4:5c:fa:ec:f6: ce:41:7e:3b Cert Status: unknown This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: Responder Certs: null Signature Value 1b:b7:e5:c6:5f:7d:65:26:0a:4f:b1:27:be:66:b1:db: 3e:7c:9f:16:dc:29:69:d5:f6:7d:fc:f2:5d:cc:f1:ee: 09:ed:28:44:1f:92:b5:24:2a:f6:0f:76:0a:e4:02:9e: Liao, et al. Expires 6 May 2027 [Page 100] Internet-Draft C509 Revocation November 2026 c5:c7:4d:b7:c0:42:3a:94:1f:86:93:58:c7:1f:f8:00 Annotated hex 0: 8A # C509OCSPResponse=array[10] 1: 01 # [0]. ocspResponseType=C509BasicOCSPResponse # (1) 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 2F # [2]. hashAlgorithm=SHA256 (-16) 4: 50 # [3]. nonce=byte[16] 5: 11111111111111111111111111111111 21: 48 # [4]. responderCertHash=byte[8] 22: 0600867838E3311A 30: 1A 67C4F100 # [5]. producedAt=1740960000: # 2025-03-03T00:00:00Z 35: 80 # [6]. extensions=array[0] 36: 86 # [7]. responses=array[6] #---PerIssuerResponses[0]--- 37: 48 # [0]. issuerCertHash=byte[8] 38: A01C73A5F3B06334 46: 80 # [1]. extensions=array[0] 47: 8F # [2]. singleResponses=array[15] #---SingleCertResponses[0]--- 48: 54 # [0]. serialNumberHash=byte[20] 49: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 69: 00 # [1]. certStatus=good (0) 70: 39 707F # [2]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 73: 19 6270 # [3]. nextUpdate=25200: # 2025-03-03T07:00:00Z 76: 80 # [4]. extensions=array[0] #---SingleCertResponses[1]--- 77: 54 # [5]. serialNumberHash=byte[20] 78: 75D8BC4FBAFC6694467641E748DFD53A8B9D176D 98: 01 # [6]. certStatus=not-issued (1) 99: 39 707F # [7]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 102: 19 6270 # [8]. nextUpdate=25200: # 2025-03-03T07:00:00Z 105: 80 # [9]. extensions=array[0] #---SingleCertResponses[2]--- 106: 54 # [10]. serialNumberHash=byte[20] 107: D1AC135D7DA29BDCF4DCA0D5281A51605B678400 127: 82 # [11]. certStatus=array[2] 128: 1A 67C32F00 # [0]. revocationTime=1740844800: # 2025-03-01T16:00:00Z 133: 04 # [1]. revocationReason=superseded (4) 134: 39 707F # [12]. thisUpdate=-28800: Liao, et al. Expires 6 May 2027 [Page 101] Internet-Draft C509 Revocation November 2026 # 2025-03-02T16:00:00Z 137: 19 6270 # [13]. nextUpdate=25200: # 2025-03-03T07:00:00Z 140: 80 # [14]. extensions=array[0] #---PerIssuerResponses[1]--- 141: 48 # [3]. issuerCertHash=byte[8] 142: 2222222222222222 150: 80 # [4]. extensions=array[0] 151: 85 # [5]. singleResponses=array[5] #---SingleCertResponses[0]--- 152: 54 # [0]. serialNumberHash=byte[20] 153: D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B 173: 02 # [1]. certStatus=unknown (2) 174: 39 707F # [2]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 177: 19 6270 # [3]. nextUpdate=25200: # 2025-03-03T07:00:00Z 180: 80 # [4]. extensions=array[0] 181: F6 # [8]. responderCerts= 182: 58 40 # [9]. signature value=byte[64] 184: 1BB7E5C65F7D65260A4FB127BE66B1DB3E7C9F16DC2969D5F67DFCF25D 213: CCF1EE09ED28441F92B5242AF60F760AE4029EC5C74DB7C0423A941F86 242: 9358C71FF800 A.5.4. Basic OCSP Response Example With Responder's Certificate * Size reduction: 62% * Verifiable with certificate in Appendix A.2.4.2 * Basic OCSP Response (C509BasicOCSPResponse) with embedded responder's certificate * Note that the X.509 OCSP Response and the C509 OCSP Response are not convertible. A.5.4.1. X.509 OCSP Response PEM content (1181 bytes): Liao, et al. Expires 6 May 2027 [Page 102] Internet-Draft C509 Revocation November 2026 -----BEGIN OCSP RESPONSE----- MIIEmQoBAKCCBJIwggSOBgkrBgEFBQcwAQEEggR/MIIEezCCAtWiFgQU6uWaiumq 9BBLFeUOjuAXFRd0GK8YDzIwMjUwMzAzMDAwMDAwWjCCAnQwgY8wZzALBglghkgB ZQMEAgEEIDJTjnSFvTeuRU8fDSuXVddYuR9ujjp685eg9ABgXG/4BCDMEch0CgUJ 7E2hTOWIbnI2TA9jtg7WNH8TwW7nJbdmogIUEjQSNBI0EjQSNBI0EjQSNBI0EjSA ABgPMjAyNTAzMDIxNjAwMDBaoBEYDzIwMjUwMzAzMDcwMDAwWjCBpTBnMAsGCWCG SAFlAwQCAQQgMlOOdIW9N65FTx8NK5dV11i5H26OOnrzl6D0AGBcb/gEIMwRyHQK BQnsTaFM5YhucjZMD2O2DtY0fxPBbuclt2aiAhQ0VjRWNFY0VjRWNFY0VjRWNFY0 VqEWGA8xOTcwMDEwMTAwMDAwMFqgAwoBBhgPMjAyNTAzMDIxNjAwMDBaoBEYDzIw MjUwMzAzMDcwMDAwWjCBpTBnMAsGCWCGSAFlAwQCAQQgMlOOdIW9N65FTx8NK5dV 11i5H26OOnrzl6D0AGBcb/gEIMwRyHQKBQnsTaFM5YhucjZMD2O2DtY0fxPBbucl t2aiAhRWeFZ4VnhWeFZ4VnhWeFZ4VnhWeKEWGA8yMDI1MDMwMTE2MDAwMFqgAwoB BBgPMjAyNTAzMDIxNjAwMDBaoBEYDzIwMjUwMzAzMDcwMDAwWjCBjzBnMAsGCWCG SAFlAwQCAQQgMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMEIERERERE REREREREREREREREREREREREREREREREREREAhQiMyIzIjMiMyIzIjMiMyIzIjMi M4IAGA8yMDI1MDMwMjE2MDAwMFqgERgPMjAyNTAzMDMwNzAwMDBaoTIwMDAdBgkr BgEFBQcwAQIEEBEREREREREREREREREREREwDwYJKwYBBQUHMAEJBAIFADAFBgMr ZXADQQCaRi+pYIEMvQ/4MpYqP8MDa4wRdqow+HmCecWetC36CdSC0KF+oukKTk/b 65VJ3TmJa1blNiaKl58HVz5zVR8DoIIBVDCCAVAwggFMMIH/oAMCAQICAhI1MAUG AytlcDAaMRgwFgYDVQQDDA90ZXN0IGNybG9jc3AtY2EwHhcNMjUwMTAyMDAwMDAw WhcNMjYwMTAyMDAwMDAwWjAZMRcwFQYDVQQDDA5vY3NwLXJlc3BvbmRlcjAqMAUG AytlcAMhAIGUe7wkiqx5c4IRqNdb+Sy3d9mUBz3yOuBjgO8sVzl2o2owaDAdBgNV HQ4EFgQU6uWaiumq9BBLFeUOjuAXFRd0GK8wDgYDVR0PAQH/BAQDAgeAMB8GA1Ud IwQYMBaAFNl9d+Y0wvcAMAylj8h3NlsVUAeiMBYGA1UdJQEB/wQMMAoGCCsGAQUF BwMJMAUGAytlcANBABOjKOFFurdnjAVsbGF91L4VCZ2qF1Dh+3wLKakj1yv394ef hUq5LdEQsV83LeBZZoIvh06AhhH9Rd09LFwohwg= -----END OCSP RESPONSE----- A.5.4.2. C509 OCSP Response Plain Hex (446 bytes): 8A010C2F5011111111111111111111111111111111480600867838E3311A1A67C4F1 00808648A01C73A5F3B06334808F5410652787FA0527BC2449A1BFC5AB31AA5A6F0D 8D0039707F196270805475D8BC4FBAFC6694467641E748DFD53A8B9D176D0139707F 1962708054D1AC135D7DA29BDCF4DCA0D5281A51605B678400821A67C32F00043970 7F19627080482222222222222222808554D3A0C1E3DB92E8F6810537D45CFAECF6CE 417E3B0239707F1962708058C58B024212350C6F746573742063726C6F6373702D63 611A6775D7001A69570A806E6F6373702D726573706F6E6465720C582081947BBC24 8AAC79738211A8D75BF92CB777D994073DF23AE06380EF2C573976880154B5B4CAF3 5401D06151DF9629DB579DC8CCA453A8210107542F45E78D2CAEDF368CDF53C39005 D492450E105627095840A01B0CBF3E34A4762D05404FD08A7AEC103035358314686D 72B6159078C76E1D88597F37531886A3F52F256FD722192B289D6844014467F1F17F 05ACBB7B660A5840C8B1C14815BD49604E7A99439C84B550FED5F94CFF35E8238CD5 3CEA91D58A0D4627D2EA0800EBEA3E1453C0E71B175B441466E3431FB235A1BD6E43 03109B03 Textual Representation Liao, et al. Expires 6 May 2027 [Page 103] Internet-Draft C509 Revocation November 2026 C509BasicOCSPResponse TBSBasicOCSPResponse Type: C509BasicOCSPResponse (1) Signature Algorithm: Ed25519 (12) Hash Algorithm: SHA256 (-16) Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 ResponderCertHash 06:00:86:78:38:e3:31:1a ProducedAt: 2025-03-03T00:00:00Z Extensions: Responses OcspPerIssuerResponse IssuerCertHash a0:1c:73:a5:f3:b0:63:34 Extensions: SingleResponses SingleCertResponse SerialNumberHash: 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Cert Status: good This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: SingleCertResponse SerialNumberHash: 75:d8:bc:4f:ba:fc:66:94:46:76:41:e7:48:df:d5:3a: 8b:9d:17:6d Cert Status: not-issued This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: SingleCertResponse SerialNumberHash: d1:ac:13:5d:7d:a2:9b:dc:f4:dc:a0:d5:28:1a:51:60: 5b:67:84:00 Cert Status: revoked (superseded) Revoked at 2025-03-01T16:00:00Z This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: OcspPerIssuerResponse IssuerCertHash 22:22:22:22:22:22:22:22 Extensions: SingleResponses SingleCertResponse Liao, et al. Expires 6 May 2027 [Page 104] Internet-Draft C509 Revocation November 2026 SerialNumberHash: d3:a0:c1:e3:db:92:e8:f6:81:05:37:d4:5c:fa:ec:f6: ce:41:7e:3b Cert Status: unknown This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: Responder Certs C509Certificate 8b:02:42:12:35:0c:6f:74:65:73:74:20:63:72:6c:6f: 63:73:70:2d:63:61:1a:67:75:d7:00:1a:69:57:0a:80: 6e:6f:63:73:70:2d:72:65:73:70:6f:6e:64:65:72:0c: 58:20:81:94:7b:bc:24:8a:ac:79:73:82:11:a8:d7:5b: f9:2c:b7:77:d9:94:07:3d:f2:3a:e0:63:80:ef:2c:57: 39:76:88:01:54:b5:b4:ca:f3:54:01:d0:61:51:df:96: 29:db:57:9d:c8:cc:a4:53:a8:21:01:07:54:2f:45:e7: 8d:2c:ae:df:36:8c:df:53:c3:90:05:d4:92:45:0e:10: 56:27:09:58:40:a0:1b:0c:bf:3e:34:a4:76:2d:05:40: 4f:d0:8a:7a:ec:10:30:35:35:83:14:68:6d:72:b6:15: 90:78:c7:6e:1d:88:59:7f:37:53:18:86:a3:f5:2f:25: 6f:d7:22:19:2b:28:9d:68:44:01:44:67:f1:f1:7f:05: ac:bb:7b:66:0a Signature Value c8:b1:c1:48:15:bd:49:60:4e:7a:99:43:9c:84:b5:50: fe:d5:f9:4c:ff:35:e8:23:8c:d5:3c:ea:91:d5:8a:0d: 46:27:d2:ea:08:00:eb:ea:3e:14:53:c0:e7:1b:17:5b: 44:14:66:e3:43:1f:b2:35:a1:bd:6e:43:03:10:9b:03 Annotated hex 0: 8A # C509OCSPResponse=array[10] 1: 01 # [0]. ocspResponseType=C509BasicOCSPResponse # (1) 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 2F # [2]. hashAlgorithm=SHA256 (-16) 4: 50 # [3]. nonce=byte[16] 5: 11111111111111111111111111111111 21: 48 # [4]. responderCertHash=byte[8] 22: 0600867838E3311A 30: 1A 67C4F100 # [5]. producedAt=1740960000: # 2025-03-03T00:00:00Z 35: 80 # [6]. extensions=array[0] 36: 86 # [7]. responses=array[6] #---PerIssuerResponses[0]--- 37: 48 # [0]. issuerCertHash=byte[8] 38: A01C73A5F3B06334 46: 80 # [1]. extensions=array[0] 47: 8F # [2]. singleResponses=array[15] Liao, et al. Expires 6 May 2027 [Page 105] Internet-Draft C509 Revocation November 2026 #---SingleCertResponses[0]--- 48: 54 # [0]. serialNumberHash=byte[20] 49: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 69: 00 # [1]. certStatus=good (0) 70: 39 707F # [2]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 73: 19 6270 # [3]. nextUpdate=25200: # 2025-03-03T07:00:00Z 76: 80 # [4]. extensions=array[0] #---SingleCertResponses[1]--- 77: 54 # [5]. serialNumberHash=byte[20] 78: 75D8BC4FBAFC6694467641E748DFD53A8B9D176D 98: 01 # [6]. certStatus=not-issued (1) 99: 39 707F # [7]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 102: 19 6270 # [8]. nextUpdate=25200: # 2025-03-03T07:00:00Z 105: 80 # [9]. extensions=array[0] #---SingleCertResponses[2]--- 106: 54 # [10]. serialNumberHash=byte[20] 107: D1AC135D7DA29BDCF4DCA0D5281A51605B678400 127: 82 # [11]. certStatus=array[2] 128: 1A 67C32F00 # [0]. revocationTime=1740844800: # 2025-03-01T16:00:00Z 133: 04 # [1]. revocationReason=superseded (4) 134: 39 707F # [12]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 137: 19 6270 # [13]. nextUpdate=25200: # 2025-03-03T07:00:00Z 140: 80 # [14]. extensions=array[0] #---PerIssuerResponses[1]--- 141: 48 # [3]. issuerCertHash=byte[8] 142: 2222222222222222 150: 80 # [4]. extensions=array[0] 151: 85 # [5]. singleResponses=array[5] #---SingleCertResponses[0]--- 152: 54 # [0]. serialNumberHash=byte[20] 153: D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B 173: 02 # [1]. certStatus=unknown (2) 174: 39 707F # [2]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 177: 19 6270 # [3]. nextUpdate=25200: # 2025-03-03T07:00:00Z 180: 80 # [4]. extensions=array[0] 181: 58 C5 # [8]. responderCerts(COSE_C509)=byte[197] 183: 8B024212350C6F746573742063726C6F6373702D63611A6775D7001A69 212: 570A806E6F6373702D726573706F6E6465720C582081947BBC248AAC79 241: 738211A8D75BF92CB777D994073DF23AE06380EF2C573976880154B5B4 Liao, et al. Expires 6 May 2027 [Page 106] Internet-Draft C509 Revocation November 2026 270: CAF35401D06151DF9629DB579DC8CCA453A8210107542F45E78D2CAEDF 299: 368CDF53C39005D492450E105627095840A01B0CBF3E34A4762D05404F 328: D08A7AEC103035358314686D72B6159078C76E1D88597F37531886A3F5 357: 2F256FD722192B289D6844014467F1F17F05ACBB7B660A 380: 58 40 # [9]. signature value=byte[64] 382: C8B1C14815BD49604E7A99439C84B550FED5F94CFF35E8238CD53CEA91 411: D58A0D4627D2EA0800EBEA3E1453C0E71B175B441466E3431FB235A1BD 440: 6E4303109B03 A.5.5. Basic OCSP Response Example With Responder's Certificate Chain * Size reduction: 57% * Verifiable with certificate in Appendix A.2.4.2 * Basic OCSP Response (C509BasicOCSPResponse) with embedded responder's certificate chain (2 certificates) * Note that the X.509 OCSP Response and the C509 OCSP Response are not convertible. A.5.5.1. X.509 OCSP Response PEM content (1517 bytes): Liao, et al. Expires 6 May 2027 [Page 107] Internet-Draft C509 Revocation November 2026 -----BEGIN OCSP RESPONSE----- MIIF6QoBAKCCBeIwggXeBgkrBgEFBQcwAQEEggXPMIIFyzCCAtWiFgQU6uWaiumq 9BBLFeUOjuAXFRd0GK8YDzIwMjUwMzAzMDAwMDAwWjCCAnQwgY8wZzALBglghkgB ZQMEAgEEIDJTjnSFvTeuRU8fDSuXVddYuR9ujjp685eg9ABgXG/4BCDMEch0CgUJ 7E2hTOWIbnI2TA9jtg7WNH8TwW7nJbdmogIUEjQSNBI0EjQSNBI0EjQSNBI0EjSA ABgPMjAyNTAzMDIxNjAwMDBaoBEYDzIwMjUwMzAzMDcwMDAwWjCBpTBnMAsGCWCG SAFlAwQCAQQgMlOOdIW9N65FTx8NK5dV11i5H26OOnrzl6D0AGBcb/gEIMwRyHQK BQnsTaFM5YhucjZMD2O2DtY0fxPBbuclt2aiAhQ0VjRWNFY0VjRWNFY0VjRWNFY0 VqEWGA8xOTcwMDEwMTAwMDAwMFqgAwoBBhgPMjAyNTAzMDIxNjAwMDBaoBEYDzIw MjUwMzAzMDcwMDAwWjCBpTBnMAsGCWCGSAFlAwQCAQQgMlOOdIW9N65FTx8NK5dV 11i5H26OOnrzl6D0AGBcb/gEIMwRyHQKBQnsTaFM5YhucjZMD2O2DtY0fxPBbucl t2aiAhRWeFZ4VnhWeFZ4VnhWeFZ4VnhWeKEWGA8yMDI1MDMwMTE2MDAwMFqgAwoB BBgPMjAyNTAzMDIxNjAwMDBaoBEYDzIwMjUwMzAzMDcwMDAwWjCBjzBnMAsGCWCG SAFlAwQCAQQgMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMEIERERERE REREREREREREREREREREREREREREREREREREAhQiMyIzIjMiMyIzIjMiMyIzIjMi M4IAGA8yMDI1MDMwMjE2MDAwMFqgERgPMjAyNTAzMDMwNzAwMDBaoTIwMDAdBgkr BgEFBQcwAQIEEBEREREREREREREREREREREwDwYJKwYBBQUHMAEJBAIFADAFBgMr ZXADQQCaRi+pYIEMvQ/4MpYqP8MDa4wRdqow+HmCecWetC36CdSC0KF+oukKTk/b 65VJ3TmJa1blNiaKl58HVz5zVR8DoIICpDCCAqAwggFMMIH/oAMCAQICAhI1MAUG AytlcDAaMRgwFgYDVQQDDA90ZXN0IGNybG9jc3AtY2EwHhcNMjUwMTAyMDAwMDAw WhcNMjYwMTAyMDAwMDAwWjAZMRcwFQYDVQQDDA5vY3NwLXJlc3BvbmRlcjAqMAUG AytlcAMhAIGUe7wkiqx5c4IRqNdb+Sy3d9mUBz3yOuBjgO8sVzl2o2owaDAdBgNV HQ4EFgQU6uWaiumq9BBLFeUOjuAXFRd0GK8wDgYDVR0PAQH/BAQDAgeAMB8GA1Ud IwQYMBaAFNl9d+Y0wvcAMAylj8h3NlsVUAeiMBYGA1UdJQEB/wQMMAoGCCsGAQUF BwMJMAUGAytlcANBABOjKOFFurdnjAVsbGF91L4VCZ2qF1Dh+3wLKakj1yv394ef hUq5LdEQsV83LeBZZoIvh06AhhH9Rd09LFwohwgwggFMMIH/oAMCAQICAQEwBQYD K2VwMB4xHDAaBgNVBAMME3Rlc3QgY3Jsb2NzcC1yb290Y2EwHhcNMjUwMTAxMDAw MDAwWhcNMjYxMjMxMjM1OTU5WjAaMRgwFgYDVQQDDA90ZXN0IGNybG9jc3AtY2Ew KjAFBgMrZXADIQBe+KNVoAGnxQ0jSUcBIIExpLsquSDUC/sO4farKP90AKNmMGQw HQYDVR0OBBYEFNl9d+Y0wvcAMAylj8h3NlsVUAeiMA4GA1UdDwEB/wQEAwIBBjAS BgNVHRMBAf8ECDAGAQH/AgEBMB8GA1UdIwQYMBaAFJEjnPr554Nssp9R4TGR2xDT rhaTMAUGAytlcANBANZeAdfL+kF/sXuZ95ftaSevVi/2Po01s+On04FgzGRnQBBN jzkYl92rEZjz0FomGSBDYqb4PDOIIRs2vFY9QQI= -----END OCSP RESPONSE----- A.5.5.2. C509 OCSP Response Plain Hex (651 bytes): Liao, et al. Expires 6 May 2027 [Page 108] Internet-Draft C509 Revocation November 2026 8A010C2F5011111111111111111111111111111111480600867838E3311A1A67C4F1 00808648A01C73A5F3B06334808F5410652787FA0527BC2449A1BFC5AB31AA5A6F0D 8D0039707F196270805475D8BC4FBAFC6694467641E748DFD53A8B9D176D0139707F 1962708054D1AC135D7DA29BDCF4DCA0D5281A51605B678400821A67C32F00043970 7F19627080482222222222222222808554D3A0C1E3DB92E8F6810537D45CFAECF6CE 417E3B0239707F196270808258C58B024212350C6F746573742063726C6F6373702D 63611A6775D7001A69570A806E6F6373702D726573706F6E6465720C582081947BBC 248AAC79738211A8D75BF92CB777D994073DF23AE06380EF2C573976880154B5B4CA F35401D06151DF9629DB579DC8CCA453A8210107542F45E78D2CAEDF368CDF53C390 05D492450E105627095840A01B0CBF3E34A4762D05404FD08A7AEC10303535831468 6D72B6159078C76E1D88597F37531886A3F52F256FD722192B289D6844014467F1F1 7F05ACBB7B660A58CA8B0241010C73746573742063726C6F6373702D726F6F746361 1A677485801A6B36EC7F6F746573742063726C6F6373702D63610C58205EF8A355A0 01A7C50D23494701208131A4BB2AB920D40BFB0EE1F6AB28FF74008801542F45E78D 2CAEDF368CDF53C39005D492450E1056211860230107542DA3A403F7D2F4E0B3D803 1A73BA8A839F557F0F5840E50465D60C02A2111EF3FC6E44F2A36008765B552351F9 A3F5B2AA7C76F1F05D259847A4F4250B2E4B0AE2099762A2596D3CC1DB2CCD180AA0 A2D0E191310B0F58408AE4AAB91FE232B36AE874CE310BE76449626B177C2E596A21 E3DECDA9E7B9DC702291C6DAF19AF5ADE236EE34B38996CF4803BC6569037492EB41 F7ADE8D505 Textual Representation C509BasicOCSPResponse TBSBasicOCSPResponse Type: C509BasicOCSPResponse (1) Signature Algorithm: Ed25519 (12) Hash Algorithm: SHA256 (-16) Nonce 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11 ResponderCertHash 06:00:86:78:38:e3:31:1a ProducedAt: 2025-03-03T00:00:00Z Extensions: Responses OcspPerIssuerResponse IssuerCertHash a0:1c:73:a5:f3:b0:63:34 Extensions: SingleResponses SingleCertResponse SerialNumberHash: 10:65:27:87:fa:05:27:bc:24:49:a1:bf:c5:ab:31:aa: 5a:6f:0d:8d Cert Status: good This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: Liao, et al. Expires 6 May 2027 [Page 109] Internet-Draft C509 Revocation November 2026 SingleCertResponse SerialNumberHash: 75:d8:bc:4f:ba:fc:66:94:46:76:41:e7:48:df:d5:3a: 8b:9d:17:6d Cert Status: not-issued This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: SingleCertResponse SerialNumberHash: d1:ac:13:5d:7d:a2:9b:dc:f4:dc:a0:d5:28:1a:51:60: 5b:67:84:00 Cert Status: revoked (superseded) Revoked at 2025-03-01T16:00:00Z This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: OcspPerIssuerResponse IssuerCertHash 22:22:22:22:22:22:22:22 Extensions: SingleResponses SingleCertResponse SerialNumberHash: d3:a0:c1:e3:db:92:e8:f6:81:05:37:d4:5c:fa:ec:f6: ce:41:7e:3b Cert Status: unknown This Update: -28800, 2025-03-02T16:00:00Z Next Update: 25200, 2025-03-03T07:00:00Z Extensions: Responder Certs C509Certificate 8b:02:42:12:35:0c:6f:74:65:73:74:20:63:72:6c:6f: 63:73:70:2d:63:61:1a:67:75:d7:00:1a:69:57:0a:80: 6e:6f:63:73:70:2d:72:65:73:70:6f:6e:64:65:72:0c: 58:20:81:94:7b:bc:24:8a:ac:79:73:82:11:a8:d7:5b: f9:2c:b7:77:d9:94:07:3d:f2:3a:e0:63:80:ef:2c:57: 39:76:88:01:54:b5:b4:ca:f3:54:01:d0:61:51:df:96: 29:db:57:9d:c8:cc:a4:53:a8:21:01:07:54:2f:45:e7: 8d:2c:ae:df:36:8c:df:53:c3:90:05:d4:92:45:0e:10: 56:27:09:58:40:a0:1b:0c:bf:3e:34:a4:76:2d:05:40: 4f:d0:8a:7a:ec:10:30:35:35:83:14:68:6d:72:b6:15: 90:78:c7:6e:1d:88:59:7f:37:53:18:86:a3:f5:2f:25: 6f:d7:22:19:2b:28:9d:68:44:01:44:67:f1:f1:7f:05: ac:bb:7b:66:0a C509Certificate 8b:02:41:01:0c:73:74:65:73:74:20:63:72:6c:6f:63: 73:70:2d:72:6f:6f:74:63:61:1a:67:74:85:80:1a:6b: Liao, et al. Expires 6 May 2027 [Page 110] Internet-Draft C509 Revocation November 2026 36:ec:7f:6f:74:65:73:74:20:63:72:6c:6f:63:73:70: 2d:63:61:0c:58:20:5e:f8:a3:55:a0:01:a7:c5:0d:23: 49:47:01:20:81:31:a4:bb:2a:b9:20:d4:0b:fb:0e:e1: f6:ab:28:ff:74:00:88:01:54:2f:45:e7:8d:2c:ae:df: 36:8c:df:53:c3:90:05:d4:92:45:0e:10:56:21:18:60: 23:01:07:54:2d:a3:a4:03:f7:d2:f4:e0:b3:d8:03:1a: 73:ba:8a:83:9f:55:7f:0f:58:40:e5:04:65:d6:0c:02: a2:11:1e:f3:fc:6e:44:f2:a3:60:08:76:5b:55:23:51: f9:a3:f5:b2:aa:7c:76:f1:f0:5d:25:98:47:a4:f4:25: 0b:2e:4b:0a:e2:09:97:62:a2:59:6d:3c:c1:db:2c:cd: 18:0a:a0:a2:d0:e1:91:31:0b:0f Signature Value 8a:e4:aa:b9:1f:e2:32:b3:6a:e8:74:ce:31:0b:e7:64: 49:62:6b:17:7c:2e:59:6a:21:e3:de:cd:a9:e7:b9:dc: 70:22:91:c6:da:f1:9a:f5:ad:e2:36:ee:34:b3:89:96: cf:48:03:bc:65:69:03:74:92:eb:41:f7:ad:e8:d5:05 Annotated hex 0: 8A # C509OCSPResponse=array[10] 1: 01 # [0]. ocspResponseType=C509BasicOCSPResponse # (1) 2: 0C # [1]. signatureAlgorithm=Ed25519 (12) 3: 2F # [2]. hashAlgorithm=SHA256 (-16) 4: 50 # [3]. nonce=byte[16] 5: 11111111111111111111111111111111 21: 48 # [4]. responderCertHash=byte[8] 22: 0600867838E3311A 30: 1A 67C4F100 # [5]. producedAt=1740960000: # 2025-03-03T00:00:00Z 35: 80 # [6]. extensions=array[0] 36: 86 # [7]. responses=array[6] #---PerIssuerResponses[0]--- 37: 48 # [0]. issuerCertHash=byte[8] 38: A01C73A5F3B06334 46: 80 # [1]. extensions=array[0] 47: 8F # [2]. singleResponses=array[15] #---SingleCertResponses[0]--- 48: 54 # [0]. serialNumberHash=byte[20] 49: 10652787FA0527BC2449A1BFC5AB31AA5A6F0D8D 69: 00 # [1]. certStatus=good (0) 70: 39 707F # [2]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 73: 19 6270 # [3]. nextUpdate=25200: # 2025-03-03T07:00:00Z 76: 80 # [4]. extensions=array[0] #---SingleCertResponses[1]--- 77: 54 # [5]. serialNumberHash=byte[20] Liao, et al. Expires 6 May 2027 [Page 111] Internet-Draft C509 Revocation November 2026 78: 75D8BC4FBAFC6694467641E748DFD53A8B9D176D 98: 01 # [6]. certStatus=not-issued (1) 99: 39 707F # [7]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 102: 19 6270 # [8]. nextUpdate=25200: # 2025-03-03T07:00:00Z 105: 80 # [9]. extensions=array[0] #---SingleCertResponses[2]--- 106: 54 # [10]. serialNumberHash=byte[20] 107: D1AC135D7DA29BDCF4DCA0D5281A51605B678400 127: 82 # [11]. certStatus=array[2] 128: 1A 67C32F00 # [0]. revocationTime=1740844800: # 2025-03-01T16:00:00Z 133: 04 # [1]. revocationReason=superseded (4) 134: 39 707F # [12]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 137: 19 6270 # [13]. nextUpdate=25200: # 2025-03-03T07:00:00Z 140: 80 # [14]. extensions=array[0] #---PerIssuerResponses[1]--- 141: 48 # [3]. issuerCertHash=byte[8] 142: 2222222222222222 150: 80 # [4]. extensions=array[0] 151: 85 # [5]. singleResponses=array[5] #---SingleCertResponses[0]--- 152: 54 # [0]. serialNumberHash=byte[20] 153: D3A0C1E3DB92E8F6810537D45CFAECF6CE417E3B 173: 02 # [1]. certStatus=unknown (2) 174: 39 707F # [2]. thisUpdate=-28800: # 2025-03-02T16:00:00Z 177: 19 6270 # [3]. nextUpdate=25200: # 2025-03-03T07:00:00Z 180: 80 # [4]. extensions=array[0] 181: 82 # [8]. responderCerts(COSE_C509)=array[2] 182: 58 C5 # [0]. C509CertData=byte[197] 184: 8B024212350C6F746573742063726C6F6373702D63611A6775D7001A 212: 69570A806E6F6373702D726573706F6E6465720C582081947BBC248A 240: AC79738211A8D75BF92CB777D994073DF23AE06380EF2C5739768801 268: 54B5B4CAF35401D06151DF9629DB579DC8CCA453A8210107542F45E7 296: 8D2CAEDF368CDF53C39005D492450E105627095840A01B0CBF3E34A4 324: 762D05404FD08A7AEC103035358314686D72B6159078C76E1D88597F 352: 37531886A3F52F256FD722192B289D6844014467F1F17F05ACBB7B66 380: 0A 381: 58 CA # [1]. C509CertData=byte[202] 383: 8B0241010C73746573742063726C6F6373702D726F6F7463611A6774 411: 85801A6B36EC7F6F746573742063726C6F6373702D63610C58205EF8 439: A355A001A7C50D23494701208131A4BB2AB920D40BFB0EE1F6AB28FF 467: 74008801542F45E78D2CAEDF368CDF53C39005D492450E1056211860 Liao, et al. Expires 6 May 2027 [Page 112] Internet-Draft C509 Revocation November 2026 495: 230107542DA3A403F7D2F4E0B3D8031A73BA8A839F557F0F5840E504 523: 65D60C02A2111EF3FC6E44F2A36008765B552351F9A3F5B2AA7C76F1 551: F05D259847A4F4250B2E4B0AE2099762A2596D3CC1DB2CCD180AA0A2 579: D0E191310B0F 585: 58 40 # [9]. signature value=byte[64] 587: 8AE4AAB91FE232B36AE874CE310BE76449626B177C2E596A21E3DECDA9 616: E7B9DC702291C6DAF19AF5ADE236EE34B38996CF4803BC6569037492EB 645: 41F7ADE8D505 Appendix B. Document Updates This section is to be removed before publishing as an RFC. B.1. Version -00 to -01 * Added the section "Alternative Certificate Status Checking Mechanisms". * Constrained the value ranges of integer fields in the CDDL. * Replaced the "C509 Hash Algorithms" registry with the "COSE Algorithms" registry. * Specified the PEM representation of C509 CRL and C509 OCSP messages. * Added the registries for C509 CRL types and C509 OCSP request and response types. * Added the section "Implementation Status". * Added the section "Security Considerations". * Clarifications and editorial improvements. Acknowledgments The authors thank xxx for reviewing and commenting on intermediate versions of the draft. Authors' Addresses Lijun Liao NIO Inc. China Email: lijun.liao@nio.io Liao, et al. Expires 6 May 2027 [Page 113] Internet-Draft C509 Revocation November 2026 Marco Tiloca RISE AB Sweden Email: marco.tiloca@ri.se Joel Höglund RISE AB Sweden Email: joel.hoglund@ri.se Rikard Höglund RISE AB Sweden Email: rikard.hoglund@ri.se Shahid Raza University of Glasgow United Kingdom Email: shahid.raza@glasgow.ac.uk Liao, et al. Expires 6 May 2027 [Page 114]