<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc sortrefs="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-spaghetti-sidrops-rpki-ccr-02" ipr="trust200902" xml:lang="en" sortRefs="true" submissionType="IETF" consensus="true" version="3">
  <front>
    <title abbrev="RPKI Canonical Cache Representation">
      A Profile for Resource Public Key Infrastructure (RPKI) Canonical Cache Representation (CCR)
    </title>
    <author fullname="Job Snijders" initials="J." surname="Snijders">
      <organization/>
      <address>
        <postal>
          <street/>
          <code/>
          <city>Amsterdam</city>
          <country>Netherlands</country>
        </postal>
        <email>job@sobornost.net</email>
      </address>
    </author>
    <author fullname="Bart Bakker" initials="B." surname="Bakker">
      <organization>RIPE NCC</organization>
      <address>
        <postal>
          <country>Netherlands</country>
        </postal>
        <email>bbakker@ripe.net</email>
      </address>
    </author>
    <author fullname="Tim Bruijnzeels" initials="T." surname="Bruijnzeels">
      <organization>RIPE NCC</organization>
      <address>
        <postal>
          <country>Netherlands</country>
        </postal>
        <email>tbruijnzeels@ripe.net</email>
      </address>
    </author>
    <date/>
    <area>ops</area>
    <workgroup>SIDROPS</workgroup>
    <keyword>security</keyword>
    <keyword>cryptography</keyword>
    <keyword>X.509</keyword>
    <abstract>
      <t>
        This document specifies a Canonical Cache Representation (CCR) content type for use with the Resource Public Key Infrastructure (RPKI).
        CCR is a DER-encoded data interchange format which can be used to represent various aspects of the state of a validated cache at a particular point in time.
        The CCR profile is a compact and versatile format well-suited for a diverse set of applications such as audit trail keeping, validated payload dissemination, and analytics pipelines.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>
        This document specifies a Canonical Cache Representation (CCR) content type for use with the Resource Public Key Infrastructure (RPKI).
        A validated cache contains all RPKI objects that the Relying Party (RP) has verified to be valid according to the rules for validation (see <xref target="RFC6487"/>, <xref target="RFC6488"/>, <xref target="RFC9286"/>).
        CCR is a data interchange format using Distinguished Encoding Rules (DER, <xref target="X.690"/>) which can be used to represent various aspects of the state of a validated cache at a particular point in time.
        The CCR profile is a compact and versatile format well-suited for a diverse set of applications such as audit record keeping, validated payload dissemination, and analytics pipelines.
      </t>
      <t>
         The format was primarily designed to support comparative analysis of uniformities and differences among multiple RP instances using different RPKI transport protocols (such as <xref target="RFC5781"/>, <xref target="RFC8182"/>, and <xref target="I-D.spaghetti-sidrops-rpki-erik-protocol"/>).
      </t>
      <section anchor="requirements">
        <name>Requirements Language</name>
        <t>
          The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section>
      <name>The Canonical Cache Representation content type</name>
      <t>
        The <tt>contentType</tt> for a CCR currently is defined as <tt>id-ct-rpkiCanonicalCacheRepresentation</tt>, with temporary Object Identifier (OID) <tt>1.3.6.1.4.1.41948.825</tt>.
      </t>
      <t>
        Note: as part of the standardization process, at a future point in time, the aforementioned contentType value will change from the current Private Enterprise Number (<xref target="RFC9371"/>) to an OID assigned by <xref target="iana">IANA</xref>.
      </t>
    </section>
    <section anchor="content">
      <name>The Canonical Cache Representation content</name>
      <t>
        The content of a Canonical Cache Representation is formally defined as follows:
      </t>
      <sourcecode anchor="ASN.1" type="asn.1" originalSrc="CCR-2025.asn">RpkiCanonicalCacheRepresentation-2025
  { iso(1) member-body(2) us(840) rsadsi(113549)
    pkcs(1) pkcs9(9) smime(16) mod(0) id-mod-rpkiCCR-2025(TBD) }

DEFINITIONS EXPLICIT TAGS ::=
BEGIN

IMPORTS
  CONTENT-TYPE, Digest, DigestAlgorithmIdentifier, SubjectKeyIdentifier
  FROM CryptographicMessageSyntax-2010 -- in [RFC6268]
    { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
      pkcs-9(9) smime(16) modules(0) id-mod-cms-2009(58) }

  -- in [draft-spaghetti-sidrops-rpki-erik-protocol-02]
  ManifestRef
  FROM RpkiErikPartition-2025
    { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
      pkcs9(9) smime(16) mod(0) id-mod-rpkiErikPartition-2025(TBD) }

  ASID, ROAIPAddressFamily
  FROM RPKI-ROA-2023 -- in [RFC9582]
    { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
      pkcs9(9) smime(16) mod(0) id-mod-rpkiROA-2023(75) }

  SubjectPublicKeyInfo
  FROM PKIX1Explicit-2009
    { iso(1) identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-explicit-02(51) }
  ;

ct-rpkiCanonicalCacheRepresentation CONTENT-TYPE ::=
  { TYPE RpkiCanonicalCacheRepresentation
    IDENTIFIED BY id-ct-rpkiCanonicalCacheRepresentation }

id-ct-rpkiCanonicalCacheRepresentation OBJECT IDENTIFIER ::=
  { iso(1) identified-organization(3) dod(6) internet(1) private(4)
    enterprise(1) snijders(41948) ccr(825) }

RpkiCanonicalCacheRepresentation ::= SEQUENCE {
  version     [0] INTEGER DEFAULT 0,
  hashAlg         DigestAlgorithmIdentifier,
  producedAt      GeneralizedTime,
  mfts        [1] ManifestState OPTIONAL,
  vrps        [2] ROAPayloadState OPTIONAL,
  vaps        [3] ASPAPayloadState OPTIONAL,
  tas         [4] TrustAnchorState OPTIONAL,
  rks         [5] RouterKeyState OPTIONAL,
  ... }
  -- at least one of mfts, vrps, vaps, or tas MUST be present
  ( WITH COMPONENTS { ..., mfts PRESENT } |
    WITH COMPONENTS { ..., vrps PRESENT } |
    WITH COMPONENTS { ..., vaps PRESENT } |
    WITH COMPONENTS { ..., tas PRESENT } |
    WITH COMPONENTS { ..., rks PRESENT } )

ManifestState ::= SEQUENCE {
  mftrefs           SEQUENCE OF ManifestRef,
  mostRecentUpdate  GeneralizedTime,
  hash              Digest }

ROAPayloadState ::= SEQUENCE {
  rps               SEQUENCE OF ROAPayloadSet,
  hash              Digest }

ROAPayloadSet ::= SEQUENCE {
  asID              ASID,
  ipAddrBlocks      SEQUENCE (SIZE(1..2)) OF ROAIPAddressFamily }

ASPAPayloadState ::= SEQUENCE {
  aps               SEQUENCE OF ASPAPayloadSet,
  hash              Digest }

ASPAPayloadSet ::= SEQUENCE {
  customerASID      ASID,
  providers         SEQUENCE (SIZE(1..MAX)) OF ASID }

TrustAnchorState ::= SEQUENCE {
  skis              SEQUENCE (SIZE(1..MAX)) OF SubjectKeyIdentifier,
  hash              Digest }

RouterKeyState ::= SEQUENCE {
  rksets            SEQUENCE OF RouterKeySet,
  hash              Digest }

RouterKeySet ::= SEQUENCE {
  asID              ASID,
  routerKeys        SEQUENCE (SIZE(1..MAX)) OF RouterKey }

RouterKey ::= SEQUENCE {
  ski               SubjectKeyIdentifier,
  spki              SubjectPublicKeyInfo }

END
</sourcecode>
      <section>
        <name>version</name>
        <t>
          The <tt>version</tt> field contains the format version for the <tt>RpkiCanonicalCacheRepresentation</tt> structure, in this version of the specification it <bcp14>MUST</bcp14> be 0.
        </t>
      </section>
      <section>
        <name>hashAlg</name>
        <t>
          The <tt>hashAlg</tt> field specifies the algorithm used to construct the message digests.
          This profile uses SHA-256 <xref target="SHS"/>, therefore the OID <bcp14>MUST</bcp14> be <tt>2.16.840.1.101.3.4.2.1</tt>.
        </t>
      </section>
      <section>
        <name>producedAt</name>
        <t>
          The <tt>producedAt</tt> field contains a <tt>GeneralizedTime</tt> and indicates the moment in time the CCR was generated.
        </t>
      </section>
      <section>
        <name>State aspect fields</name>
        <t>
          Each CCR contains one or more fields representing particular aspects of the cache's state.
          Implementers should note the ellipsis extension marker in the <tt>RpkiCanonicalCacheRepresentation</tt> ASN.1 notation and anticipate future changes as new signed object types are standardized.
        </t>
        <t>
          Each state aspect generally consists of a sequence of details extracted from RPKI Objects of a specific type, along with a digest computed by hashing the aforementioned DER-encoded sequence, optionally including some metadata.
        </t>
        <section>
          <name>ManifestState</name>
          <t>
            An instance of <tt>ManifestState</tt> represents the set of valid, current Manifests (<xref target="RFC9286"/>) in the cache.
            It contains three fields:
          </t>
          <t>
            The <tt>mftrefs</tt> field contains a SEQUENCE of <tt>ManifestRef</tt> structures (see <xref target="I-D.spaghetti-sidrops-rpki-erik-protocol" section="3"/>) sorted in ascending order by hash value.
            The <tt>hash</tt> value in each instance of <tt>ManifestRef</tt> <bcp14>MUST</bcp14> be unique with respect to the other instances of <tt>ManifestRef</tt>.
          </t>
          <t>
            The <tt>mostRecentUpdate</tt> is a metadata field which contains the most recent <tt>thisUpdate</tt> amongst all Manifests.
            If the <tt>mftrefs</tt> field contains an empty sequence, the <tt>mostRecentUpdate</tt> <bcp14>MUST</bcp14> be set to the POSIX Epoch ("19700101000000Z").
          </t>
          <t>
            The <tt>hash</tt> field contains a message digest computed using the <tt>mftrefs</tt> value (encoded in DER format) as input message.
          </t>
        </section>
        <section>
          <name>ROAPayloadState</name>
          <t>
            An instance of <tt>ROAPayloadState</tt> contains a field named <tt>rps</tt> which represents the current set of Validated ROA Payloads (<xref target="RFC6811" section="2"/>) encoded as a SEQUENCE of <tt>ROAPayloadSet</tt> instances.
          </t>
          <t>
            The <tt>ROAPayloadSet</tt> structure is modeled after the <tt>RouteOriginAttestation</tt> (<xref target="RFC9582" section="4"/>).
            The <tt>asID</tt> value in each instance of <tt>ROAPayloadSet</tt> <bcp14>MUST</bcp14> be unique with respect to other instances of <tt>ROAPayloadSet</tt>.
            The contents of the <tt>ipAddrBlocks</tt> field <bcp14>MUST</bcp14> appear in canonical form and ordered as defined in <xref target="RFC9582" section="4.3.3"/>.
          </t>
          <t>
            The <tt>hash</tt> field contains a message digest computed using the <tt>rps</tt> value (encoded in DER format) as input message.
          </t>
        </section>
        <section>
          <name>ASPAPayloadState</name>
          <t>
            An instance of <tt>ASPAPayloadState</tt> contains an <tt>aps</tt> field which represents the current set of deduplicated and merged ASPA payloads (<xref target="I-D.ietf-sidrops-aspa-profile"/>) ordered by ascending <tt>customerASID</tt> value encoded as a SEQUENCE of <tt>ASPAPayloadSet</tt> instances.
            The <tt>customerASID</tt> value in each instance of <tt>ASPAPayloadSet</tt> <bcp14>MUST</bcp14> be unique with respect to other instances of <tt>ASPAPayloadSet</tt>.
          </t>
          <t>
            The <tt>ASPAPayloadSet</tt> structure is modeled after the <tt>ProviderASSet</tt> (<xref target="I-D.ietf-sidrops-aspa-profile" section="3.3"/>).
          </t>
          <t>
            The <tt>hash</tt> field contains a message digest computed using the <tt>aps</tt> value (encoded in DER format) as input message.
          </t>
        </section>
        <section>
          <name>TrustAnchorState</name>
          <t>
            An instance of <tt>TrustAnchorState</tt> represents the set of valid Trust Anchor (TA) Certification Authority (CA) resource certificates used by the relying party when producing the CCR.
          </t>
          <t>
            Each <tt>SubjectKeyIdentifier</tt> is the 160-bit SHA-1 hash of the value of the DER-encoded ASN.1 bit string of the TA's Subject Public Key, as described in <xref target="RFC6487" section="4.8.2"/>.
            The <tt>skis</tt> field contains a sequence of Subject Key Identifiers (SKI) sorted in ascending order by interpreting the SKI value as an unsigned 160-bit integer.
          </t>
          <t>
            The <tt>hash</tt> field contains a message digest computed using the <tt>skis</tt> value (encoded in DER format) as input message.
          </t>
        </section>
        <section>
          <name>RouterKeyState</name>
          <t>
            An instance of <tt>RouterKeyState</tt> contains an <tt>rksets</tt> field which represents the current set of valid BGPsec Router Keys <xref target="RFC8205"/> encoded as a SEQUENCE of <tt>RouterKeySet</tt> instances.
            The <tt>asID</tt> value in each instance of <tt>RouterKeySet</tt> <bcp14>MUST</bcp14> be unique with respect to other instances of <tt>RouterKeySet</tt>.
            Instances of <tt>RouterKeySet</tt> are sorted by ascending value of <tt>asID</tt>.
            Instances of <tt>RouterKey</tt> are sorted by ascending value of <tt>ski</tt> by interpreting the SKI value as an unsigned 160-bit integer.
          </t>
          <t>
            The <tt>hash</tt> field contains a message digest computed using the <tt>rks</tt> value (encoded in DER format) as input message.
          </t>
        </section>
      </section>
    </section>
    <section>
      <name>Operational Considerations</name>
      <t>
        Comparing the ManifestState <tt>mostRecentUpdate</tt> timestamp value with the <tt>producedAt</tt> timestamp might help offer insight into the timing and propagation delays of the RPKI supply chain.
      </t>
      <t>
        Given the absence of public keys and fairly repetitive content in RPKI AccessDescription instances, it should be noted CCR content compresses well.
      </t>
      <section>
        <name>Verifying CCR file integrity</name>
        <t>
          The integrity of a CCR object can be checked by confirming whether the hash values embedded inside state aspects match the computed hash value of the respective state aspect payload structure.
        </t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>
        CCR objects are not signed objects.
      </t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section>
        <name>SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)</name>
        <t>
          IANA is requested to allocate the following in the "SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)" registry:
        </t>
        <table anchor="cms-content-type" align="center">
          <name/>
          <thead>
            <tr>
              <th rowspan="1" colspan="1">Decimal</th>
              <th rowspan="1" colspan="1">Description</th>
              <th rowspan="1" colspan="1">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>TBD</td>
              <td>id-ct-rpkiCanonicalCacheRepresentation</td>
              <td>draft-spaghetti-sidrops-rpki-ccr</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section>
        <name>RPKI Repository Name Schemes</name>
        <t>
          IANA is requested to add the Canonical Cache Representation file extension to the "RPKI Repository Name Schemes" registry <xref target="RFC6481"/> as follows:
        </t>
        <table anchor="rpki-repository-name-schemes" align="center">
          <name/>
          <thead>
            <tr>
              <th rowspan="1" colspan="1">Filename Extension</th>
              <th rowspan="1" colspan="1">RPKI Object</th>
              <th rowspan="1" colspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>.ccr</td>
              <td>Canonical Cache Representation</td>
              <td>draft-spaghetti-sidrops-rpki-ccr</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section>
        <name>SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)</name>
        <t>
          IANA is requested to allocate the following in the "SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)" registry:
        </t>
        <table anchor="smi-security-identifier" align="center">
          <name/>
          <thead>
            <tr>
              <th rowspan="1" colspan="1">Decimal</th>
              <th rowspan="1" colspan="1">Description</th>
              <th rowspan="1" colspan="1">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>TBD</td>
              <td>id-mod-rpkiCCR-2025</td>
              <td>draft-spaghetti-sidrops-rpki-ccr</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section>
        <name>Media Types</name>
        <t>
          IANA is requested to register the media type "application/rpki-ccr" in the "Media Types" registry as follows:
        </t>
        <section>
          <name>Canonical Cache Representation Media Type</name>
          <dl spacing="compact">
            <dt>Type name:</dt>
            <dd>application</dd>
            <dt>Subtype name:</dt>
            <dd>rpki-ccr</dd>
            <dt>Required parameters:</dt>
            <dd>N/A</dd>
            <dt>Optional parameters:</dt>
            <dd>N/A</dd>
            <dt>Encoding considerations:</dt>
            <dd>binary</dd>
            <dt>Security considerations:</dt>
            <dd>This media type contains no active content.</dd>
            <dt>Interoperability considerations:</dt>
            <dd>N/A</dd>
            <dt>Published specification:</dt>
            <dd>draft-spaghetti-sidrops-rpki-ccr</dd>
            <dt>Applications that use this media type:</dt>
            <dd>RPKI operators</dd>
            <dt>Fragment identifier considerations:</dt>
            <dd>N/A</dd>
            <dt>Additional information:</dt>
            <dd>
              <dl spacing="compact">
                <dt><br/></dt>
                <dd/>
                <dt>Content:</dt>
                <dd>This media type is a RPKI Canonical Cache Representation object, as defined in draft-spaghetti-sidrops-rpki-ccr.</dd>
                <dt>Magic number(s):</dt>
                <dd>N/A</dd>
                <dt>File extension(s):</dt>
                <dd>.ccr</dd>
                <dt>Macintosh file type code(s):</dt>
                <dd>N/A</dd>
              </dl>
            </dd>
            <dt>Person &amp; email address to contact for further information:</dt>
            <dd>Job Snijders (job@sobornost.net)</dd>
            <dt>Intended usage:</dt>
            <dd>COMMON</dd>
            <dt>Restrictions on usage:</dt>
            <dd>N/A</dd>
            <dt>Author:</dt>
            <dd>Job Snijders (job@sobornost.net)</dd>
            <dt>Change controller:</dt>
            <dd>IETF</dd>
          </dl>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6481" target="https://www.rfc-editor.org/info/rfc6481" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6481.xml">
          <front>
            <title>A Profile for Resource Certificate Repository Structure</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="R. Loomans" initials="R." surname="Loomans"/>
            <author fullname="G. Michaelson" initials="G." surname="Michaelson"/>
            <date month="February" year="2012"/>
            <abstract>
              <t>This document defines a profile for the structure of the Resource Public Key Infrastructure (RPKI) distributed repository. Each individual repository publication point is a directory that contains files that correspond to X.509/PKIX Resource Certificates, Certificate Revocation Lists and signed objects. This profile defines the object (file) naming scheme, the contents of repository publication points (directories), and a suggested internal structure of a local repository cache that is intended to facilitate synchronization across a distributed collection of repository publication points and to facilitate certification path construction. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6481"/>
          <seriesInfo name="DOI" value="10.17487/RFC6481"/>
        </reference>
        <reference anchor="RFC6487" target="https://www.rfc-editor.org/info/rfc6487" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6487.xml">
          <front>
            <title>A Profile for X.509 PKIX Resource Certificates</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="G. Michaelson" initials="G." surname="Michaelson"/>
            <author fullname="R. Loomans" initials="R." surname="Loomans"/>
            <date month="February" year="2012"/>
            <abstract>
              <t>This document defines a standard profile for X.509 certificates for the purpose of supporting validation of assertions of "right-of-use" of Internet Number Resources (INRs). The certificates issued under this profile are used to convey the issuer's authorization of the subject to be regarded as the current holder of a "right-of-use" of the INRs that are described in the certificate. This document contains the normative specification of Certificate and Certificate Revocation List (CRL) syntax in the Resource Public Key Infrastructure (RPKI). This document also specifies profiles for the format of certificate requests and specifies the Relying Party RPKI certificate path validation procedure. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6487"/>
          <seriesInfo name="DOI" value="10.17487/RFC6487"/>
        </reference>
        <reference anchor="RFC6488" target="https://www.rfc-editor.org/info/rfc6488" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6488.xml">
          <front>
            <title>Signed Object Template for the Resource Public Key Infrastructure (RPKI)</title>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="A. Chi" initials="A." surname="Chi"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="February" year="2012"/>
            <abstract>
              <t>This document defines a generic profile for signed objects used in the Resource Public Key Infrastructure (RPKI). These RPKI signed objects make use of Cryptographic Message Syntax (CMS) as a standard encapsulation format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6488"/>
          <seriesInfo name="DOI" value="10.17487/RFC6488"/>
        </reference>
        <reference anchor="RFC6811" target="https://www.rfc-editor.org/info/rfc6811" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6811.xml">
          <front>
            <title>BGP Prefix Origin Validation</title>
            <author fullname="P. Mohapatra" initials="P." surname="Mohapatra"/>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>To help reduce well-known threats against BGP including prefix mis- announcing and monkey-in-the-middle attacks, one of the security requirements is the ability to validate the origination Autonomous System (AS) of BGP routes. More specifically, one needs to validate that the AS number claiming to originate an address prefix (as derived from the AS_PATH attribute of the BGP route) is in fact authorized by the prefix holder to do so. This document describes a simple validation mechanism to partially satisfy this requirement. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6811"/>
          <seriesInfo name="DOI" value="10.17487/RFC6811"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9286" target="https://www.rfc-editor.org/info/rfc9286" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9286.xml">
          <front>
            <title>Manifests for the Resource Public Key Infrastructure (RPKI)</title>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>This document defines a "manifest" for use in the Resource Public Key Infrastructure (RPKI). A manifest is a signed object (file) that contains a listing of all the signed objects (files) in the repository publication point (directory) associated with an authority responsible for publishing in the repository. For each certificate, Certificate Revocation List (CRL), or other type of signed objects issued by the authority that are published at this repository publication point, the manifest contains both the name of the file containing the object and a hash of the file content. Manifests are intended to enable a relying party (RP) to detect certain forms of attacks against a repository. Specifically, if an RP checks a manifest's contents against the signed objects retrieved from a repository publication point, then the RP can detect replay attacks, and unauthorized in-flight modification or deletion of signed objects. This document obsoletes RFC 6486.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9286"/>
          <seriesInfo name="DOI" value="10.17487/RFC9286"/>
        </reference>
        <reference anchor="RFC9582" target="https://www.rfc-editor.org/info/rfc9582" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9582.xml">
          <front>
            <title>A Profile for Route Origin Authorizations (ROAs)</title>
            <author fullname="J. Snijders" initials="J." surname="Snijders"/>
            <author fullname="B. Maddison" initials="B." surname="Maddison"/>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="D. Kong" initials="D." surname="Kong"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This document defines a standard profile for Route Origin Authorizations (ROAs). A ROA is a digitally signed object that provides a means of verifying that an IP address block holder has authorized an Autonomous System (AS) to originate routes to one or more prefixes within the address block. This document obsoletes RFC 6482.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9582"/>
          <seriesInfo name="DOI" value="10.17487/RFC9582"/>
        </reference>
        <reference anchor="I-D.ietf-sidrops-aspa-profile" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-profile-20" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-aspa-profile.xml">
          <front>
            <title>A Profile for Autonomous System Provider Authorization</title>
            <author fullname="Alexander Azimov" initials="A." surname="Azimov">
              <organization>Yandex</organization>
            </author>
            <author fullname="Eugene Uskov" initials="E." surname="Uskov">
              <organization>JetLend</organization>
            </author>
            <author fullname="Randy Bush" initials="R." surname="Bush">
              <organization>Internet Initiative Japan</organization>
            </author>
            <author fullname="Job Snijders" initials="J." surname="Snijders"/>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="Ben Maddison" initials="B." surname="Maddison">
              <organization>Workonline</organization>
            </author>
            <date day="18" month="August" year="2025"/>
            <abstract>
              <t>This document defines a Cryptographic Message Syntax (CMS) protected content type for Autonomous System Provider Authorization (ASPA) objects for use with the Resource Public Key Infrastructure (RPKI). An ASPA is a digitally signed object through which the issuer (the holder of an Autonomous System identifier), can authorize one or more other Autonomous Systems (ASes) as its upstream providers. When validated, an ASPA's eContent can be used for detection and mitigation of route leaks.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-aspa-profile-20"/>
        </reference>
        <reference anchor="I-D.spaghetti-sidrops-rpki-erik-protocol" target="https://datatracker.ietf.org/doc/html/draft-spaghetti-sidrops-rpki-erik-protocol-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.spaghetti-sidrops-rpki-erik-protocol.xml">
          <front>
            <title>The Erik Synchronization Protocol for use with the Resource Public Key Infrastructure (RPKI)</title>
            <author fullname="Job Snijders"/>
            <author fullname="Tim Bruijnzeels"/>
            <author fullname="Tom Harrison"/>
            <author fullname="Wataru Ohgai"/>
            <date day="11" month="September" year="2025"/>
            <abstract>
              <t>This document specifies the Erik Synchronization Protocol for use
   with the Resource Public Key Infrastructure (RPKI).  Erik
   Synchronization can be characterized as a data replication system
   using Merkle trees, a content-addressable naming scheme, concurrency
   control using monotonically increasing sequence numbers, and HTTP
   transport.  Relying Parties can combine information retrieved via
   Erik Synchronization with other RPKI transport protocols.  The
   protocol's design is intended to be efficient, fast, and easy to
   implement.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-spaghetti-sidrops-rpki-erik-protocol-01"/>
        </reference>
        <reference anchor="SHS" target="https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf">
          <front>
            <title>Secure Hash Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date month="March" year="2012"/>
          </front>
        </reference>
        <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.690-202102-I/en">
          <front>
            <title>Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (B
ER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization showOnFrontPage="true">ITU-T</organization>
            </author>
            <date month="February" year="2021"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC5781" target="https://www.rfc-editor.org/info/rfc5781" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5781.xml">
          <front>
            <title>The rsync URI Scheme</title>
            <author fullname="S. Weiler" initials="S." surname="Weiler"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="February" year="2010"/>
            <abstract>
              <t>This document specifies the rsync Uniform Resource Identifier (URI) scheme. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5781"/>
          <seriesInfo name="DOI" value="10.17487/RFC5781"/>
        </reference>
        <reference anchor="RFC8182" target="https://www.rfc-editor.org/info/rfc8182" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8182.xml">
          <front>
            <title>The RPKI Repository Delta Protocol (RRDP)</title>
            <author fullname="T. Bruijnzeels" initials="T." surname="Bruijnzeels"/>
            <author fullname="O. Muravskiy" initials="O." surname="Muravskiy"/>
            <author fullname="B. Weber" initials="B." surname="Weber"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>In the Resource Public Key Infrastructure (RPKI), Certificate Authorities (CAs) publish certificates, including end-entity certificates, Certificate Revocation Lists (CRLs), and RPKI signed objects to repositories. Relying Parties retrieve the published information from those repositories. This document specifies a new RPKI Repository Delta Protocol (RRDP) for this purpose. RRDP was specifically designed for scaling. It relies on an Update Notification File which lists the current Snapshot and Delta Files that can be retrieved using HTTPS (HTTP over Transport Layer Security (TLS)), and it enables the use of Content Distribution Networks (CDNs) or other caching infrastructures for the retrieval of these files.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8182"/>
          <seriesInfo name="DOI" value="10.17487/RFC8182"/>
        </reference>
        <reference anchor="RFC8205" target="https://www.rfc-editor.org/info/rfc8205" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8205.xml">
          <front>
            <title>BGPsec Protocol Specification</title>
            <author fullname="M. Lepinski" initials="M." role="editor" surname="Lepinski"/>
            <author fullname="K. Sriram" initials="K." role="editor" surname="Sriram"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>This document describes BGPsec, an extension to the Border Gateway Protocol (BGP) that provides security for the path of Autonomous Systems (ASes) through which a BGP UPDATE message passes. BGPsec is implemented via an optional non-transitive BGP path attribute that carries digital signatures produced by each AS that propagates the UPDATE message. The digital signatures provide confidence that every AS on the path of ASes listed in the UPDATE message has explicitly authorized the advertisement of the route.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8205"/>
          <seriesInfo name="DOI" value="10.17487/RFC8205"/>
        </reference>
        <reference anchor="RFC9371" target="https://www.rfc-editor.org/info/rfc9371" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9371.xml">
          <front>
            <title>Registration Procedures for Private Enterprise Numbers (PENs)</title>
            <author fullname="A. Baber" initials="A." surname="Baber"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="March" year="2023"/>
            <abstract>
              <t>This document describes how Private Enterprise Numbers (PENs) are registered by IANA. It shows how to request a new PEN and how to modify a current PEN. It also gives a brief overview of PEN uses.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9371"/>
          <seriesInfo name="DOI" value="10.17487/RFC9371"/>
        </reference>
        <reference anchor="rpki-client" target="https://www.rpki-client.org/">
          <front>
            <title>rpki-client</title>
            <author fullname="Claudio Jeker"/>
            <author fullname="Kristaps Dzonsons"/>
            <author fullname="Theo Buehler"/>
            <author fullname="Job Snijders"/>
            <date month="September" year="2025"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>
        The authors wish to thank
        <contact fullname="Theo Buehler"/>
        and
        <contact fullname="Russ Housley"/>
        for their generous feedback on this specification,
      </t>
    </section>
    <section title="Example CCR">
      <t>
        The below is a Base64-encoded example CCR object.
        For a more elaborate example based on the global RPKI, see the URL in <xref target="implementation"/>.
      </t>
      <sourcecode anchor="tv-base64" type="txt" originalSrc="testvector.b64">MIIMSQYKKwYBBAGCx1yGOaCCDDkEggw1MIIMMQYJYIZIAWUDBAIBGA8yMDI1MDkxNDE1MDEw
MFqhggiRMIIIjTCCCFYwgcAEIAACZB8QGnG7oNnfSN0YAOvCdN3Ur3Bi/6ZUr3zhjIzTAgIH
zgQU9YgvM/dIDcx7h2N66nY2gonXXC0CAgOdMH4wfAYIKwYBBQUHMAuGcHJzeW5jOi8vcnBr
aS5yaXBlLm5ldC9yZXBvc2l0b3J5L0RFRkFVTFQvNTgvOTJmZjJhLWExNmEtNGE3OC05OWIy
LWE5NTEwNWYxNmU2Ni8xLzlZZ3ZNX2RJRGN4N2gyTjY2blkyZ29uWFhDMC5tZnQwgcAEIAAD
FaS3OeYdIGrlYdplmWRCc/b/vIIZ41x2cYIDB98tAgIHhAQU4iUB2aQBcJg48z0a4nm85xAL
PM8CAhD7MH4wfAYIKwYBBQUHMAuGcHJzeW5jOi8vcnBraS5yaXBlLm5ldC9yZXBvc2l0b3J5
L0RFRkFVTFQvNzMvNjNmYWU5LTQ5OWYtNDNkNS04NzY4LWY5ODExZWUzZmE4Ny8xLzRpVUIy
YVFCY0pnNDh6MGE0bm04NXhBTFBNOC5tZnQwgcAEIAAGX7XATpqomReZH/kFJzRvTis+ZZQU
Uvy4yHtIoMl4AgIHzgQUbRZNm2s8fL0enSecbIZ7rTl9HhcCAgq9MH4wfAYIKwYBBQUHMAuG
cHJzeW5jOi8vcnBraS5yaXBlLm5ldC9yZXBvc2l0b3J5L0RFRkFVTFQvNmYvYWViMjNhLWY4
ZDgtNGExYi1hMjMyLTNkN2U0YjQ5NmIyMy8xL2JSWk5tMnM4ZkwwZW5TZWNiSVo3clRsOUho
Yy5tZnQwgcAEIAAK+8PP7qfz2VJ7ZMW3712a2FQOJW4WmXci6gZ+e9/1AgIHzgQUu7w9vRpP
Ikq4StYJwmgHn7Yktb0CAgKnMH4wfAYIKwYBBQUHMAuGcHJzeW5jOi8vcnBraS5yaXBlLm5l
dC9yZXBvc2l0b3J5L0RFRkFVTFQvMmYvNTRiMDA2LTY4MDktNDQxYi04NGQ3LWEyNGNiNTcy
Mjk4ZS8xL3U3dzl2UnBQSWtxNFN0WUp3bWdIbjdZa3RiMC5tZnQwgcMEIAALBdj1jcZE3mUP
6sZ9IuMl+tvuJocXB2upV1xYqndWAgIIQQQUsTgy/KSTRJYjasOJSZjD3VE9fAkCAgHRMIGA
MH4GCCsGAQUFBzALhnJyc3luYzovL3Jwa2kuYXBuaWMubmV0L21lbWJlcl9yZXBvc2l0b3J5
L0E5MUQ0QTE2L0JBRTdFRkZFQ0M1MzExRUQ4MUY0QzUxNUM0RjlBRTAyL3NUZ3lfS1NUUkpZ
amFzT0pTWmpEM1ZFOWZBay5tZnQwgcAEIAAMULeEV120Ki3nY2IviSgoIojxc0fY4QYbLHW1
RvCIAgIIGAQUCu6u4IY9HcpiT2HzmyGBx9tsuj8CAhaCMH4wfAYIKwYBBQUHMAuGcHJzeW5j
Oi8vcnBraS5yaXBlLm5ldC9yZXBvc2l0b3J5L0RFRkFVTFQvNmIvYjYyODc4LWNjYzgtNGQ1
Ny05ZmUwLTdhMTA0YjgwY2Q3MS8xL0N1NnU0SVk5SGNwaVQySHpteUdCeDl0c3VqOC5tZnQw
gcMEIAAPWzF28fMyncCx12qaz7kQioEFqQUDlREIskDel37rAgIIkAQUV4yNAq7wtD4p/s6h
iV3MnRBmNTUCAgCaMIGAMH4GCCsGAQUFBzALhnJyc3luYzovL3Jwa2kuYXBuaWMubmV0L21l
bWJlcl9yZXBvc2l0b3J5L0E5MUQ0Nzg2LzM0NTk4QzcwQTdDMzExRUZCNTExRTA1M0M0RjlB
RTAyL1Y0eU5BcTd3dEQ0cF9zNmhpVjNNblJCbU5UVS5tZnQwgaYEIAAP4knx9MqNi0cX7y/U
ZCBKNPjQLYHTOQSvKSBsHJbQAgIIJAQUEjAdQAli3Zh6PHuDozZih9R/hv0CAgGeMGQwYgYI
KwYBBQUHMAuGVnJzeW5jOi8vcnBraS1yZXBvc2l0b3J5Lm5pYy5hZC5qcC9hcC9BOTFBNzM4
MTAwMDAvMTE2NC9FakFkUUFsaTNaaDZQSHVEb3paaWg5Ul9odjAubWZ0MIHGBCAAHYvnx16W
YeV19+TMxzpAMn0XfX48Qlpq727twfGMtgICCHwEFLHwp1he0Ygng8avgCuCZgeruSZxAgIA
pDCBgzCBgAYIKwYBBQUHMAuGdHJzeW5jOi8vcmVwby1ycGtpLmlkbmljLm5ldC9yZXBvLzM4
OTEzODkzLTVmNjQtNGE1ZS1hOGQyLTVkNTFlYmRlNDczZi8wL0IxRjBBNzU4NUVEMTg4Mjc4
M0M2QUY4MDJCODI2NjA3QUJCOTI2NzEubWZ0MIHABCAAIPL6MV7immGLGseP+wvPZ/pf1o04
eIRwWx5FgolA8gICB84EFDnkBZ5RnnytBTa9VNkbyXh1ZEzbAgIWFDB+MHwGCCsGAQUFBzAL
hnByc3luYzovL3Jwa2kucmlwZS5uZXQvcmVwb3NpdG9yeS9ERUZBVUxUL2QwL2VmOTIyMS1j
MzU0LTRlNjctYTMyZi04NGU1OTZhM2MxMjEvMS9PZVFGbmxHZWZLMEZOcjFVMlJ2SmVIVmtU
TnMubWZ0MIHDBCAAItuJfm7KzB0tZ67VMEfyn2RWofj0LL+NKF3PIlD+EAICCEEEFB1JL6Pz
spWASVpogNQE7gw3CtklAgIHvzCBgDB+BggrBgEFBQcwC4ZycnN5bmM6Ly9ycGtpLmFwbmlj
Lm5ldC9tZW1iZXJfcmVwb3NpdG9yeS9BOTE1RDk2My85MEU4MEJDODk3RTIxMUVCOUIzOUQ1
MzFDNEY5QUUwMi9IVWt2b19PeWxZQkpXbWlBMUFUdUREY0syU1UubWZ0GA8yMDI1MDkxNDA4
NDYxMVoEIOkncqTT5I7ju5ZUA+jvmRH7IRVnBv57fE09ZL0xLlMFooIBcjCCAW4wggFIMGQC
AQcwXzBIBAIAATBCMAkDBADAI14CASAwCQMEAMBDKwIBIDAJAwQAwiBFAgEgMAkDBAHCINoC
ASAwCQMEAMIiigIBIDAJAwQBwj1cAgEgMBMEAgACMA0wCwMFAyoLO0ACAgCAMIGjAgIgWzCB
nDB+BAIAATB4MAYDBABb0CIwBgMEAF6O8DAGAwQDXo7wMAYDBABejvEwBgMEAF6O8jAGAwQA
Xo70MAYDBABejvUwBgMEAF6O9jAGAwQAXo73MAYDBAC5NOAwBgMEArk04DAGAwQAuTThMAYD
BAC5NOIwBgMEALk04zAGAwQAyzgsMBoEAgACMBQwCQMHACABBngGiDAHAwUAKgIImDA6AgI8
yjA0MDIEAgACMCwwCQMHACABBnwgjDAJAwcAIAEHKBgIMAkDBwAqDrJAAAAwCQMHACoOskAB
GAQgAl+KF2al/E8GWh6+c6q4ioauKZfjAZESuEPfZudU7QyjgZYwgZMwbzAOAgIDsTAIAgIF
jQICM50wFwICHicwEQICA7ECAgWNAgIznQIDAO7SMA8CAkivMAkCAk/5AgMDKn8wCgIDAJha
MAMCAQAwJwIDAKL4MCACAgCuAgIFEwICIyoCAwDGvQIDAOqkAgMDGrYCAwM+HAQgF4/tlzhp
mL4YKhcxyv8ModrOMgZyQ1uXjP4vEctwTs6kUjBQMCwEFAucypDdDXqKN2ZrGSF/4NhAN7ei
BBToVSsf1tGk9+QExtjlaA0evBY/wwQg/7Ca0JwrjmC2RyIiWmTLXda2KYGnTSaBL5i+mvS+
L4elggEZMIIBFTCB8DCB7QICPMowgeYwcQQUXUJQ4tgdREjYop786R0p/wdeyeIwWTATBgcq
hkjOPQIBBggqhkjOPQMBBwNCAASAVyND+D/8sBB6sAfYymn4a5ygMAYFuEioPffA0+xfGcAZ
v6a1ntdCtU70NDpSUBKG2KDn5B8QqlO0WCKp+IAVMHEEFL6Im1XQtzc5fXXEn0hbhY+pitEf
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4FxJr0n2bux1uX1Evl+QWwZYvIadPjLuFX2m
xqKuAGUhKnr7VLLDgrE++l9p5eH2kWTNVAN22FUU3db/RKpE2wQgul+0Sc77a6APNhJ5YqLu
puhn/oUSu92t6cbkuLwWwdI=
</sourcecode>
      <t>
        It decodes as follows:
      </t>
      <sourcecode anchor="tv-decode" type="txt" originalSrc="testvector.decode">File:                     /var/db/rpki-client/rpki.ccr
Hash identifier:          2I/Z4CJxz1uFzeCzNrVI0z0mwNWmjJr5rfIthoSSe/o=
CCR produced at:          Sun 14 Sep 2025 15:01:00 +0000
Manifest state hash:      RTkyNzcyQTREM0U0OEVFM0JCOTY1NDAzRThFRjk5MTE=
Manifest last update:     Sun 14 Sep 2025 08:46:11 +0000
Manifest references:
                          hash:AAJkHxAacbug2d9I3RgA68J03dSvcGL/plSvfOGMjNM= size:1998 aki:F5882F33F7480DCC7B87637AEA76368289D75C2D seqnum:039D sia:rsync://rpki.ripe.net/repository/DEFAULT/58/92ff2a-a16a-4a78-99b2-a95105f16e66/1/9YgvM_dIDcx7h2N66nY2gonXXC0.mft
                          hash:AAMVpLc55h0gauVh2mWZZEJz9v+8ghnjXHZxggMH3y0= size:1924 aki:E22501D9A401709838F33D1AE279BCE7100B3CCF seqnum:10FB sia:rsync://rpki.ripe.net/repository/DEFAULT/73/63fae9-499f-43d5-8768-f9811ee3fa87/1/4iUB2aQBcJg48z0a4nm85xALPM8.mft
                          hash:AAZftcBOmqiZF5kf+QUnNG9OKz5llBRS/LjIe0igyXg= size:1998 aki:6D164D9B6B3C7CBD1E9D279C6C867BAD397D1E17 seqnum:0ABD sia:rsync://rpki.ripe.net/repository/DEFAULT/6f/aeb23a-f8d8-4a1b-a232-3d7e4b496b23/1/bRZNm2s8fL0enSecbIZ7rTl9Hhc.mft
                          hash:AAr7w8/up/PZUntkxbfvXZrYVA4lbhaZdyLqBn573/U= size:1998 aki:BBBC3DBD1A4F224AB84AD609C268079FB624B5BD seqnum:02A7 sia:rsync://rpki.ripe.net/repository/DEFAULT/2f/54b006-6809-441b-84d7-a24cb572298e/1/u7w9vRpPIkq4StYJwmgHn7Yktb0.mft
                          hash:AAsF2PWNxkTeZQ/qxn0i4yX62+4mhxcHa6lXXFiqd1Y= size:2113 aki:B13832FCA4934496236AC3894998C3DD513D7C09 seqnum:01D1 sia:rsync://rpki.apnic.net/member_repository/A91D4A16/BAE7EFFECC5311ED81F4C515C4F9AE02/sTgy_KSTRJYjasOJSZjD3VE9fAk.mft
                          hash:AAxQt4RXXbQqLedjYi+JKCgiiPFzR9jhBhssdbVG8Ig= size:2072 aki:0AEEAEE0863D1DCA624F61F39B2181C7DB6CBA3F seqnum:1682 sia:rsync://rpki.ripe.net/repository/DEFAULT/6b/b62878-ccc8-4d57-9fe0-7a104b80cd71/1/Cu6u4IY9HcpiT2HzmyGBx9tsuj8.mft
                          hash:AA9bMXbx8zKdwLHXaprPuRCKgQWpBQOVEQiyQN6Xfus= size:2192 aki:578C8D02AEF0B43E29FECEA1895DCC9D10663535 seqnum:9A sia:rsync://rpki.apnic.net/member_repository/A91D4786/34598C70A7C311EFB511E053C4F9AE02/V4yNAq7wtD4p_s6hiV3MnRBmNTU.mft
                          hash:AA/iSfH0yo2LRxfvL9RkIEo0+NAtgdM5BK8pIGwcltA= size:2084 aki:12301D400962DD987A3C7B83A3366287D47F86FD seqnum:019E sia:rsync://rpki-repository.nic.ad.jp/ap/A91A73810000/1164/EjAdQAli3Zh6PHuDozZih9R_hv0.mft
                          hash:AB2L58delmHldffkzMc6QDJ9F31+PEJaau9u7cHxjLY= size:2172 aki:B1F0A7585ED1882783C6AF802B826607ABB92671 seqnum:A4 sia:rsync://repo-rpki.idnic.net/repo/38913893-5f64-4a5e-a8d2-5d51ebde473f/0/B1F0A7585ED1882783C6AF802B826607ABB92671.mft
                          hash:ACDy+jFe4pphixrHj/sLz2f6X9aNOHiEcFseRYKJQPI= size:1998 aki:39E4059E519E7CAD0536BD54D91BC97875644CDB seqnum:1614 sia:rsync://rpki.ripe.net/repository/DEFAULT/d0/ef9221-c354-4e67-a32f-84e596a3c121/1/OeQFnlGefK0FNr1U2RvJeHVkTNs.mft
                          hash:ACLbiX5uyswdLWeu1TBH8p9kVqH49Cy/jShdzyJQ/hA= size:2113 aki:1D492FA3F3B29580495A6880D404EE0C370AD925 seqnum:07BF sia:rsync://rpki.apnic.net/member_repository/A915D963/90E80BC897E211EB9B39D531C4F9AE02/HUkvo_OylYBJWmiA1ATuDDcK2SU.mft
ROA payload state hash:   MDI1RjhBMTc2NkE1RkM0RjA2NUExRUJFNzNBQUI4OEE=
ROA payload entries:
                          192.35.94.0/24-32 AS 7
                          192.67.43.0/24-32 AS 7
                          194.32.69.0/24-32 AS 7
                          194.32.218.0/23-32 AS 7
                          194.34.138.0/24-32 AS 7
                          194.61.92.0/23-32 AS 7
                          2a0b:3b40::/29-128 AS 7
                          91.208.34.0/24 AS 8283
                          94.142.240.0/24 AS 8283
                          94.142.240.0/21 AS 8283
                          94.142.241.0/24 AS 8283
                          94.142.242.0/24 AS 8283
                          94.142.244.0/24 AS 8283
                          94.142.245.0/24 AS 8283
                          94.142.246.0/24 AS 8283
                          94.142.247.0/24 AS 8283
                          185.52.224.0/24 AS 8283
                          185.52.224.0/22 AS 8283
                          185.52.225.0/24 AS 8283
                          185.52.226.0/24 AS 8283
                          185.52.227.0/24 AS 8283
                          203.56.44.0/24 AS 8283
                          2001:678:688::/48 AS 8283
                          2a02:898::/32 AS 8283
                          2001:67c:208c::/48 AS 15562
                          2001:728:1808::/48 AS 15562
                          2a0e:b240::/48 AS 15562
                          2a0e:b240:118::/48 AS 15562
ASPA payload state hash:  MTc4RkVEOTczODY5OThCRTE4MkExNzMxQ0FGRjBDQTE=
ASPA payload entries:
                          customer: 945 providers: 1421, 13213
                          customer: 7719 providers: 945, 1421, 13213, 61138
                          customer: 18607 providers: 20473, 207487
                          customer: 39002 providers: 0
                          customer: 41720 providers: 174, 1299, 9002, 50877, 60068, 203446, 212508
Trust anchor state hash:  RkZCMDlBRDA5QzJCOEU2MEI2NDcyMjIyNUE2NENCNUQ=
Trust anchor keyids:      0B9CCA90DD0D7A8A37666B19217FE0D84037B7A2, E8552B1FD6D1A4F7E404C6D8E5680D1EBC163FC3
Router key state hash:    QkE1RkI0NDlDRUZCNkJBMDBGMzYxMjc5NjJBMkVFQTY=
Router keys:
                          asid:15562 ski:5D4250E2D81D4448D8A29EFCE91D29FF075EC9E2 pubkey:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgFcjQ/g//LAQerAH2Mpp+GucoDAGBbhIqD33wNPsXxnAGb+mtZ7XQrVO9DQ6UlAShtig5+QfEKpTtFgiqfiAFQ==
                          asid:15562 ski:BE889B55D0B737397D75C49F485B858FA98AD11F pubkey:MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4FxJr0n2bux1uX1Evl+QWwZYvIadPjLuFX2mxqKuAGUhKnr7VLLDgrE++l9p5eH2kWTNVAN22FUU3db/RKpE2w==
Validation:               N/A
</sourcecode>
    </section>
    <section removeInRFC="true" anchor="implementation">
      <name>Implementation status</name>
      <t>
        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 RFC 7942.
        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.
      </t>
      <t>
        According to RFC 7942, "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".
      </t>
      <ul>
        <li>
          Example .ccr files were created by Job Snijders.
          A current example CCR (regenerated every few minutes) is available here:
<![CDATA[
https://console.rpki-client.org/rpki.ccr
]]>
        </li>
        <li>
          A CCR serializer and deserializer implementation based on <xref target="rpki-client"/> was provided by Job Snijders.
        </li>
      </ul>
    </section>
  </back>
</rfc>
