<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 4.0.7) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-openpgp-external-secrets-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>OpenPGP External Secret Keys</title>

    <author initials="H." surname="Schäfer" fullname="Heiko Schäfer">
      <organization></organization>
      <address>
        <email>heiko.schaefer@posteo.de</email>
      </address>
    </author>
    <author initials="P." surname="Schaub" fullname="Paul Schaub">
      <organization></organization>
      <address>
        <email>vanitasvitae@fsfe.org</email>
      </address>
    </author>

    <date year="2026" month="October" day="28"/>

    <area>int</area>
    <workgroup>openpgp</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 65?>

<t>This document defines a standard wire format for indicating that the secret component of an OpenPGP asymmetric key is stored externally, for example on a hardware device or other comparable subsystem.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://openpgp-wg.gitlab.io/external-secrets/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-openpgp-external-secrets/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        OpenPGP Working Group mailing list (<eref target="mailto:openpgp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/openpgp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/openpgp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/openpgp-wg/external-secrets/"/>.</t>
    </note>


  </front>

  <middle>


<?line 69?>

<section anchor="introduction"><name>Introduction</name>

<t>Some OpenPGP secret key material is held by a hardware device that permits the user to operate the secret key without divulging it explicitly.
For example, the <xref target="OPENPGP-SMARTCARD"/> specification is intended specifically for this use.
It is also possible for an OpenPGP implementation to use external secret key material via a standard platform library interface like <xref target="TPM"/>.</t>

<t>An OpenPGP Secret Key Packet (see <xref section="5.5.3" sectionFormat="of" target="RFC9580"/>) is typically used as part of a Transferable Secret Key (<xref section="10.2" sectionFormat="of" target="RFC9580"/>) for interoperability between OpenPGP implementations.
An implementation that uses an external secret key needs a standardized way to indicate to another implementation that specific secret key material has been delegated to some external mechanism, like a hardware device.</t>

<t>This document defines a simple mechanism for indicating that a secret key has been delegated to an external mechanism by allocating a codepoint in the "Secret Key Encryption (S2K Usage Octet)" registry (see <xref section="3.7.2.1" sectionFormat="of" target="RFC9580"/>).</t>

<t>It also establishes a registry of hints about how to locate the external device, and defines a minimalist "best effort" method for locating external secret keys that is implementation-specific.</t>

<t>This document makes no attempt to specify how an OpenPGP implementation discovers, enumerates, or operates external secret keys, other than to recommend that the hardware or comparable external subsystem should be identifiable by the secret key's corresponding public key material.</t>

<section anchor="requirements-language"><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 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>The key words "PRIVATE USE" and "SPECIFICATION <bcp14>REQUIRED</bcp14>" that appear in this document when used to describe namespace allocation are to be interpreted as described in <xref target="RFC8126"/>.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>"Secret key" refers to a single cryptographic object, for example the "56 octets of the native secret key" of X448, as described in <xref section="5.5.5.8" sectionFormat="of" target="RFC9580"/>.</t>

<t>"Public key" likewise refers to a single cryptographic object, for example the "56 octets of the native public key" of X448, as above.</t>

<t>"OpenPGP certificate" or just "certificate" refers to an OpenPGP Transferable Public Key (see <xref section="10.1" sectionFormat="of" target="RFC9580"/>).</t>

<t>"External" refers to any cryptographic device or subsystem capable of performing an asymmetric secret key operation using an embedded secret key without divulging the secret to the user.
For discoverability, the external mechanism is also expected to be able to produce or be indexed by the public key corresponding to the embedded secret key.</t>

<t>While this document talks about "external" in the abstract as referring to a cryptographic device embedding a single secret key, most actual hardware devices or other cryptographic subsystems will embed and enable the use of multiple secret keys (see <xref target="multiple-key-hardware"/>).</t>

<t>This document uses the term "authorization" to mean any step, such as providing a PIN, password, proof of biometric identity, button-pushing, etc, that the external subsystem may require for an action.</t>

</section>
</section>
<section anchor="spec"><name>Externally-backed Secret Key Material</name>

<t>An OpenPGP Secret Key packet (<xref section="5.5.3" sectionFormat="of" target="RFC9580"/>) indicates that its secret key material is stored in a cryptographic subsystem that is identifiable by public key parameters by setting the S2K usage octet to TBD (252?), known in shorthand as <spanx style="verb">External</spanx>.</t>

<t>The remainder of the Secret Key packet consists of an optional hint about how the implementation might be able to locate an external subsystem that offers access to the secret key.
This locator hint is entirely advisory.</t>

<t>If the locator hint is absent (that is, if there are no bytes in the Secret Key packet following the <spanx style="verb">External</spanx> S2K usage octet), then the secret key is considered "unavailable" (see <xref target="unavailable"/>).</t>

<section anchor="locator-hint"><name>Locator Hint</name>

<t>If there is a locator hint, then the first octet of the hint describes the structure of the remainder of the hint, according to the "OpenPGP External Secret Key Locator Hints" registry established by this document.</t>

<t>That registry initially only contains the value 0 for "best effort" (see <xref target="best-effort"/>).
The octet values 96-111 (inclusive) are reserved for PRIVATE USE.
Adding a new entry into that registry in any other range uses IANA policy SPECIFICATION <bcp14>REQUIRED</bcp14>.</t>

<t>Regardless of what the locator hint says, a consuming implementation <bcp14>SHOULD</bcp14> use the "best effort" approach to identify an external subsystem that can provide access to the secret key.</t>

<t>A producing implementation that does not know how to provide a meaningful locator hint <bcp14>SHOULD</bcp14> set the locator hint to "best effort".</t>

<t>A consuming implementation that does not understand any particular locator hint <bcp14>SHOULD</bcp14> ignore any trailing data in such a Secret Key packet.</t>

<t>The purpose of the hinting mechanism is to enable optimized access.
For example, if an OpenPGP implementation has access to several dozen hardware tokens, and if querying each attached hardware token is expensive, a locator hint can be used to preferentially access a likely token, without probing each token.</t>

<t>This document does not describe any particular scheme of locator hint beyond "best effort".</t>

<section anchor="length-constraint-of-locator-hint"><name>Length constraint of locator hint</name>

<t>The locator hint data is associated with the S2K usage octet (i.e. it is handled as "S2K parameter fields", as specified in <xref section="5.5.3" sectionFormat="of" target="RFC9580"/>).</t>

<t>Note that the "S2K parameter fields" segment of a v6 secret key packet uses an explicit length field, which limits its length to at most 255 octets</t>

<t>Thus, a locator hint, including the locator hint ID octet, <bcp14>MUST NOT</bcp14> exceed a length of 255 octets, for any key version.</t>

</section>
</section>
<section anchor="unavailable"><name>Secret Key Material is <em>Unavailable</em></name>

<t>If the locator hint is absent, the secret key material is marked as "unavailable".</t>

<t>This signals to an application that the key material can not be accessed, including from any "external" source.</t>

<t>An application that encounters a secret key packet that is marked as external and unavailable should signal to its user that secret key operations with that key are not available (e.g. by greying out operations in GUI interfaces).</t>

<t>Marking secret key material as "external and unavailable" is appropriate in setups where the secret key material of a component key is entirely unavailable in a user's current operating environment.
The key material may be available in a separate special environment (e.g. on an air gapped separate computer),
or entirely unavailable (e.g. when a primary key packet has been generated ephemerally and the secret key material has not been persisted).</t>

</section>
<section anchor="best-effort"><name><em>Best Effort</em> Access to External Secret Keys</name>

<t>When the locator hint is set to "best effort", no additional data may be stored in the locator hint field.
A consuming implementation <bcp14>MUST</bcp14> ignore any additional data in the locator hint field, and perform a "best effort" search.</t>

<t>When the locator hint is set to "best effort", or when a consuming implementation does not understand a given locator hint,
or when a given locator hint fails to point to a useful device,
a consuming implementation <bcp14>SHOULD</bcp14> use a "best effort" strategy to identify an external subsystem that provides access ta a secret key that matches the corresponding public key material.</t>

<t>Each OpenPGP implementation might support different external subsystems.
And, in some installations, the same external subsystem might be identified in different ways
(for example, a USB smartcard might be connected to hub 2 at low speed, and in another, the same USB smartcard might be connected to hub 1 at high speed).</t>

<t>In some cases, no external subsystem can be identified that supports access to secret key material that corresponds to the associated public key.
Or, the external subsystem might be available, but for whatever reason attempting to use it could fail (for example, the hardware might advertise the availability of the key, but deny access when the implementation tries to use it).
In these cases, an OpenPGP implementation that tries to use such an external secret key will fail.
The implementation should fail in a similar way to how it might fail if it tried to use a typical software-backed secret key locked with a password, but the password is unavailable to the implementation.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>External or hardware-backed secret keys promise several distinct security advantages to the user:</t>

<t><list style="symbols">
  <t>Often, the secret key cannot be extracted from the external device, so "kleptography" (the stealing of secret key material) is harder to perform.</t>
  <t>Some hardware can be moved between machines, enabling secret key portability without expanding the kleptographic attack surface.</t>
  <t>Some hardware devices offer auditability controls in the form of rate-limiting, user-visible authorization steps (e.g., button-presses or biometric sensors), or tamper-resistant usage counters.
Malicious use of a secret key on such a device should be harder, or at least more evident.</t>
  <t>Some hardware security devices can attest that key material has been generated on-card, thereby signaling that - barring a successful attack on the hardware - no other copy of the private key material exists.
Such mechanisms signal that the key holder did not have a chance to mishandle (e.g.: accidentally disclose) the private key material.</t>
</list></t>

<t>However, none of these purported advantages are without caveats.</t>

<t>The hardware itself might actually not resist secret key exfiltration as expected.
For example, isolated hardware devices are sometimes easier to attack physically, via temperature or voltage fluctuations (see <xref target="VOLTAGE-GLITCHING"/> and <xref target="SMART-CARD-FAULTS"/>).</t>

<t>In some cases, dedicated cryptographic hardware that generates a secret key internally may have significant flaws (see <xref target="ROCA"/>).</t>

<t>Furthermore, the most sensitive material in the case of decryption is often the cleartext itself, not the secret key material.
If the host computer itself is potentially compromised, then kleptographic exfiltration of the secret key material itself is only a small risk.
For example, when handling an OpenPGP Encrypted Message, the OpenPGP symmetric session key itself could be exfiltrated, permitting access to the cleartext to anyone without access to the secret key material.</t>

<t>Portability brings with it other risks, including the possibility of abuse by the host software on any of the devices to which the hardware is connected.</t>

<t>Rate-limiting, user-visible authorization steps, and any other form of auditability also suffer from risks related to compromised host operating systems.
Few hardware devices are capable of revealing to the user what operations specifically were performed by the device, so even if the user deliberately uses the device to, say, sign an object, the user depends on the host software to feed the correct object to the device's signing capability.</t>

</section>
<section anchor="usability-considerations"><name>Usability Considerations</name>

<t>External secret keys present specific usability challenges for integration with OpenPGP.</t>

<section anchor="some-hardware-might-be-unavailable-to-some-implementations"><name>Some Hardware Might Be Unavailable To Some Implementations</name>

<t>This specification gives no guidance for how to find the hardware device, and presumes that an implementation will be able to probe available hardware to associate it with the corresponding public key material.
In particular, there is no attempt to identify specific hardware or "slots" using identifiers like PKCS #11 URIs (<xref target="RFC7512"/>) or smartcard serial numbers (see <xref target="historical-notes"/>).
This minimalism is deliberate, as it's possible for the same key material to be available on multiple hardware devices, or for a device to be located with a particular hardware identifier on one platform, while on another platform it uses a different hardware identifier.</t>

<t>Not every OpenPGP implementation will be able to talk to every possible hardware device.
If an OpenPGP implementation encounters a hardware-backed secret key as indicated with this mechanism, but cannot identify any attached hardware that lists the corresponding secret key material, it should warn the user that the specific key claims to be hardware-backed but the corresponding hardware cannot be found.
It may also want to inform the user what categories of hardware devices it is capable of probing, for debugging purposes.</t>

</section>
<section anchor="multiple-key-hardware"><name>Hardware Should Support Multiple Secret Keys</name>

<t>Most reasonable OpenPGP configurations require the use of multiple secret keys by a single operator.
For example, the user may use one secret key for signing, and another secret key for decryption, and the corresponding public keys of both are contained in the same OpenPGP certificate.</t>

<t>Reasonable hardware <bcp14>SHOULD</bcp14> support embedding and identifying more than one secret key, so that a typical OpenPGP user can rely on a single device for hardware backing.</t>

</section>
<section anchor="authorization-challenges"><name>Authorization Challenges</name>

<t>Cryptographic hardware can be difficult to use if frequent authorization is required, particularly in circumstances like reading messages in a busy e-mail inbox.
This hardware <bcp14>MAY</bcp14> require authorization for each use of the secret key material as a security measure, but considerations should be made for caching authorization.</t>

<t>If the cryptographic hardware requires authorization for listing the corresponding public key material, or for probing whether a given public key matches the device's secret keys, it becomes even more difficult to use the device in regular operation.
Hardware <bcp14>SHOULD NOT</bcp14> require authorization for the action of producing the list of corresponding public keys or for probing whether a public key matches the device's secret keys.</t>

<t>If a user has two attached pieces of hardware that both hold the same secret key, and one requires authorization while the other does not, it is reasonable for an implementation to try the one that doesn't require authorization first.
Some cryptographic hardware is designed to lock the device on repeated authorization failures (e.g. 3 bad PIN entries locks the device), so this approach reduces the risk of accidental lockout.</t>

</section>
<section anchor="latency-and-error-handling"><name>Latency and Error Handling</name>

<t>While hardware-backed secret key operations can be significantly slower than modern computers, and physical affordances like button-presses or NFC tapping can themselves incur delay, an implementation using a hardware-backed secret key should remain responsive to the user.
It should indicate when some interaction with the hardware may be required, and it should use a sensible timeout if the hardware device appears to be unresponsive.</t>

<t>A reasonable implementation should surface actionable errors or warnings from the hardware to the user where possible.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document asks IANA to make three changes in the "OpenPGP" protocol group.</t>

<t>Add the following row in the "OpenPGP Secret Key Encryption (S2K Usage Octet)" registry:</t>

<texttable title="Row to add to OpenPGP Secret Key Encryption (S2K Usage Octet) registry">
      <ttcol align='left'>S2K usage octet</ttcol>
      <ttcol align='left'>Shorthand</ttcol>
      <ttcol align='left'>Encryption parameter fields</ttcol>
      <ttcol align='left'>Encryption</ttcol>
      <ttcol align='left'>Generate?</ttcol>
      <c>TBD (252?)</c>
      <c>External</c>
      <c>External Locator Hint, see <xref target="spec"/> of RFC XXX (this document)</c>
      <c>no data</c>
      <c>Yes</c>
</texttable>

<t>Modify this row of the "OpenPGP Symmetric Key Algorithms" registry:</t>

<texttable title="Row to modify in OpenPGP Symmetric Key Algorithms registry">
      <ttcol align='right'>ID</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <c>253, 254, and 255</c>
      <c>Reserved to avoid collision with Secret Key Encryption</c>
</texttable>

<t>to include TBD (252?) in this reserved codepoint sequence, resulting in the following entry:</t>

<texttable title="Modified row in OpenPGP Symmetric Key Algorithms registry">
      <ttcol align='right'>ID</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <c>TBD (252?), 253, 254, and 255</c>
      <c>Reserved to avoid collision with Secret Key Encryption</c>
</texttable>

<t>Establish a new registry, "OpenPGP External Secret Key Locator Hints", with the following columns and initial range:</t>

<texttable title="OpenPGP External Secret Key Locator Hints">
      <ttcol align='right'>ID</ttcol>
      <ttcol align='left'>Shorthand</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>0</c>
      <c>Best Effort</c>
      <c>&#160;</c>
      <c>RFC XXX (this document)</c>
      <c>1-95</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>RFC XXX (this document)</c>
      <c>96-111</c>
      <c>Private or Experimental Use</c>
      <c>&#160;</c>
      <c>RFC XXX (this document)</c>
      <c>112-255</c>
      <c>Unassigned</c>
      <c>&#160;</c>
      <c>RFC XXX (this document)</c>
</texttable>

<t>Assigning a new codepoint to this registry uses SPECIFICATION <bcp14>REQUIRED</bcp14>.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC9580">
  <front>
    <title>OpenPGP</title>
    <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
    <author fullname="D. Huigens" initials="D." surname="Huigens"/>
    <author fullname="J. Winter" initials="J." surname="Winter"/>
    <author fullname="Y. Niibe" initials="Y." surname="Niibe"/>
    <date month="July" year="2024"/>
    <abstract>
      <t>This document specifies the message formats used in OpenPGP. OpenPGP provides encryption with public key or symmetric cryptographic algorithms, digital signatures, compression, and key management.</t>
      <t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format. It is not a step-by-step cookbook for writing an application. It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network. It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t>
      <t>This document obsoletes RFCs 4880 ("OpenPGP Message Format"), 5581 ("The Camellia Cipher in OpenPGP"), and 6637 ("Elliptic Curve Cryptography (ECC) in OpenPGP").</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9580"/>
  <seriesInfo name="DOI" value="10.17487/RFC9580"/>
</reference>
<reference anchor="RFC2119">
  <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="RFC8174">
  <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="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="OPENPGP-SMARTCARD" target="https://gnupg.org/ftp/specs/OpenPGP-smart-card-application-3.4.1.pdf">
  <front>
    <title>Functional Specification of the OpenPGP application on ISO Smart Card Operating Systems, Version 3.4.1</title>
    <author initials="A." surname="Pietig" fullname="Achim Pietig">
      <organization></organization>
    </author>
    <date year="2020" month="March" day="18"/>
  </front>
</reference>
<reference anchor="GNUPG-SECRET-STUB" target="https://dev.gnupg.org/source/gnupg/browse/master/doc/DETAILS;gnupg-2.4.3$1511">
  <front>
    <title>GNU Extensions to the S2K algorithm</title>
    <author initials="W." surname="Koch" fullname="Werner Koch">
      <organization>g10 Code</organization>
    </author>
    <date year="2023" month="July" day="04"/>
  </front>
</reference>
<reference anchor="TPM" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
  <front>
    <title>Trusted Platform Module Library Specification, Family “2.0”, Level 00, Revision 01.59</title>
    <author >
      <organization>Trusted Computing Group</organization>
    </author>
    <date year="2019" month="November"/>
  </front>
</reference>
<reference anchor="SMART-CARD-FAULTS" target="http://hdl.handle.net/2117/99293">
  <front>
    <title>Smart Card Fault Injections with High Temperatures</title>
    <author initials="P. M. C." surname="Massolino" fullname="Pedro Maat C. Massolino">
      <organization></organization>
    </author>
    <author initials="B." surname="Ege" fullname="Baris Ege">
      <organization></organization>
    </author>
    <author initials="L." surname="Batina" fullname="Lejla Batina">
      <organization></organization>
    </author>
    <date year="2016" month="November" day="15"/>
  </front>
</reference>


<reference anchor="VOLTAGE-GLITCHING">
  <front>
    <title>The Forgotten Threat of Voltage Glitching: A Case Study on Nvidia Tegra X2 SoCs</title>
    <author fullname="Otto Bittner" initials="O." surname="Bittner">
      <organization/>
    </author>
    <author fullname="Thilo Krachenfels" initials="T." surname="Krachenfels">
      <organization/>
    </author>
    <author fullname="Andreas Galauner" initials="A." surname="Galauner">
      <organization/>
    </author>
    <author fullname="Jean-Pierre Seifert" initials="J." surname="Seifert">
      <organization/>
    </author>
    <date year="2021"/>
  </front>
  <seriesInfo name="DOI" value="10.48550/ARXIV.2108.06131"/>
<refcontent>arXiv</refcontent></reference>
<reference anchor="ROCA">
  <front>
    <title>The Return of Coppersmith's Attack: Practical Factorization of Widely Used RSA Moduli</title>
    <author fullname="Matus Nemec" initials="M." surname="Nemec">
      <organization>Masaryk University, Ca' Foscari University of Venice, Brno, Czech Rep</organization>
    </author>
    <author fullname="Marek Sys" initials="M." surname="Sys">
      <organization>Masaryk University, Brno, Czech Rep</organization>
    </author>
    <author fullname="Petr Svenda" initials="P." surname="Svenda">
      <organization>Masaryk University, Brno, Czech Rep</organization>
    </author>
    <author fullname="Dusan Klinec" initials="D." surname="Klinec">
      <organization>EnigmaBridge, Masaryk University, Brno, Czech Rep</organization>
    </author>
    <author fullname="Vashek Matyas" initials="V." surname="Matyas">
      <organization>Masaryk University, Brno, Czech Rep</organization>
    </author>
    <date month="October" year="2017"/>
  </front>
  <seriesInfo name="Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security" value="pp. 1631-1648"/>
  <seriesInfo name="DOI" value="10.1145/3133956.3133969"/>
<refcontent>ACM</refcontent></reference>
<reference anchor="RFC7512">
  <front>
    <title>The PKCS #11 URI Scheme</title>
    <author fullname="J. Pechanec" initials="J." surname="Pechanec"/>
    <author fullname="D. Moffat" initials="D." surname="Moffat"/>
    <date month="April" year="2015"/>
    <abstract>
      <t>This memo specifies a PKCS #11 Uniform Resource Identifier (URI) Scheme for identifying PKCS #11 objects stored in PKCS #11 tokens and also for identifying PKCS #11 tokens, slots, or libraries. The URI scheme is based on how PKCS #11 objects, tokens, slots, and libraries are identified in "PKCS #11 v2.20: Cryptographic Token Interface Standard".</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7512"/>
  <seriesInfo name="DOI" value="10.17487/RFC7512"/>
</reference>



    </references>

</references>


<?line 297?>

<section anchor="historical-notes"><name>Historical notes</name>

<t>Some OpenPGP implementations make use of private codepoint ranges in the OpenPGP specification within an OpenPGP Transferable Secret Key to indicate that the secret key can be found on a smartcard.</t>

<t>For example, GnuPG uses the private/experimental codepoint 101 in the S2K Specifier registry, along with an embedded trailer with an additional codepoint, plus the serial number of the smartcard (see <xref target="GNUPG-SECRET-STUB"/>).</t>

<t>However, recent versions of that implementation ignore the embedded serial number in favor of scanning available devices for a match of the key material, since some people have multiple cards with the same secret key.</t>

</section>
<section anchor="test-vectors"><name>Test vectors</name>

<section anchor="example-transferable-secret-keys"><name>Example Transferable Secret Keys</name>

<t>Example OpenPGP v6 Transferable Secret Key. It includes (unencrypted) private key material for both its primary key and one subkey:</t>

<figure><sourcecode type="application/pgp-keys" name="v6-software-backed.key"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

xUsGY4d/4xsAAAAg+U2nu0jWCmHlZ3BqZYfQMxmZu52JGggkLq2EVD34laMAGXKB
exK+cH6NX1hs5hNhIB00TrJmosgv3mg1ditlsLfCsQYfGwoAAABCBYJjh3/jAwsJ
BwUVCg4IDAIWAAKbAwIeCSIhBssYbE8GCaaX5NUt+mxyKwwfHifBilZwj2Ul7Ce6
2azJBScJAgcCAAAAAK0oIBA+LX0ifsDm185Ecds2v8lwgyU2kCcUmKfvBXbAf6rh
RYWzuQOwEn7E/aLwIwRaLsdry0+VcallHhSu4RN6HWaEQsiPlR4zxP/TP7mhfVEe
7XWPxtnMUMtf15OyA51YBMdLBmOHf+MZAAAAIIaTJINn+eUBXbki+PSAld2nhJh/
LVmFsS+60WyvXkQ1AE1gCk95TUR3XFeibg/u/tVY6a//1q0NWC1X+yui3O24wpsG
GBsKAAAALAWCY4d/4wKbDCIhBssYbE8GCaaX5NUt+mxyKwwfHifBilZwj2Ul7Ce6
2azJAAAAAAQBIKbpGG2dWTX8j+VjFM21J0hqWlEg+bdiojWnKfA5AQpWUWtnNwDE
M0g12vYxoWM8Y81W+bHBw805I8kWVkXU6vFOi+HWvv/ira7ofJu16NnoUkhclkUr
k0mXubZvyl4GBg==
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

<t>Example OpenPGP v4 Transferable Secret Key. It includes (unencrypted) private key material for both its primary key and one subkey:</t>

<figure><sourcecode type="application/pgp-keys" name="v4-software-backed.key"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

xVgEZgWtcxYJKwYBBAHaRw8BAQdAlLK6UPQsVHR2ETk1SwVIG3tBmpiEtikYYlCy
1TIiqzYAAQCwm/O5cWsztxbUcwOHycBwszHpD4Oa+fK8XJDxLWH7dRIZzR08aGFy
ZHdhcmUtc2VjcmV0QGV4YW1wbGUub3JnPsKNBBAWCAA1AhkBBQJmBa1zAhsDCAsJ
CAcKDQwLBRUKCQgLAhYCFiEEXlP8Tur0WZR+f0I33/i9Uh4OHEkACgkQ3/i9Uh4O
HEnryAD8CzH2ajJvASp46ApfI4pLPY57rjBX++d/2FQPRyqGHJUA/RLsNNgxiFYm
K5cjtQe2/DgzWQ7R6PxPC6oa3XM7xPcCx10EZgWtcxIKKwYBBAGXVQEFAQEHQE1Y
XOKeaklwG01Yab4xopP9wbu1E+pCrP1xQpiFZW5KAwEIBwAA/12uOubAQ5nhf1UF
a51SQwFLpggB/Spn29qDnSQXOTzIDvPCeAQYFggAIAUCZgWtcwIbDBYhBF5T/E7q
9FmUfn9CN9/4vVIeDhxJAAoJEN/4vVIeDhxJVTgA/1WaFrKdP3AgL0Ffdooc5XXb
jQsj0uHo6FZSHRI4pchMAQCyJnKQ3RvW/0gm41JCqImyg2fxWG4hY0N5Q7Rc6Pyz
DQ==
=lYbx
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

</section>
<section anchor="as-an-external-secret-key-with-best-effort-locator-hint"><name>As an External Secret Key, with "best effort" locator hint</name>

<t>The OpenPGP v6 Transferable Secret Key with the S2K Usage Octet set to 252? (External) for both the Primary Key Packet and the Subkey Packet.</t>

<t>The locator hint <spanx style="verb">0x00</spanx> ("best effort") is included in the secret key packets, following the S2K Usage Octet and a length octet.</t>

<figure><sourcecode type="application/pgp-keys" name="v6-external-secret.key"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

xS0GY4d/4xsAAAAg+U2nu0jWCmHlZ3BqZYfQMxmZu52JGggkLq2EVD34laP8AQDC
sQYfGwoAAABCBYJjh3/jAwsJBwUVCg4IDAIWAAKbAwIeCSIhBssYbE8GCaaX5NUt
+mxyKwwfHifBilZwj2Ul7Ce62azJBScJAgcCAAAAAK0oIBA+LX0ifsDm185Ecds2
v8lwgyU2kCcUmKfvBXbAf6rhRYWzuQOwEn7E/aLwIwRaLsdry0+VcallHhSu4RN6
HWaEQsiPlR4zxP/TP7mhfVEe7XWPxtnMUMtf15OyA51YBMctBmOHf+MZAAAAIIaT
JINn+eUBXbki+PSAld2nhJh/LVmFsS+60WyvXkQ1/AEAwpsGGBsKAAAALAWCY4d/
4wKbDCIhBssYbE8GCaaX5NUt+mxyKwwfHifBilZwj2Ul7Ce62azJAAAAAAQBIKbp
GG2dWTX8j+VjFM21J0hqWlEg+bdiojWnKfA5AQpWUWtnNwDEM0g12vYxoWM8Y81W
+bHBw805I8kWVkXU6vFOi+HWvv/ira7ofJu16NnoUkhclkUrk0mXubZvyl4GBg==
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

<t>The (primary) Secret-Key Packet of this key looks as follows, note the trailing cumulative length octet of the conditionally included S2K parameter fields as described in <xref section="5.5.3" sectionFormat="of" target="RFC9580"/>:</t>

<figure><artwork><![CDATA[
0000  c5                        packet type: Secret-Key Packet
0001     2d                     packet length
0002        06                  version
0003           63 87 7f e3      creation time
0007                       1b   public-key algorithm: Ed25519
0008  00 00 00 20               Ed25519 public-key length
000c              f9 4d a7 bb   Ed25519 public-key
0010  48 d6 0a 61 e5 67 70 6a
0018  65 87 d0 33 19 99 bb 9d
0020  89 1a 08 24 2e ad 84 54
0028  3d f8 95 a3
002c              fc            S2K usage octet
002d                 01         conditional S2K parameters length
002e                    00      locator hint id
]]></artwork></figure>

<t>The same OpenPGP v4 Transferable Secret Key with the S2K Usage Octet set to 252? (External) for both the Primary Key Packet and the Subkey Packet.</t>

<t>The locator hint <spanx style="verb">0x00</spanx> ("best effort") is included in the secret key packets, following the S2K Usage Octet.</t>

<figure><sourcecode type="application/pgp-keys" name="v4-external-secret.key"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

xTUEZgWtcxYJKwYBBAHaRw8BAQdAlLK6UPQsVHR2ETk1SwVIG3tBmpiEtikYYlCy
1TIiqzb8AM0dPGhhcmR3YXJlLXNlY3JldEBleGFtcGxlLm9yZz7CjQQQFggANQIZ
AQUCZgWtcwIbAwgLCQgHCg0MCwUVCgkICwIWAhYhBF5T/E7q9FmUfn9CN9/4vVIe
DhxJAAoJEN/4vVIeDhxJ68gA/Asx9moybwEqeOgKXyOKSz2Oe64wV/vnf9hUD0cq
hhyVAP0S7DTYMYhWJiuXI7UHtvw4M1kO0ej8TwuqGt1zO8T3Asc6BGYFrXMSCisG
AQQBl1UBBQEBB0BNWFzinmpJcBtNWGm+MaKT/cG7tRPqQqz9cUKYhWVuSgMBCAf8
AMJ4BBgWCAAgBQJmBa1zAhsMFiEEXlP8Tur0WZR+f0I33/i9Uh4OHEkACgkQ3/i9
Uh4OHElVOAD/VZoWsp0/cCAvQV92ihzldduNCyPS4ejoVlIdEjilyEwBALImcpDd
G9b/SCbjUkKoibKDZ/FYbiFjQ3lDtFzo/LMN
=Qy7n
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

<t>The (primary) Secret-Key Packet of this key looks as follows, in this format:</t>

<figure><artwork><![CDATA[
0000  c5                        packet type: Secret-Key Packet
0001     35                     packet length
0002        04                  version
0003           66 05 ad 73      creation time
0007                       16   public-key algorithm: EdDSALegacy
0008  09                        curve OID length
0009     2b 06 01 04 01 da 47   curve OID
0010  0f 01
0012        01 07               EdDSA public key Q MPI length
0014              40 94 b2 ba   EdDSA public key Q MPI
0018  50 f4 2c 54 74 76 11 39
0020  35 4b 05 48 1b 7b 41 9a
0028  98 84 b6 29 18 62 50 b2
0030  d5 32 22 ab 36
0035                 fc         S2K usage octet
0036                    00      locator hint id
]]></artwork></figure>

</section>
<section anchor="as-an-external-secret-key-with-unavailable-primary-secret-key-data"><name>As an External Secret Key, with "unavailable" primary secret key data</name>

<t>The OpenPGP v6 Transferable Secret Key with the S2K Usage Octet set to 252? (External) for both the Primary Key Packet and the Subkey Packet.</t>

<t>No locator hint data is included in the primary secret key packet, marking that packet's secret key material as "unavailable".</t>

<figure><sourcecode type="application/pgp-keys" name="v6-external-secret.key"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

xSwGY4d/4xsAAAAg+U2nu0jWCmHlZ3BqZYfQMxmZu52JGggkLq2EVD34laP8AMKx
Bh8bCgAAAEIFgmOHf+MDCwkHBRUKDggMAhYAApsDAh4JIiEGyxhsTwYJppfk1S36
bHIrDB8eJ8GKVnCPZSXsJ7rZrMkFJwkCBwIAAAAArSggED4tfSJ+wObXzkRx2za/
yXCDJTaQJxSYp+8FdsB/quFFhbO5A7ASfsT9ovAjBFoux2vLT5VxqWUeFK7hE3od
ZoRCyI+VHjPE/9M/uaF9UR7tdY/G2cxQy1/Xk7IDnVgExy0GY4d/4xkAAAAghpMk
g2f55QFduSL49ICV3aeEmH8tWYWxL7rRbK9eRDX8AQDCmwYYGwoAAAAsBYJjh3/j
ApsMIiEGyxhsTwYJppfk1S36bHIrDB8eJ8GKVnCPZSXsJ7rZrMkAAAAABAEgpukY
bZ1ZNfyP5WMUzbUnSGpaUSD5t2KiNacp8DkBClZRa2c3AMQzSDXa9jGhYzxjzVb5
scHDzTkjyRZWRdTq8U6L4da+/+Ktruh8m7Xo2ehSSFyWRSuTSZe5tm/KXgYG
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

<t>The (primary) Secret-Key Packet of this key looks as follows, in this format:</t>

<figure><artwork><![CDATA[
0000  c5                        packet type: Secret-Key Packet
0001     2e                     packet length
0002        06                  version
0003           63 87 7f e3      creation time
0007                       1b   public-key algorithm: Ed25519
0008  00 00 00 20               Ed25519 public-key length
000c              f9 4d a7 bb   Ed25519 public-key
0010  48 d6 0a 61 e5 67 70 6a
0018  65 87 d0 33 19 99 bb 9d
0020  89 1a 08 24 2e ad 84 54
0028  3d f8 95 a3
002c              fc            S2K usage octet
002d                 00         conditional S2K parameters length
]]></artwork></figure>

</section>
<section anchor="as-an-external-secret-key-with-experimental-locator-hint"><name>As an External Secret Key, with experimental locator hint</name>

<t>The OpenPGP v6 Transferable Secret Key with the S2K Usage Octet set to 252? (External) for both the Primary Key Packet and the Subkey Packet.</t>

<t>The locator hint <spanx style="verb">0x60</spanx> (the first value in the experimental range) is included in the secret key packets, following the S2K Usage Octet and a length octet.</t>

<t>No locator hint data is included in the primary secret key packet, marking that packet's secret key material as "unavailable".</t>

<figure><sourcecode type="application/pgp-keys" name="v6-external-secret.key"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

xTUGY4d/4xsAAAAg+U2nu0jWCmHlZ3BqZYfQMxmZu52JGggkLq2EVD34laP8CWAx
QVkmU1iXk8KxBh8bCgAAAEIFgmOHf+MDCwkHBRUKDggMAhYAApsDAh4JIiEGyxhs
TwYJppfk1S36bHIrDB8eJ8GKVnCPZSXsJ7rZrMkFJwkCBwIAAAAArSggED4tfSJ+
wObXzkRx2za/yXCDJTaQJxSYp+8FdsB/quFFhbO5A7ASfsT9ovAjBFoux2vLT5Vx
qWUeFK7hE3odZoRCyI+VHjPE/9M/uaF9UR7tdY/G2cxQy1/Xk7IDnVgExy0GY4d/
4xkAAAAghpMkg2f55QFduSL49ICV3aeEmH8tWYWxL7rRbK9eRDX8AQDCmwYYGwoA
AAAsBYJjh3/jApsMIiEGyxhsTwYJppfk1S36bHIrDB8eJ8GKVnCPZSXsJ7rZrMkA
AAAABAEgpukYbZ1ZNfyP5WMUzbUnSGpaUSD5t2KiNacp8DkBClZRa2c3AMQzSDXa
9jGhYzxjzVb5scHDzTkjyRZWRdTq8U6L4da+/+Ktruh8m7Xo2ehSSFyWRSuTSZe5
tm/KXgYG
=bL1D
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

<t>The (primary) Secret-Key Packet of this key looks as follows, in this format:</t>

<figure><artwork><![CDATA[
0000  c5                        packet type: Secret-Key Packet
0001     35                     packet length
0002        06                  version
0003           63 87 7f e3      creation time
0007                       1b   public-key algorithm: Ed25519
0008  00 00 00 20               Ed25519 public-key length
000c              f9 4d a7 bb   Ed25519 public-key
0010  48 d6 0a 61 e5 67 70 6a
0018  65 87 d0 33 19 99 bb 9d
0020  89 1a 08 24 2e ad 84 54
0028  3d f8 95 a3
002c              fc            S2K usage octet
002d                 09         conditional S2K parameters length
002e                    60      locator hint id
002f                       31   locator hint data
0030  41 59 26 53 58 97 93      
]]></artwork></figure>

</section>
</section>
<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>This document is based on significant work by many people, including implementations and guidance:</t>

<t><list style="symbols">
  <t>Daniel Kahn Gillmor</t>
  <t>NIIBE Yutaka</t>
  <t>Achim Pietig</t>
  <t>Werner Koch</t>
  <t>Andrew Gallagher</t>
</list></t>

<t>The people acknowledged in this section are not responsible for any proposals, errors, or omissions in this document.</t>

</section>
<section numbered="false" anchor="document-history"><name>Document History</name>

<section numbered="false" anchor="substantive-changes-from-draft-ietf-openpgp-external-secrets-00-to-draft-ietf-openpgp-external-secrets-01"><name>Substantive Changes from draft-ietf-openpgp-external-secrets-00 to draft-ietf-openpgp-external-secrets-01</name>

<t><list style="symbols">
  <t>Add concept of "unavailable" external secrets, it is now the default when no locator hint is set</t>
  <t>Add explicit "best effort" locator hint</t>
  <t>Update test vectors to reflect the above changes; add test vector with an "experimental" locator hint</t>
</list></t>

</section>
<section numbered="false" anchor="substantive-changes-from-draft-dkg-openpgp-external-secrets-03-to-draft-ietf-openpgp-external-secrets-00"><name>Substantive Changes from draft-dkg-openpgp-external-secrets-03 to draft-ietf-openpgp-external-secrets-00</name>

<t><list style="symbols">
  <t>Remove Daniel Kahn Gillmor, add Paul Schaub as co-author</t>
  <t>Describe length constraint of locator hint</t>
</list></t>

</section>
<section numbered="false" anchor="substantive-changes-from-draft-dkg-openpgp-external-secrets-02-to-draft-dkg-openpgp-external-secrets-03"><name>Substantive Changes from draft-dkg-openpgp-external-secrets-02 to draft-dkg-openpgp-external-secrets-03</name>

<t><list style="symbols">
  <t>Add Heiko Schäfer as co-author</t>
  <t>Add v6 test vectors</t>
</list></t>

</section>
<section numbered="false" anchor="substantive-changes-from-draft-dkg-openpgp-external-secrets-01-to-draft-dkg-openpgp-external-secrets-02"><name>Substantive Changes from draft-dkg-openpgp-external-secrets-01 to draft-dkg-openpgp-external-secrets-02</name>

<t><list style="symbols">
  <t>A device can support indexing (probing for public key material) instead of enumerating available public keys</t>
  <t>Encourage "best effort" even if an understood locator hint fails to identify a device</t>
  <t>Private use range is now "Private or Experimental", and aligned with a power of 2</t>
</list></t>

</section>
<section numbered="false" anchor="substantive-changes-from-draft-dkg-openpgp-external-secrets-00-to-draft-dkg-openpgp-external-secrets-01"><name>Substantive Changes from draft-dkg-openpgp-external-secrets-00 to draft-dkg-openpgp-external-secrets-01</name>

<t><list style="symbols">
  <t>define the external locator hinting mechanism</t>
</list></t>

</section>
<section numbered="false" anchor="substantive-changes-from-draft-dkg-openpgp-hardware-secrets-02-to-draft-dkg-openpgp-external-secrets-00"><name>Substantive Changes from draft-dkg-openpgp-hardware-secrets-02 to draft-dkg-openpgp-external-secrets-00</name>

<t><list style="symbols">
  <t>rename from "Hardware-backed" to "External"</t>
  <t>use RFC9580 instead of I-D.ietf-openpgp-crypto-refresh</t>
</list></t>

</section>
<section numbered="false" anchor="substantive-changes-from-draft-dkg-openpgp-hardware-secrets-01-to-draft-dkg-openpgp-hardware-secrets-02"><name>Substantive Changes from draft-dkg-openpgp-hardware-secrets-01 to draft-dkg-openpgp-hardware-secrets-02</name>

<t><list style="symbols">
  <t>re-format hexdump of test vector secret key packet</t>
</list></t>

</section>
<section numbered="false" anchor="substantive-changes-from-draft-dkg-openpgp-hardware-secrets-00-to-draft-dkg-openpgp-hardware-secrets-01"><name>Substantive Changes from draft-dkg-openpgp-hardware-secrets-00 to draft-dkg-openpgp-hardware-secrets-01</name>

<t><list style="symbols">
  <t>Added test vector for experimentation</t>
  <t>Mention on-device attestation</t>
  <t>update OpenPGP card spec reference to 3.4.1</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
JgOrzdh80Wv2Oxg/N+5m4am73d1sNssre9m2nZfNa3XmnHfImVLFb9ftiX6t
mXoH1qDdVOigrZ3ePlfsJeu6arPR0w1WXTedjbmbVVcdfebeLNft54W2PAss
5WH+9BaN7zc977xXxrebweYB3zIj2FVOH6FEdGVNovrD3dnVE+6NmT1yHupv
21F5Ojp3reVjjyjnz0+jbegNZ8NwqTbud1pDnbeHxm3bvb9ang5fYFKDAZ5e
D+68UzJrPy9W9uloojlG1bOurbJy++hessnpWeVpt35ejVWtp5qdVasxnT3U
ni+JvTDLUTl8nJ/hcln9XLl76qjPp7vIrt1X6xuf9ZV+m93AV261pw5n5+Zm
0e18JxE58bRxe3Cz8Pv9qvE0fW6+nj6+Xg6r6nXF+vzk9MzThWHT1yfvZqk1
tLH/NHsKvbtNt6cMK6ZaXc+39GnYnDfVp9PFVXvTrDQGzdXT4+p5dra+vLdP
r57W67Id4HO6vI7UszuPzlaW7qxmgbKquM/R4mW9c+r9tvnTT0KCe3fdr8nv
r7/+ekBr6/9ZtLb+e2nto9l7MZ9CfTu/vtnM223tCj9smm1tbGjO7c3ZbDRm
j1cP1d50pU42j4N+LWy7vt0L7dV87nR2ijod2J/f5po27mzc8n1Df2Jv4XYx
0zf3Vzu9vWFvV363fo9PlzfN5+vu9vbp6tx4GLy8PVSauH+5U16uDEt3Z6Fe
fXzV3cfKuP9Ynz+pm0V/Fi1q196I3dy129pTR9NUzVq12+Nrt43VN81i3Y7G
rpWOpt90x5vb9sPspjM2bzVr3rm0e71nZ9ScRkHl6eXhdFkZ1GpluzWz6vdX
vZXWMVfj+O/KVc8Ldlq32Xm7quLX67U28etnmr8c1P3b0bxxHry2n09PjXL1
cjx62H3uX13PtPLDLbu7M7f25dxVbhr6azgm1XLXfHsanz+cjbajzhnFtefh
+Xakd7ZqRRJ5cCOI3H9+HPcutXHvatxT58rz/Q3BK2fTr6hzvKhvqT9qbRaR
2jv1O8FI3Y59+/LlqXGjbXqD9kbTymo1uo8W2rjhWUt1dqnghjoZby5vfdNs
lye+V2197nqT8fP99G3QXY86RBvPL01TG2izDp/JZrDotudW+7IxLffOPyut
S3e29Fqdu1a5vn4ckK61vdY0et27S//+ODW1svqEL4MbY1TTzNvK5dKgVG88
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

-->

</rfc>

