<?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.14 (Ruby 3.3.8) -->


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

]>


<rfc ipr="trust200902" docName="draft-gallagher-openpgp-grease-01" category="std" consensus="true" submissionType="IETF" updates="9580" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="pgp-grease">GREASE Code Points in OpenPGP</title>

    <author fullname="Andrew Gallagher" role="editor">
      <organization>PGPKeys.EU</organization>
      <address>
        <email>andrewg@andrewg.com</email>
      </address>
    </author>

    <date year="2025" month="August" day="08"/>

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

    <abstract>


<?line 35?>

<t>This document reserves code points in various OpenPGP registries for use in interoperability testing, by analogy with GREASE in TLS.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://andrewgdotcom.gitlab.io/openpgp-grease"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-gallagher-openpgp-grease/"/>.
      </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/andrewgdotcom/openpgp-grease"/>.</t>
    </note>


  </front>

  <middle>


<?line 39?>

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

<t>GREASE <xref target="RFC8701"></xref> is an existing specification to ensure forwards compatibility of assigned code points in TLS.
We wish to specify a similar mechanism for OpenPGP.
This will be particularly useful in the OpenPGP Interoperability Test Suite <xref target="INTEROP"></xref>, but is not restricted to controlled environments.
It is expected that implementations will include PGP-GREASE code points in real-world artifacts on an ongoing basis, to encourage forwards-compatible coding across multiple implementations.</t>

</section>
<section anchor="conventions-definitions"><name>Conventions and Definitions</name>

<t>The term "OpenPGP Certificate" is used in this document interchangeably with "OpenPGP Transferable Public Key", as defined in <xref section="10.1" sectionFormat="of" target="RFC9580"/>.</t>

<t>For avoidance of confusion with GREASE in TLS, we will use the term "PGP-GREASE" for the equivalent mechanism in OpenPGP.</t>

<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?>

</section>
<section anchor="code-points"><name>Reservation of PGP-GREASE Code Points</name>

<t>We assign the following one-octet code points to PGP-GREASE:</t>

<texttable title="OpenPGP GREASE Code Points" anchor="grease-code-points">
      <ttcol align='left'>Sequence</ttcol>
      <ttcol align='left'>Code Point (Decimal)</ttcol>
      <ttcol align='left'>Code Point (Hexadecimal)</ttcol>
      <c>1</c>
      <c>51</c>
      <c>0x33</c>
      <c>2</c>
      <c>58</c>
      <c>0x3a</c>
      <c>3</c>
      <c>68</c>
      <c>0x44</c>
      <c>4</c>
      <c>75</c>
      <c>0x4b</c>
      <c>5</c>
      <c>85</c>
      <c>0x55</c>
      <c>6</c>
      <c>92</c>
      <c>0x5c</c>
      <c>7</c>
      <c>119</c>
      <c>0x77</c>
      <c>8</c>
      <c>126</c>
      <c>0x7e</c>
</texttable>

<t>These code points will be reserved for PGP-GREASE in the following registries:</t>

<texttable title="OpenPGP GREASE Registries" anchor="grease-registries">
      <ttcol align='left'>Registry Name</ttcol>
      <ttcol align='left'>Notes</ttcol>
      <c>OpenPGP String-to-Key (S2K) Types</c>
      <c>(1)</c>
      <c>OpenPGP User Attribute Subpacket Types</c>
      <c>&#160;</c>
      <c>OpenPGP Image Attribute Encoding Format</c>
      <c>&#160;</c>
      <c>OpenPGP Signature Subpacket Types</c>
      <c>(2)</c>
      <c>OpenPGP Reason for Revocation (Revocation Octet)</c>
      <c>(1)</c>
      <c>OpenPGP Public Key Algorithms</c>
      <c>&#160;</c>
      <c>OpenPGP Symmetric Key Algorithms</c>
      <c>&#160;</c>
      <c>OpenPGP Hash Algorithms</c>
      <c>&#160;</c>
      <c>OpenPGP Compression Algorithms</c>
      <c>&#160;</c>
      <c>OpenPGP Secret Key Encryption (S2K Usage Octet)</c>
      <c>(3)</c>
      <c>OpenPGP Signature Types</c>
      <c>&#160;</c>
      <c>OpenPGP Image Attribute Versions</c>
      <c>&#160;</c>
      <c>OpenPGP AEAD Algorithms</c>
      <c>&#160;</c>
      <c>OpenPGP Key and Signature Versions</c>
      <c>&#160;</c>
</texttable>

<t><list style="numbers" type="1">
  <t>The use of PGP-GREASE code points in the String-to-Key Types and Reason for Revocation registries is not currently specified, however the code points will be reserved for consistency.</t>
  <t>When PGP-GREASE code points from the Signature Subpacket Types registry are used, the critical bit <bcp14>MUST NOT</bcp14> be set.</t>
  <t>All code points allocated in the Symmetric Key Algorithms registry are automatically also allocated in the S2K Usage Octet registry.</t>
</list></t>

<t>Due to the smaller number of allocatable code points (63) in the OpenPGP Packet Types registry, and the division of the registry into critical and non-critical ranges, most PGP-GREASE values cannot be used as Packet Types.
In addition, implementations pre-dating <xref target="RFC9580"></xref> are not required to ignore unknown non-critical packet types.
A Marker packet (<xref section="5.8" sectionFormat="of" target="RFC9580"/>) <bcp14>SHOULD</bcp14> therefore be used instead.
Packet Types 51 and 58 <bcp14>MAY</bcp14> be used if it is known, or it is reasonable to expect, that the receiving implementation supports <xref target="RFC9580"></xref>.</t>

<t>To avoid any potential ambiguity, no PGP-GREASE code points have been assigned in the Private and Experimental range.</t>

<t>Note also that <xref target="INTEROP"></xref> currently uses signature version 23 as a de-facto GREASE code point.</t>

</section>
<section anchor="usage-of-pgp-grease-code-points"><name>Usage of PGP-GREASE Code Points</name>

<t>An implementation <bcp14>MAY</bcp14> insert dummy packets or subpackets into otherwise valid packet sequences.
It <bcp14>MAY</bcp14> also include dummy code points in preference lists.
The data section of dummy packets and subpackets <bcp14>SHOULD</bcp14> contain only the ten octets "PGP-GREASE", in UTF-8 encoding.
All other fields of dummy packets and subpackets <bcp14>SHOULD</bcp14> correspond to those of a real packet or subpacket.</t>

<t>A generating implementation <bcp14>SHOULD</bcp14> choose code points deterministically, while ensuring that all PGP-GREASE code points are eventually used.</t>

<t>(TODO: how often should we add GREASE?)</t>

<t>A receiving implementation <bcp14>MUST</bcp14> gracefully ignore unknown code points when required to by <xref target="RFC9580"></xref>, including PGP-GREASE code points.
It <bcp14>MUST NOT</bcp14> treat PGP-GREASE code points any differently from other unknown code points; this includes detecting or indicating the presence of PGP-GREASE code points.</t>

<t>PGP-GREASE codepoints <bcp14>MAY</bcp14> be used in either certificates or messages.</t>

<t>Since existing legacy implementations have not consistently followed the requirement to ignore unknown code points, a generating implementation is <bcp14>RECOMMENDED</bcp14> to introduce PGP-GREASE code points gradually, over several release cycles.
This should ensure that legacy receiving implementations are not overwhelmed by errors in a short period of time.</t>

<section anchor="certificates"><name>Certificates</name>

<t>An implementation <bcp14>MAY</bcp14> use PGP-GREASE codepoints in the following certificate contexts:</t>

<t><list style="symbols">
  <t>Dummy algorithm IDs in algorithm-preference signature subpackets (subpacket types 11, 21, 22, and 39).</t>
  <t>Signature subpacket IDs of dummy signature subpackets, in either the hashed or unhashed area.</t>
  <t>User attribute subpacket types, versions and encoding formats of dummy user attribute subpackets.</t>
  <t>Packet versions and algorithm IDs in dummy subkey packets.</t>
  <t>Signature and hash algorithm IDs and signature version numbers in dummy third-party certification signatures.</t>
  <t>Hash algorithm IDs in dummy self-signatures.</t>
  <t>Packet and signature types in dummy packets.</t>
</list></t>

<t>A generating implementation <bcp14>MAY</bcp14> also generate dummy primary keys with PGP-GREASE version numbers or algorithm IDs.</t>

</section>
<section anchor="messages"><name>Messages</name>

<t>An implementation <bcp14>MAY</bcp14> use PGP-GREASE codepoints in the following message contexts:</t>

<t><list style="symbols">
  <t>Signature subpacket IDs of dummy signature subpackets in the hashed or unhashed signature subpacket area.</t>
  <t>Signature and hash algorithm IDs and signature version numbers in dummy document signature packets and their corresponding OPS packets.</t>
  <t>Packet and signature types in dummy packets.</t>
</list></t>

<t>Note that when an OPS packet is present, any PGP-GREASE code points it contains <bcp14>MUST</bcp14> be duplicated in the corresponding signature packet.</t>

</section>
</section>
<section anchor="private-and-experimental-ranges"><name>Private and Experimental Ranges</name>

<t>Unlike PGP-GREASE reservations, code points in the Private and Experimental ranges <bcp14>MAY</bcp14> be treated specially by a receiving implementation.
This <bcp14>MAY</bcp14> include emitting an explicit warning that an unknown code point in the Private and Experimental range has been encountered.
To simplify the recognition of Private and Experimental code points, each Private and Experimental range in the OpenPGP group of registries will be expanded to cover the code points 96-111, i.e. 0x60-0x6f.
Aligning this range to nybble boundaries will allow the use of a bit mask, and will provide additional Private and Experimental code points for future use.</t>

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

<t>Legacy implementations that do not properly ignore unknown code points will experience failures; this is intentional.
None of these failures should have security consequences in themselves, unless other coding errors are present in the legacy implementation.
While this should result in increased security in the long term, exposing such bugs may cause problems in the short term.</t>

<t>Generating implementations are therefore <bcp14>RECOMMENDED</bcp14> to be cautious in deploying PGP-GREASE initially.
In particular, implementations <bcp14>SHOULD NOT</bcp14> generate PGP-GREASE code points in production unless they have been tested first in a controlled environment such as the Interoperability Test Suite <xref target="INTEROP"></xref>.</t>

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

<t>IANA is requested to allocate the code points listed in <xref target="grease-code-points"/> in each of the registries listed in <xref target="grease-registries"/>, with the description "Reserved (PGP-GREASE)" and a reference pointing to this document.</t>

<t>IANA is also requested to allocate code points 51 and 58 in the "OpenPGP Packet Types" registry, with the description "Reserved (PGP-GREASE)" and a reference pointing to this document.</t>

<t>IANA is also requested to adjust the extent of the Private and Experimental range in each of the registries listed in <xref target="grease-registries"/>, from "100-110" to "96-111".</t>

</section>


  </middle>

  <back>


    <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>



    </references>

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

<reference anchor="INTEROP" target="https://tests.sequoia-pgp.org/">
  <front>
    <title>OpenPGP Interoperability Test Suite</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


<reference anchor="RFC8701">
  <front>
    <title>Applying Generate Random Extensions And Sustain Extensibility (GREASE) to TLS Extensibility</title>
    <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
    <date month="January" year="2020"/>
    <abstract>
      <t>This document describes GREASE (Generate Random Extensions And Sustain Extensibility), a mechanism to prevent extensibility failures in the TLS ecosystem. It reserves a set of TLS protocol values that may be advertised to ensure peers correctly handle unknown values.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8701"/>
  <seriesInfo name="DOI" value="10.17487/RFC8701"/>
</reference>



    </references>


<?line 190?>

<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The author would like to thank Daniel Huigens for inspiring this work.</t>

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

<t>Note to RFC Editor: this section should be removed before publication.</t>

<section anchor="changes-between-draft-gallagher-openpgp-grease-00-and-draft-gallagher-openpgp-grease-01"><name>Changes Between draft-gallagher-openpgp-grease-00 and draft-gallagher-openpgp-grease-01</name>

<t><list style="symbols">
  <t>Moved code points.</t>
  <t>Expanded private and experimental ranges.</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

