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


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

<!ENTITY RFC2104 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4880 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4880.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-openpgp-persistent-symmetric-keys-00" category="std" consensus="true" submissionType="IETF" updates="4880" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Persistent Symmetric Keys in OpenPGP</title>

    <author initials="D." surname="Huigens" fullname="Daniel Huigens" role="editor">
      <organization>Proton AG</organization>
      <address>
        <postal>
          <street>Route de la Galaise 32</street>
          <city>Plan-les-Ouates</city>
          <code>1228</code>
          <country>Switzerland</country>
        </postal>
        <email>d.huigens@protonmail.com</email>
      </address>
    </author>

    <date year="2024" month="July" day="08"/>

    <area>sec</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document defines new algorithms for the OpenPGP standard (RFC4880) to support persistent symmetric keys, for message encryption using authenticated encryption with additional data (AEAD) and for authentication with hash-based message authentication codes (HMAC).
This enables the use of symmetric cryptography for data storage (and other contexts that do not require asymmetric cryptography), for improved performance, smaller keys, and improved resistance to quantum computing.</t>



    </abstract>

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


  </front>

  <middle>


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

<t>The OpenPGP standard <xref target="RFC4880"></xref> has supported symmetric encryption for data packets using session keys since its inception, as well as symmetric encryption using password-derived keys.
This document extends the use of symmetric cryptography by adding support for persistent symmetric keys which can be stored in a transferable private key, and used to symmetrically encrypt session keys, for long-term storage and archival of messages.
This document uses authenticated encryption with associated data (AEAD) as proposed by the OpenPGP crypto refresh <xref target="crypto-refresh"></xref>.</t>

<t>The OpenPGP standard also supports the use of digital signatures for authentication and integrity but no similar symmetric mechanism exists in the standard.
This document introduces hash-based message authentication codes (HMAC) as a symmetric counterpart to digital signatures, for long-term storage and archival of attestations of authenticity and certification.</t>

</section>
<section anchor="conventions-used-in-this-document"><name>Conventions Used in This Document</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"></xref>.
Any implementation that adheres to the format and methods specified in this document is called a compliant application.
Compliant applications are a subset of the broader set of OpenPGP applications described in <xref target="RFC4880"></xref> and the OpenPGP crypto refresh <xref target="crypto-refresh"></xref>.
Any <xref target="RFC2119"></xref> keyword within this document applies to compliant applications only.</t>

</section>
<section anchor="motivation"><name>Motivation</name>

<t>When compared to asymmetric cryptography, symmetric cryptography can provide improved performance and equivalent security with smaller keys.
In contexts that do not require asymmetric cryptography, such as secure data storage where the same user encrypts and decrypts data, symmetric cryptography can be used to take advantage of these benefits.</t>

<t>Additionally, asymmetric algorithms included in OpenPGP are vulnerable to attacks that might become possible on quantum computers <xref target="Shor"></xref>.
Symmetric cryptography is also affected by quantum computing but to a lesser extent, which can be countered by using larger keys <xref target="Grover"></xref>.
While the standardization of quantum-secure asymmetric cryptography in OpenPGP is ongoing <xref target="PQCinOpenPGP"></xref>, and will be required to secure communications, there is a large body of existing messages encrypted with classical algorithms.
Once persistent symmetric keys are available, these messages can be protected against future compromises efficiently by symmetrically re-encrypting the session key, and storing the message symmetrically encrypted for long-term storage and archival.</t>

</section>
<section anchor="reusing-and-renaming-packets"><name>Reusing and Renaming Packets</name>

<t>Rather than introducing new packets for storing persistent symmetric keys, the existing Secret-Key packets are reused for this purpose.
To indicate the type of keys, two algorithms (AEAD and HMAC) are registered, whose IDs can be used in the place of public-key algorithm IDs.
To accommodate these additions, we propose renaming the Public Key Algorithms registry to Persistent Key Algorithms.</t>

<t>Similarly, we reuse the Signature packet for "symmetric signatures".
For session keys encrypted with persistent symmetric keys, while a Symmetric-Key Encrypted Session Key packet exists, its semantics don't match our requirements, as it's intended to encrypt the session key with a user-provided password, and doesn't offer a way to store a reference to a persistent key.
Therefore, we reuse the Public-Key Encrypted Session Key packet instead, which does offer the desired semantics.
Nevertheless, given this usage, the naming of these packets may be confusing, so we propose to rename them to "String-to-Key Encrypted Session Key packet" and "Persistent Key Encrypted Session Key packet", instead.</t>

</section>
<section anchor="key-algos"><name>Persistent Symmetric Key Algorithms</name>

<t>This document defines two new algorithms for use with OpenPGP, extending the table in section 9.1 of <xref target="crypto-refresh"></xref>.</t>

<texttable title="Persistent Symmetric Key Algorithm registrations" anchor="key-algo-registrations">
      <ttcol align='right'>ID</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>Public Key Format</ttcol>
      <ttcol align='left'>Secret Key Format</ttcol>
      <ttcol align='left'>Signature Format</ttcol>
      <ttcol align='left'>PKESK Format</ttcol>
      <c>128</c>
      <c>AEAD</c>
      <c>sym. algo, AEAD algo, fingerprint seed [<xref target="key-aead"/>]</c>
      <c>key material</c>
      <c>N/A</c>
      <c>IV, ciphertext [<xref target="pkesk-aead"/>]</c>
      <c>129</c>
      <c>HMAC <xref target="RFC2104"/></c>
      <c>hash algo, fingerprint seed [<xref target="key-hmac"/>]</c>
      <c>key material</c>
      <c>authentication tag [<xref target="sig-hmac"/>]</c>
      <c>N/A</c>
</texttable>

<t>These algorithm IDs can be used to store symmetric key material in Secret-Key Packets and Secret-Subkey packets (see section 5.5.3 of <xref target="crypto-refresh"></xref>).
The AEAD algorithm ID can be used to store session keys encrypted using AEAD in PKESK packets (see section 5.1 of <xref target="crypto-refresh"></xref>).
The HMAC algorithm ID can be used to store HMAC-based signatures in Signature packets (see section 5.2 of <xref target="crypto-refresh"></xref>).</t>

<t>As the secret key material is required for all cryptographic operations with symmetric keys, implementations SHOULD NOT use these algorithm IDs in Public-Key Packets or Public-Subkey Packets, and SHOULD NOT export Public-Key Packets from Secret-Key Packets holding symmetric key material.</t>

<t>When storing encrypted key material in a Secret-Key Packet or Secret-Subkey Packet, AEAD encryption (S2K usage octet 253, see section 3.7.2.1 of <xref target="crypto-refresh"></xref>) MUST be used, to ensure that the secret key material is bound to the fingerprint.
Implementations MUST NOT decrypt key material in a Secret-Key Packet or Secret-Subkey Packet that was encrypted using a different method.</t>

<section anchor="key-aead"><name>Algorithm-Specific Fields for AEAD keys</name>

<t>The public key is this series of values:</t>

<t><list style="symbols">
  <t>A one-octet symmetric algorithm identifier (see section 9.3 of <xref target="crypto-refresh"></xref>)</t>
  <t>A one-octet AEAD algorithm (see section 9.6 of <xref target="crypto-refresh"></xref>)</t>
  <t>A 32-octet random seed to randomize the key fingerprint</t>
</list></t>

<t>The secret key is this single value:</t>

<t><list style="symbols">
  <t>Symmetric key material of the appropriate length for the given symmetric algorithm</t>
</list></t>

</section>
<section anchor="key-hmac"><name>Algorithm-Specific Fields for HMAC keys</name>

<t>The public key is this series of values:</t>

<t><list style="symbols">
  <t>A one-octet hash algorithm identifier (see section 9.5 of <xref target="crypto-refresh"></xref>)</t>
  <t>A 32-octet random seed to randomize the key fingerprint</t>
</list></t>

<t>The secret key is this single value:</t>

<t><list style="symbols">
  <t>Symmetric key material of the length of the hash output size of the given hash algorithm</t>
</list></t>

</section>
<section anchor="pkesk-aead"><name>Algorithm-Specific Fields for AEAD encryption</name>

<t><list style="symbols">
  <t>A starting initialization vector of size specified by AEAD mode</t>
  <t>A symmetric key encryption of the plaintext value described in section 5.1 of <xref target="crypto-refresh"></xref>, performed using the selected symmetric-key cipher operating in the given AEAD mode, including the authentication tag.</t>
</list></t>

</section>
<section anchor="sig-hmac"><name>Algorithm-Specific Fields for HMAC signatures</name>

<t><list style="symbols">
  <t>An authentication tag of appropriate length for the hash algorithm</t>
</list></t>

<t>Although not required by HMAC, to maintain consistency with existing signature algorithms, HMAC tags are produced from appropriately hashed data, as per section 5.2.4 of <xref target="crypto-refresh"></xref>.</t>

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

<t>Security considerations are discussed throughout the document where appropriate.</t>

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

<section anchor="updates-to-public-key-algorithms"><name>Updates to Public Key Algorithms</name>

<t>IANA is requested to rename the "Public Key Algorithms" registry to "Persistent Key Algorithms", and add the entries in <xref target="key-algo-registrations"/> to the registry.</t>

</section>
<section anchor="updates-to-packet-type-descriptions"><name>Updates to Packet Type Descriptions</name>

<t>IANA is requested to modify the "PGP Packet Types/Tags" registry as follows:</t>

<t><list style="symbols">
  <t>For Packet Tag 1 ("Public-Key Encrypted Session Key Packet"), change the Packet Type to "Persistent Key Encrypted Session Key Packet".</t>
  <t>For Packet Tag 3 ("Symmetric-Key Encrypted Session Key Packet"), change the Packet Type to "String-to-Key Encrypted Session Key Packet".</t>
</list></t>

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

<t>An initial version of this draft was written by Dan Ristea (Proton AG), with guidance from Dr Philipp Jovanovic (University College London) and the editor.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

<reference anchor="crypto-refresh" target="https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-13">
  <front>
    <title>OpenPGP</title>
    <author initials="P." surname="Wouters">
      <organization></organization>
    </author>
    <author initials="D." surname="Huigens">
      <organization></organization>
    </author>
    <author initials="J." surname="Winter">
      <organization></organization>
    </author>
    <author initials="N." surname="Yutaka">
      <organization></organization>
    </author>
    <date year="2024" month="January"/>
  </front>
</reference>
&RFC2104;
&RFC2119;
&RFC4880;


    </references>

    <references title='Informative References'>

<reference anchor="Grover" target="https://arxiv.org/abs/quant-ph/9706033">
  <front>
    <title>Quantum mechanics helps in searching for a needle in a haystack</title>
    <author initials="L." surname="Grover">
      <organization></organization>
    </author>
    <date year="1997"/>
  </front>
</reference>
<reference anchor="Shor" target="http://dx.doi.org/10.1137/S0097539795293172">
  <front>
    <title>Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer</title>
    <author initials="P." surname="Shor">
      <organization></organization>
    </author>
    <date year="1997" month="October"/>
  </front>
</reference>
<reference anchor="PQCinOpenPGP" target="https://datatracker.ietf.org/doc/html/draft-wussler-openpgp-pqc-03">
  <front>
    <title>Post-Quantum Cryptography in OpenPGP</title>
    <author initials="S." surname="Kousidis">
      <organization></organization>
    </author>
    <author initials="F." surname="Strenzke">
      <organization></organization>
    </author>
    <author initials="A." surname="Wussler">
      <organization></organization>
    </author>
    <date year="2023" month="October"/>
  </front>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA81aW2/bOBZ+168g3IdJAUu5tdMmwAJrJG0n00s8cbvFoFss
aImxiciiKlJx3bT/fb9zSMnyrcnMvmyBthZFHp7Ld652HMeR0y5Xp2KoKqut
U4UTo8VsplylU/FaLazQhbgsVTF8NYwykxZyht1ZJa9drJW7jg3elZMyLlsC
sW0IxDcgEB8cRKl0amKqxamwLot0WZ0KV9XWHR0cnBwcRXWZYYM9FU+ePz+I
ZKUkNqo0wvG5qbJTcVE4VRXKxed0cWSdLLL/yNwU4KUwka3HM22tNsX7RYml
ixfvX0alPo2EcCY9FQtl/cdMlW6Ka/BkTeUqdW2bt2B6+XirilrR8Ull6vJU
9IIGekSGr+h9NNWNLibiFe2g9ZnUOdaDPv5JyklMNaFXskpxa2/qXGlP9/dp
Jy3pW5U02/ZpYX9cmblV+4HGPp2tVGk6ZycwlxwnqZntuzlkhvH27zUB0clJ
w65DqTmeBJLa3E8IHMnaTU1FuonxVwAe0Nl5In6r9UQVltc8SM5loVW+8qIy
hDWVaWcqXoDkwF5lnCnE4BUvWZhFgdErUzslMgXOxSuZS22VOD7iLanJQObw
6Oi5f9QOyBrmsohzZePLmkQNG+vCEexGc+2+qQpbMn6hvLWyZOq5+2fJPNAq
6TYqTDWTDgYiQdNqUToTAx6VstNTJhDcpvEMWiIMA1vid1nUslqIo4OjJ/xi
qTL6E4f/g+qGifhIklZ2+/s11W68/x3nNbnH9tfvEvFn7eSN9FzLakK6bTAA
lqWrZHqjqiUS4eX7UzfL97d4+aoq4sNjkL16eXZ0ePDktPl4eBI+kjefRrq4
7ioT/nKrqhUl/lHLwtUzMVPpFJhJrZiqvOTIYxU7CvwMRIQUhVJZruiNFFO5
QCBIb+7X8ZskXNux0+HJybOtOpHVV33rXXJs978Qb3E53T95dvDrwTHJO2ov
Cvz3hiZfFGamZR6/1zMlBjmCnXbTmWW2hxUtvpQpUK+/QRMAO4AozrVNKwWQ
vzETGfbTq1YhZ2ZWEjR6Hb4vQWWsqiX/96GL2N0QlGz/NcmMZkEPD5LDw+Nn
+yOE42dPj0+enTw9Ojk+fEbeNvzjTBcB5itSD411ccsp42JSyXK66GaMrr5b
1uEYx/ezPkrEa1NbnekdyH8J2RArim83avuGAVyjtjZXm/I/FPxzf36Z5b6k
8cFxFMexADrotIui91NtBQ7WM0qfmbrWhbKA6lzIVSC4qWo0IziHySoTe8FT
HiNBCVuXJRKTWEZg0UZgQRG4z4Rmylo5UUIV7JAEKGgKXkIaxSFNCTfrvkb8
mwqZIfLiSeZkFCn2Bi8G548Zi+xey8PtkamEm4+lBbXm0rVtFIyt2Pvt7eDs
ceJ1oQo5RiRmeWuEbXPdkSLtQoWuZVYsfIOI7xEzBgcrEEZY++qIjIRaDTK9
Qzr8UusKTGwn+NjrR89K8veM9MjRp0hVX9iZzGHMoEe6qN2HaKbJIqkiK3wJ
qE7Z/6DXJGKTz3SG6BNFj6ggqUxWp6QBAsAWu34Kdv1MOmwMi6uWjHfM0+qh
JDxCZm9Oq7iqYY4FVsCedhQYU8XnIIUVc5Xn9P9Wwp5OKa2lSirOVKVJXiKY
rAEXulZF9hCrjRcMJWIw4JX434lZMZ/qdCpSWYixYkuDAw7hcKDCXquK4CJK
sAbY0hFvnZpQR07RUIP5Fo1wK7rxVkc9OIkRLmctmoiKr7QAecgTILwhOm6y
9/mOtSbV/GrFdyz4NqUhVqGWrod7lYmQK8Wn1dz5OdmBG5nbNg6sGCPTqNQg
h9WTQroaRLZ5LcMajjNB3IGlage3wZEZlZwdu4Rca2cwO4zGyZbuathY15AO
gMelfy0kkIZkF0hUkqmqlEANtLMp1ENtKR0VtHyh5eeGB5KbNqeqcvo68JSQ
156Z4pa20IkP1oOQxTwPYnqTAFGCvMWK3tsPo/e9vv9fvLvkz1cv/vhwcfXi
nD6Pfhu8edN+aHaMfrv88OZ8+Wl58uzy7dsX78794beDP3se6b3L4fuLy3eD
Nz1vh67m0Q6RosaKzVqVVDFkpFXoOK302IvxKZRegNWgWFBgyxUd9wbhCCoz
RFWKyoYt7asyvh6mmRqIa0uVQmOe4ioX+EzuRzdzWMy1JN5KfGgUfLZt2TL/
AEA9tsqRnehu9DkSoUiEpcYHVs5tiOeDKfH7l7yM1NFqR4SWkn16U9V0v9fQ
VhmpPMsXDKW3xlG04vD/EbjjA7LyAWtHcurviqcUGSkRaXQ721IXC02JD9Dn
8KrSmt2bI1M3rSXRRfG3Eid4q9MppxEirlaz8pyQ4+MDWjsKSFUTIC0zl6nw
QMd+KudYtXEdbQn4yW6hZbrEYwOxbqwK1FAOwkSDtmLJKSks6XYqK2TDvM48
Tlokgd3bOi9CaiGbOOoVgk5mejJ1uAdGQ94xSCS0C46ymvmR0MQnqp8Bo9F2
kQAfDtjy+lqlzieBjfKBwzDxIFAVse4o1br+amIMkdHT8Hk7p5LVW1Z88i0M
WPk41blaidZNVwEVhsvjYMYd5u7qShOsJ4bu+9St9j/72DTXKC/AXgCQz8ie
OASc1UXjHH1iCaukEs+5GJtsQUxxjqELmgTcoEd5TxRpjvxKCb5j2CS6JOzv
Lis4stzSMAXW6wfwtDcErVJj7y0jJxJtAWqV2gXm8W6mKfWra+QJjStyLm5W
C45KxU0xAAlY7cvSw+uI/KR52eTErVWLyh6Q3TjAXKlQ0ePFFQrqGT0MfXUY
RVeSS2SAuWhTM22gpqMpIemihrGf9BPEc2ufkaKONH6NDNiQIS1Xin3W9zCw
b1lXVPKgSDC4PuOSiQnRcIwMHkjPTddRuWRigUJlwJQnxBdwRd4AmuLi3K4E
ilCYlLlMmXRZj3M/jlrSpkPMjEwJkyYL/FjV9jxgZ66aWg3XBo0S6SFTpGln
t3P3nFULwntnOrq6C6Ya+dqK4tM8aIqpjpqKJmiStddban9Z8fSS6CXZqlvs
r/nHT+w352ggl2Nbtt6L9vwokF3aNJR8fe4lrEKKcTR0yUzxC0KjdAhJpq4a
h6fMaLnR0O4Xy0VIkfkw0JTiaz4RCmZOE3HIa1nbg3iPyYyydJ1B3KTBzlyy
ork5wCPSNzAR2jHZFR/0qTbFW+hTrencW/J+BVAcUDJrAjAxEzghKqg8ONC1
qkmidwqhF+8ofvfFBD1UqB1q8nXvRAFRbRprHGgG0Ti8F9fs0kiPpotFrl5o
ZErnZvTYGzny2hh1zH2i9Hz9uAbQn57oN+JznNk1+O+6wt0jaD0mb7M/do07
yNe3jDzIMgyHkFT6oc1sfM9xfuZJHzfT4iQ5JBVu6ZbuTv3o6R+9+3luvNdn
pp5oBYhXXvyILs7F986x791g8NJXyN9DVFxba927XRq+fjF6HR5pXnD6Pd75
5/va30gcHj0nVihEficnT1iVfb/iP0LTE+oANNeAsO6/P93dsWSw5o8fn3GQ
3A/Xo81HLv0u3u0P8O/Fv/oi1SWchupCPlXeKHvTnKPLT7CPwrK4uwsD3R8/
sETN3n23T2cy3Xr7WluIKo/PIPJ1zoBFbrsoVnfj+Xq16EPDSvRb3gUAdVLX
sEldRdYsj+rxTSep7UGAFnJPk6fJ8TbQ8TxLLS3Q8LaDte3x26dxpgEuPUZ2
sLEV+YEJts39TNC20Jx35gSknrV0tHH50Y7Lo4ENAZ6dYFXtdlkW8iwCpWKn
zISVDEJ36J18s7KWvVYbVSuWDbMIQX0DF6TFZZxvbE1zdr8aTB1e+HTTIau+
8sRqC4lrlIPbYDQ1uR92bcVeEhrAptRaWn4doXKTOLG9ilC/Hty+M4TaGx29
9tlGGJSzThw9Pe6LrgmPk2fJ0Q4MCR5gBLT0fe62Nfd00v3MvGM0JVk7MlhG
ADSaa5ZrRiRNL/i/iO/ZmstNP5Ii09dcG7gwtqAs9mgZwuORH2Kk4qVWeeaz
ECuT/TKkMop7ftjjy0lmVluf01G2aC4IBIrxWtnTKIrFAE2Sir3qt7ShAjVO
QeMm1BArjnWyI7Ss01wLMms0fv0JjeOjQKIC0oFgjs1UVPCj/uZLIxKwYz8v
fMforfDYg4zMkrPgo+0RN0xyZEllTEWDUTS3xQQu3nzT4aukLbp6gME42nUM
xuni7xuszWL32erp/6ueg27DE8tjalfWACPdHNa9ylelfah7dGLN3aNOeeCF
t05W3CHqAu2UzJuJw62ibzX5uwLiYzlBRBvNZNGMqUBiRcDOdYF5dHiaB1de
KasDwHuSZL8Zl7WBwse03Lf+K79iCKVQk5pYpo72Wq77YbLUUNusZh4SehjJ
nVR896gtf1gtxbYqicbZux1r3b6DHHGwnky7cz42AN3NwX5GmsVfakJ85ZyG
Lq3t/FsWOxV833MPjvwYoPRfAWQ+U3Y4zBfMVPhuhJvFkse7bXGRPNlR1T+i
BOCnmWfEXNbUC+ismxfpygtmJdM2rS2XPtOKhDe1z2NtY+Jnlh0m+bKLwbvB
xkUw4gf/EyRu9reNA6KIT4aCR1kXfL9t3NCDbTvXW5kjrPdpnX2+TpGZn25j
A4c0mCxU+Ju9y48mLTc3JBuS+GRKP4oS5+xNZZB4qzAAvb5eBGFeDbvH7f57
gKAjjCR057mZ+2BL84tmO/B7KPZ69/bifn/vMXqTqUTA9B18h+UtCvsppWST
kWMw8pDByIN4eUhX3rICrA3Sm8LMc5VN/BAFnlo08ROBs7Jt8KOGmn5vwCXP
HIiAwOTA5yjxr0h8KfbaX0mBSXbdSa0z/naAvfEcck91rstS/G5uZWFugcW9
D4Xmi9i78lxN6McmSFfF4/aLFP9rrCT6L/zOxgoNKAAA

-->

</rfc>

