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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>


<rfc ipr="trust200902" docName="draft-josefsson-sshsig-format-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SSHSIG">Lightweight Secure Shell (SSH) Signature Format</title>

    <author fullname="Sebastian Kinne">
      <organization></organization>
      <address>
        <email>skinne@google.com</email>
      </address>
    </author>
    <author fullname="Damien Miller">
      <organization>OpenSSH</organization>
      <address>
        <email>djm@mindrot.org</email>
      </address>
    </author>
    <author fullname="Simon Josefsson" role="editor">
      <organization></organization>
      <address>
        <email>simon@josefsson.org</email>
      </address>
    </author>

    <date year="2025" month="April" day="24"/>

    <area>IETF</area>
    <workgroup>Secure Shell Maintenance</workgroup>
    <keyword>SSH</keyword> <keyword>Secure Shell</keyword> <keyword>Signature</keyword> <keyword>secsh</keyword>

    <abstract>


<t>This document describes a lightweight SSH Signature format that is
compatible with SSH keys and wire formats.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-josefsson-sshsig-format/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        SSHM Working Group mailing list (<eref target="mailto:ssh@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ssh/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/jas/ietf-sshsig-format"/>.</t>
    </note>


  </front>

  <middle>


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

<t>Secure Shell (SSH) <xref target="RFC4251"></xref> is a secure remote-login protocol. It
provides for an extensible variety of public key algorithms for
identifying servers and users to one another.</t>

<t>The SSH key and signature formats have found uses outside of the
interactive online SSH protocol itself.  This document specify these
formats.</t>

<t>At present, only detached and armored signatures are supported.</t>

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

<t>The descriptions of key and signature formats use the notation
introduced in <xref target="RFC4251"></xref>.</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>

</section>
<section anchor="armored-format"><name>Armored format</name>

<t>The Armored SSH signatures is ASCII-encoded <xref target="RFC20"></xref> and consists of a
header, a base64 encoded blob, and a footer.</t>

<t>The header is the string "-----BEGIN SSH SIGNATURE-----" followed by a
newline. The footer is the string "-----END SSH SIGNATURE-----"
immediately after a newline.</t>

<t>Newlines here is defined as ASCII LF.  Some text transfer mechanism
may use other line delimiters, however when Armored SSHSIG signatures
are stored in context which are input to cryptographic hashes or
otherwise subject to bit-by-bit comparisons, implementations <bcp14>MUST</bcp14> use
ASCII LF as the line delimiter to have one canonical representation.</t>

<t>The header <bcp14>MUST</bcp14> be present at the start of every signature.  Files
containing the signature <bcp14>MUST</bcp14> start with the header.  Likewise, the
footer <bcp14>MUST</bcp14> be present at the end of every signature.</t>

<t>The base64 encoded blob <bcp14>SHOULD</bcp14> be broken up by newlines every 76
characters.</t>

<t>Example:</t>

<figure><artwork><![CDATA[
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgJKxoLBJBivUPNTUJUSslQTt2hD
jozKvHarKeN8uYFqgAAAADZm9vAAAAAAAAAFMAAAALc3NoLWVkMjU1MTkAAABAKNC4IEbt
Tq0Fb56xhtuE1/lK9H9RZJfON4o6hE9R4ZGFX98gy0+fFJ/1d2/RxnZky0Y7GojwrZkrHT
FgCqVWAQ==
-----END SSH SIGNATURE-----
]]></artwork></figure>

</section>
<section anchor="blob-format"><name>Blob format</name>

<figure><artwork><![CDATA[
<CODE BEGINS>
#define MAGIC_PREAMBLE "SSHSIG"
#define SIG_VERSION    0x01

byte[6] MAGIC_PREAMBLE
 uint32 SIG_VERSION
 string publickey
 string namespace
 string reserved
 string hash_algorithm
 string signature
<CODE ENDS>
]]></artwork></figure>

<t>The publickey field <bcp14>MUST</bcp14> contain the serialisation of the public key
used to make the signature using the usual SSH encoding rules, i.e
<xref target="RFC4253"></xref>, <xref target="RFC5656"></xref>, <xref target="RFC8709"></xref>, etc.</t>

<t>Verifiers <bcp14>MUST</bcp14> reject signatures with versions greater than those they
support.</t>

<t>The purpose of the namespace value is to specify a unambiguous
interpretation domain for the signature, e.g. file signing.  This
prevents cross-protocol attacks caused by signatures intended for one
intended domain being accepted in another.  The namespace value <bcp14>MUST
NOT</bcp14> be the empty string.</t>

<t>The reserved value is present to encode future information (e.g. tags)
into the signature. Implementations should ignore the reserved field
if it is not empty.</t>

<t>Data to be signed is first hashed with the specified hash_algorithm.
This is done to limit the amount of data presented to the signature
operation, which may be of concern if the signing key is held in
limited or slow hardware or on a remote ssh-agent. The supported hash
algorithms for this pupose are "sha256" and "sha512". (Signature
algorithms may use other hash algorithms internally.)</t>

<t>The signature itself is made using the SSH signature algorithm and
encoding rules for the chosen key type. For RSA signatures, the
signature algorithm must be "rsa-sha2-512" or "rsa-sha2-256" (i.e.
not the legacy RSA-SHA1 "ssh-rsa").</t>

<t>This blob is encoded as a string using the <xref target="RFC4253"></xref> encoding rules and
base64 encoded to form the middle part of the armored signature.</t>

</section>
<section anchor="signed-data-of-which-the-signature-goes-into-the-blob-above"><name>Signed Data, of which the signature goes into the blob above</name>

<figure><artwork><![CDATA[
<CODE BEGINS>
#define MAGIC_PREAMBLE "SSHSIG"

byte[6] MAGIC_PREAMBLE
 string namespace
 string reserved
 string hash_algorithm
 string H(message)
<CODE ENDS>
]]></artwork></figure>

<t>The preamble is the six-byte sequence "SSHSIG". It is included to
ensure that manual signatures can never be confused with any message
signed during SSH user or host authentication.</t>

<t>The reserved value is present to encode future information (e.g. tags)
into the signature. Implementations should ignore the reserved field
if it is not empty.</t>

<t>The data is concatenated and passed to the SSH signing function.</t>

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

<t>None</t>

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

<t>The security considerations of all referenced specifications are
inherited.</t>

<t>Cryptographic algorithms and parameters are usually broken or weakened
over time.  Implementers and users need to continously re-evaluate
that cryptographic algorithms continue to provide the expected level
of security.</t>

<t>Implementations has to follow best practices to avoid security
concerns, and users needs to continously re-evaulate implementations
for security vulnerabilities.</t>

<t>This signature format embeds the public key, which is usually already
available for a verifier to perform the cryptographic verification
with and to make trust decisions.  When verifying a signature
cryptographically, it is <bcp14>RECOMMENDED</bcp14> to use the locally configured
public key rather than the public key provided in the signature.  A
bit-by-bit comparison of the public key could also be done.  The
public key within the signature should be treated as untrusted input,
but it may be used as an identifier to find the locally trusted public
key that can be used to verify the signature.</t>

<t>RSA public keys can be used with both SHA2-256 and RSA2-512, and
implementations <bcp14>MUST NOT</bcp14> let library defaults chose the variant to use
but instead instruct the library specifically which algorithm to use.</t>

<t>Some implementation do not explicitly require or validate that the
namespace is not empty.  We RECOMMEND that implementations reject
those signatures as invalid.  Comparing the namespace value before
performing the signature verification <bcp14>MAY</bcp14> be done to provide a better
error condition rather than a generic signature verification failure.</t>

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

<t>The text in this document is from <spanx style="verb">PROTOCOL.sshsig</spanx> from OpenSSH which
appears to have been contributed to by at least Sebastian Kinne,
Damien Miller, Markus Friedl, HARUYAMA Seigo, Pedro Martelletto, Paul
Tagliamonte, Hidde Beydals, and Castedo Ellerman.</t>

</section>
<section anchor="implementation-status"><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 <xref target="RFC7942"></xref>.  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 <xref target="RFC7942"></xref>, "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>

<t>The following example projects maintain an implementation of this
protocol:</t>

<t><strong>OpenSSH</strong>: C implementation.</t>

<t>Website: https://www.openssh.com/</t>

<t><strong>SSHSIGLIB</strong>: Python implementation by Castedo Ellerman.</t>

<t>Website: https://gitlab.com/perm.pub/sshsiglib</t>

<t><strong>SSHSIGN-GO</strong>: Go implementation by Benjamin Pannell at SierraSoftworks.</t>

<t>Website: https://github.com/SierraSoftworks/sshsign-go</t>

<t><strong>SSHSIG</strong>: Go implementation by Hidde Beydals.</t>

<t>Website: https://github.com/hiddeco/sshsig</t>

<t><strong>GO-SSHSIG</strong>: Go implementation by Paul Tagliamonte.</t>

<t>Website: https://github.com/paultag/go-sshsig</t>

<t><strong>REKOR-PKI-SSH</strong>: Go implementation by Sigstore/Rekor.</t>

<t>Website: https://github.com/sigstore/rekor/tree/v1.0.1/pkg/pki/ssh</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>



<reference anchor='RFC20' target='https://www.rfc-editor.org/info/rfc20'>
  <front>
    <title>ASCII format for network interchange</title>
    <author fullname='V.G. Cerf' initials='V.G.' surname='Cerf'/>
    <date month='October' year='1969'/>
  </front>
  <seriesInfo name='STD' value='80'/>
  <seriesInfo name='RFC' value='20'/>
  <seriesInfo name='DOI' value='10.17487/RFC0020'/>
</reference>

<reference anchor='RFC4251' target='https://www.rfc-editor.org/info/rfc4251'>
  <front>
    <title>The Secure Shell (SSH) Protocol Architecture</title>
    <author fullname='T. Ylonen' initials='T.' surname='Ylonen'/>
    <author fullname='C. Lonvick' initials='C.' role='editor' surname='Lonvick'/>
    <date month='January' year='2006'/>
    <abstract>
      <t>The Secure Shell (SSH) Protocol is a protocol for secure remote login and other secure network services over an insecure network. This document describes the architecture of the SSH protocol, as well as the notation and terminology used in SSH protocol documents. It also discusses the SSH algorithm naming system that allows local extensions. The SSH protocol consists of three major components: The Transport Layer Protocol provides server authentication, confidentiality, and integrity with perfect forward secrecy. The User Authentication Protocol authenticates the client to the server. The Connection Protocol multiplexes the encrypted tunnel into several logical channels. Details of these protocols are described in separate documents. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4251'/>
  <seriesInfo name='DOI' value='10.17487/RFC4251'/>
</reference>

<reference anchor='RFC4253' target='https://www.rfc-editor.org/info/rfc4253'>
  <front>
    <title>The Secure Shell (SSH) Transport Layer Protocol</title>
    <author fullname='T. Ylonen' initials='T.' surname='Ylonen'/>
    <author fullname='C. Lonvick' initials='C.' role='editor' surname='Lonvick'/>
    <date month='January' year='2006'/>
    <abstract>
      <t>The Secure Shell (SSH) is a protocol for secure remote login and other secure network services over an insecure network.</t>
      <t>This document describes the SSH transport layer protocol, which typically runs on top of TCP/IP. The protocol can be used as a basis for a number of secure network services. It provides strong encryption, server authentication, and integrity protection. It may also provide compression.</t>
      <t>Key exchange method, public key algorithm, symmetric encryption algorithm, message authentication algorithm, and hash algorithm are all negotiated.</t>
      <t>This document also describes the Diffie-Hellman key exchange method and the minimal set of algorithms that are needed to implement the SSH transport layer protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4253'/>
  <seriesInfo name='DOI' value='10.17487/RFC4253'/>
</reference>

<reference anchor='RFC5656' target='https://www.rfc-editor.org/info/rfc5656'>
  <front>
    <title>Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer</title>
    <author fullname='D. Stebila' initials='D.' surname='Stebila'/>
    <author fullname='J. Green' initials='J.' surname='Green'/>
    <date month='December' year='2009'/>
    <abstract>
      <t>This document describes algorithms based on Elliptic Curve Cryptography (ECC) for use within the Secure Shell (SSH) transport protocol. In particular, it specifies Elliptic Curve Diffie-Hellman (ECDH) key agreement, Elliptic Curve Menezes-Qu-Vanstone (ECMQV) key agreement, and Elliptic Curve Digital Signature Algorithm (ECDSA) for use in the SSH Transport Layer protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5656'/>
  <seriesInfo name='DOI' value='10.17487/RFC5656'/>
</reference>

<reference anchor='RFC8709' target='https://www.rfc-editor.org/info/rfc8709'>
  <front>
    <title>Ed25519 and Ed448 Public Key Algorithms for the Secure Shell (SSH) Protocol</title>
    <author fullname='B. Harris' initials='B.' surname='Harris'/>
    <author fullname='L. Velvindron' initials='L.' surname='Velvindron'/>
    <date month='February' year='2020'/>
    <abstract>
      <t>This document describes the use of the Ed25519 and Ed448 digital signature algorithms in the Secure Shell (SSH) protocol. Accordingly, this RFC updates RFC 4253.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8709'/>
  <seriesInfo name='DOI' value='10.17487/RFC8709'/>
</reference>

<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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'>



<reference anchor='RFC7942' target='https://www.rfc-editor.org/info/rfc7942'>
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname='Y. Sheffer' initials='Y.' surname='Sheffer'/>
    <author fullname='A. Farrel' initials='A.' surname='Farrel'/>
    <date month='July' year='2016'/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. 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.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='205'/>
  <seriesInfo name='RFC' value='7942'/>
  <seriesInfo name='DOI' value='10.17487/RFC7942'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
H4sIAEMICmgAA81a23LbONK+x1NglZtJ1pIPk8PYtbs18lmJDxnLnmySSs1C
JCQhpggFAC1rp2aeZZ9ln2y/bpAUKds7Vf9/s65KTIJAo7vRh68b7na7IpiQ
6T3ZOTOTaVho+l8OdVI4LYdTnWXyu+Hw9LkcmkmuAo0eWzdToSPUaOT0HVbi
+3Bw0hGpTXI1A63UqXHofrVej723edf7qTeT7pgXdrd2RKKCnli33JM+pMLM
3Z4MrvBhZ2trF5+V02pPDo6uj4UvRjPjvbF5WM51ObiY7LVZPFcmDzpXeaLF
rV4urEv3hOxKcMa/GnP5vZKFXrxO/FTc6bzQWCMnzhbzKNR5B+9x284H625N
PpEn9JnGZ8pkGIdoPxodxj3rJjSsXDLF8DSEud/b3KRZNGTudK+atkkDmyNn
F15vYv0mrXN6bhvrJjgUNeoldrb5VflNWtrWYkf4oPL0F5XZHPwttRdzsyc/
B5tsSG9dcNA9npYzevgiVBGm1pFSsJmU4yLL4lkN9Uj5YFQu35k81/xVR+H8
LY38OLF2kmni5eHqQzUzOpfnJsu0428QUOXmnyrgyPbk5VznfAgrqunX2Y8z
k6fOBtLGIxyZmc3l28p6WhzRpx9rw4rr8eMsmbBOTbBO5KwgaJyO8+r4YGer
fHi582p79fh9+fjq9avX5eMPb7Z294TJx2sU3uy+3KFH0e12pRr54FQShLie
Gi9h9MVM50Gm2ifOjLSXSmZNXxqeNpwnkpZhiv+MF1DqHDuNMi0XJkx5MgwY
NPIUI/UC3xNx95lJ00wL8UwO8uBsWiSkaPnrM9N4/U2IRzz4c6mCL9gYPPo4
w+mZDbqb2YnJ5RyHYhOb9eQgCLzcGUhFLIAfqe/hYp55vVMOJrmUdiznxSgz
CTEtVQafhhQzXiKwNg9mvCS38drdaRfFKjw9BSthuRiwYapdj7SpK/F5ml/T
mZdTdUcvRaThpS2CxybEBWgICgF0MDg3kM5MHulVMkkTvM7GPSnb5+bnOgGX
RMJrUatb9AOWYigPG0RuiQMOKpnqlLlTbmadbnAJ2cCqL+ZzOJ9Oe3REBza/
Ix3Y3Msbj9mDPG5+WG4epY6WM4/zIMzTGoDYxKeE0tjBRHXqoI3jq0+4VCcR
oljoZef8Znjd2Yi/5cUlP18d/XQzuDo6pOfhaf/srH4Q5Yzh6eXN2eHqabXy
4PL8/OjiMC7GqGwNic55/yO+kBSdy/fXg8uL/lmHWAwt3ZPKYAgjLfnwoO9A
+vWiciYWa//g/b//tf1S/vrrn8idt7d3f/utfPlh+81LvCymOo+78UnFVyhq
KdR8rpUjKgqOkKi5CSpDYFRe+qld5BLGp6GuF59JM1/25F9GyXz75d/KARK4
NVjprDXIOns48mBxVOIjQ49sU2uzNb6m6Ta//Y+t90rvjUEyyn5pudGmoqFU
Y+QvDYvGUfWHB4NBV+eJTfH9M4fTL6zpBNZqfGCLVWKqVaod9CqRTvTrl7Ja
MsrsKB6NwpYINZWvxxW0B1k0YirFiU6XfvaPTgYXMXAOTi761zdXRzzeAYUs
swsiCxcRuV6Qm/ck0YvEH6UHXT1GTZjZDDkDWAQ2A8SC1UpWNIW4iE+eTYTo
pnqMd7LPqBZ5doxoMrQzGDGCIyCMyv0YVGY6mSIJ+pmYqSU7LQc5yTEp1ZmZ
GWwGK4QFasRFNtjmIYDRxjkIjiyBP8KQoXjebjE1yZRdyOTzIpAjJW45D3bi
1BzfEC/9lMKkE7z9wngKUKOvOuHJIxO6o2UXvySnIWeQUsGUmc0zTe6pYkRi
P4AQohKaFEA6botDJDlCU1hPENdzk6iMgE2MokytffZMGc5fzpCcGElU5QKZ
FelmuVIElH1sMk1ZE+RMTgfM8+s4yQTjck6nod4La8/MrSYdcGQQpbk8wYKm
UPKQgcj9IxYuSz8GJQC7W5xmMScbzSsbipTevBawDEpSOH5QO7pXpOw9IX7/
/XfxX21f3GxfDG62stM+/fyEf4fn9HSWfH9hzz78fHv+9Wb7/PqWxiZv393b
s/23++bu5v3F9c3bm6HPfroOO9ND8dX+893dqXLv9MUPxcfjbxNacPhptnvX
r36OnyK83393cfBycDQK4vrb1vHo1ev7aSiOtjezd7unu1ef3o4vL17a19Oj
3auXn06O/777w2S59efx8dvN7XRn8+o+/3S73Pr45sR+XbhPt+70WhxPDr79
/KH/01//Kv6Lp7J2ELr2SdNV3KKxvxxcHh5JVtnwb+JZdFB53j8ZHPzy/uqo
f75/drSqT6rvePnl56OrIaIjgcet+61tIUbLoD+//rK2WMgCmen7neYaUQWX
CH2QZOsRArB+rlCFVCNkVoA+aT1ATvlLjZTq4drGSpmgCEjEcpPJ1VvJsdFZ
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
AA==

-->

</rfc>

