<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-barnes-sframe-iana-256-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SFrame IANA Updates">Updates to SFrame Cipher Suites Registry</title>
    <seriesInfo name="Internet-Draft" value="draft-barnes-sframe-iana-256-01"/>
    <author fullname="Richard Barnes">
      <organization>Cisco</organization>
      <address>
        <email>rlb@ipv.sx</email>
      </address>
    </author>
    <author fullname="Emad Omara">
      <organization>Apple</organization>
      <address>
        <email>eomara@apple.com</email>
      </address>
    </author>
    <author fullname="Aron Rosenberg">
      <organization>Apple</organization>
      <address>
        <email>aron.rosenberg@apple.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="21"/>
    <area>Applications and Real-Time</area>
    <workgroup>Secure Media Frames</workgroup>
    <keyword>SFrame</keyword>
    <keyword>cryptography</keyword>
    <abstract>
      <?line 48?>

<t>This document addresses two omissions in the Secure Frames (SFrame) protocol
specification.  First, the definition of the IANA registry for SFrame
ciphersuites omits several important fields.  This document requests that IANA
add those fields and defines the contents of those fields for current entries.
Second, the AEAD construction based on AES-CTR and HMAC is defined only for
the 128-bit security level.  This document registers parallel constructions
at the 256-bit security level.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://bifurcation.github.io/sframe-iana-256/draft-barnes-sframe-iana-256.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-barnes-sframe-iana-256/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Media Frames Working Group mailing list (<eref target="mailto:sframe@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/sframe/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/sframe/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/bifurcation/sframe-iana-256"/>.</t>
    </note>
  </front>
  <middle>
    <?line 58?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Secure Frames (SFrame) protocol specification defines an IANA registry for
cipher suites.  The initial definition in <xref section="8.1" sectionFormat="of" target="RFC9605"/> is missing
several important fields.  This document requests that IANA add those fields and
defines the contents of those fields for current entries.  We also define new
entries that extend the SFrame CTR+HMAC construction to support AES-256.</t>
      <t>This document addresses two omissions in the Secure Frames (SFrame) protocol
specification <xref target="RFC9605"/>.  First, the definition in <xref section="8.1" sectionFormat="of" target="RFC9605"/> of the IANA registry for SFrame ciphersuites omits several important
fields.  This document requests that IANA add those fields and defines the
contents of those fields for current entries.  Second, the AEAD construction
based on AES-CTR and HMAC (in <xref section="4.5.1" sectionFormat="of" target="RFC9605"/>) is defined only for
the 128-bit security level.  This document registers parallel constructions at
the 256-bit security level.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

</section>
    <section anchor="aes-256-ctr-with-hmac-sha512">
      <name>AES-256-CTR with HMAC-SHA512</name>
      <t><xref section="4.5.1" sectionFormat="of" target="RFC9605"/> defines a compound authenticated encryption
construction, using the unauthenticated CTR mode of AES for encryption and HMAC
for authentication.</t>
      <t>The original specification only defines cipher suite values for instances of
this construction using AES-128-CTR and HMAC-SHA256.  The construction works the
same way when used with AES-256-CTR and HMAC-SHA512.  The only differences are
in the lengths of some SFrame-internal fields:</t>
      <ul spacing="normal">
        <li>
          <t>The keys generated by SFrame-internal key derivation (<tt>derive_key_salt</tt>) are
longer to match the needs of AES-256-CTR and HMAC-SHA512 (96 bytes vs 48 bytes
for AES-128-CTR and HMAC-SHA256).</t>
        </li>
        <li>
          <t>The initial tag value <tt>tag</tt> in <tt>compute_tag</tt> is 64 bytes instead of 32 bytes.</t>
        </li>
      </ul>
      <t>Identifiers for cipher suites using AES-256-CTR and HMAC-SHA512 are defined in
<xref target="cipher-suites"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The registry changes in this document have no affect on the security of SFrame.</t>
      <t>The new algorithms registered by this document allow the CTR+HMAC construction
to be used in environments that require a 256-bit security level.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes two requests of IANA: Updating the columns in the "SFrame
Cipher Suites" registry and adding entries to the updated registry for the new
cipher suites defined in this document.</t>
      <section anchor="sframe-cipher-suites">
        <name>"SFrame Cipher Suites" Registry Update</name>
        <t>The SFrame Cipher Suites registry should be updated to add the following
columns:</t>
        <ul spacing="normal">
          <li>
            <t><tt>Nh</tt>: The size in bytes of the output of the hash function</t>
          </li>
          <li>
            <t><tt>Nka</tt>: For cipher suites using the compound AEAD described in <xref section="4.5.1" sectionFormat="of" target="RFC9605"/>, the size in bytes of a key for the underlying encryption
algorithm</t>
          </li>
          <li>
            <t><tt>Nk</tt>: The size in bytes of a key for the encryption algorithm</t>
          </li>
          <li>
            <t><tt>Nn</tt>: The size in bytes of a nonce for the encryption algorithm</t>
          </li>
          <li>
            <t><tt>Nt</tt>: The overhead in bytes of the encryption algorithm (typically the size of
a "tag" that is added to the plaintext)</t>
          </li>
        </ul>
        <t><xref target="new-cipher-suite-registry"/> illustrates the new structure of the registry, and provides
the required values for the currently registered entries.</t>
        <table anchor="new-cipher-suite-registry">
          <name>New structure and contents of the SFrame Cipher Suites registry</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">Nh</th>
              <th align="left">Nka</th>
              <th align="left">Nk</th>
              <th align="left">Nn</th>
              <th align="left">Nt</th>
              <th align="left">R</th>
              <th align="left">Reference</th>
              <th align="left">Change Controller</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x0000</td>
              <td align="left">Reserved</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">RFC 9605</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">0x0001</td>
              <td align="left">
                <tt>AES_128_CTR_HMAC_SHA256_80</tt></td>
              <td align="left">32</td>
              <td align="left">16</td>
              <td align="left">48</td>
              <td align="left">12</td>
              <td align="left">10</td>
              <td align="left">Y</td>
              <td align="left">RFC 9605</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">0x0002</td>
              <td align="left">
                <tt>AES_128_CTR_HMAC_SHA256_64</tt></td>
              <td align="left">32</td>
              <td align="left">16</td>
              <td align="left">48</td>
              <td align="left">12</td>
              <td align="left">8</td>
              <td align="left">Y</td>
              <td align="left">RFC 9605</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">0x0003</td>
              <td align="left">
                <tt>AES_128_CTR_HMAC_SHA256_32</tt></td>
              <td align="left">32</td>
              <td align="left">16</td>
              <td align="left">48</td>
              <td align="left">12</td>
              <td align="left">4</td>
              <td align="left">Y</td>
              <td align="left">RFC 9605</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">0x0004</td>
              <td align="left">
                <tt>AES_128_GCM_SHA256_128</tt></td>
              <td align="left">32</td>
              <td align="left">n/a</td>
              <td align="left">16</td>
              <td align="left">12</td>
              <td align="left">16</td>
              <td align="left">Y</td>
              <td align="left">RFC 9605</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">0x0005</td>
              <td align="left">
                <tt>AES_256_GCM_SHA512_128</tt></td>
              <td align="left">64</td>
              <td align="left">n/a</td>
              <td align="left">32</td>
              <td align="left">12</td>
              <td align="left">16</td>
              <td align="left">Y</td>
              <td align="left">RFC 9605</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">0xF000 - 0xFFFF</td>
              <td align="left">Reserved for Private Use</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">-</td>
              <td align="left">RFC 9605</td>
              <td align="left">IETF</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="cipher-suites">
        <name>Cipher Suites for AES-256-CTR with HMAC-SHA512</name>
        <t>The following new entries should be added to the SFrame Cipher Suites registry:</t>
        <table anchor="new-entries">
          <name>New entries SFrame Cipher Suites registry</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">Nh</th>
              <th align="left">Nka</th>
              <th align="left">Nk</th>
              <th align="left">Nn</th>
              <th align="left">Nt</th>
              <th align="left">R</th>
              <th align="left">Reference</th>
              <th align="left">Change Controller</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x0006</td>
              <td align="left">
                <tt>AES_256_CTR_HMAC_SHA512_80</tt></td>
              <td align="left">64</td>
              <td align="left">32</td>
              <td align="left">96</td>
              <td align="left">12</td>
              <td align="left">10</td>
              <td align="left">Y</td>
              <td align="left">RFC XXXX</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">0x0007</td>
              <td align="left">
                <tt>AES_256_CTR_HMAC_SHA512_64</tt></td>
              <td align="left">64</td>
              <td align="left">32</td>
              <td align="left">96</td>
              <td align="left">12</td>
              <td align="left">8</td>
              <td align="left">Y</td>
              <td align="left">RFC XXXX</td>
              <td align="left">IETF</td>
            </tr>
            <tr>
              <td align="left">0x0008</td>
              <td align="left">
                <tt>AES_256_CTR_HMAC_SHA512_32</tt></td>
              <td align="left">64</td>
              <td align="left">32</td>
              <td align="left">96</td>
              <td align="left">12</td>
              <td align="left">4</td>
              <td align="left">Y</td>
              <td align="left">RFC XXXX</td>
              <td align="left">IETF</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9605">
          <front>
            <title>Secure Frame (SFrame): Lightweight Authenticated Encryption for Real-Time Media</title>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="J. Uberti" initials="J." surname="Uberti"/>
            <author fullname="S. G. Murillo" initials="S. G." surname="Murillo"/>
            <author fullname="R. Barnes" initials="R." role="editor" surname="Barnes"/>
            <author fullname="Y. Fablet" initials="Y." surname="Fablet"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>This document describes the Secure Frame (SFrame) end-to-end encryption and authentication mechanism for media frames in a multiparty conference call, in which central media servers (Selective Forwarding Units or SFUs) can access the media metadata needed to make forwarding decisions without having access to the actual media.</t>
              <t>This mechanism differs from the Secure Real-Time Protocol (SRTP) in that it is independent of RTP (thus compatible with non-RTP media transport) and can be applied to whole media frames in order to be more bandwidth efficient.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9605"/>
          <seriesInfo name="DOI" value="10.17487/RFC9605"/>
        </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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="TestVectors" target="https://github.com/bifurcation/sframe-iana-256/blob/main/test-vectors/test-vectors-aes256.json">
          <front>
            <title>SFrame Test Vectors</title>
            <author>
              <organization/>
            </author>
            <date year="2025" month="September"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 176?>

<section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>This section provides a set of test vectors that implementations can use to
verify that they correctly implement SFrame encryption and decryption with the
cipher suites registered in this document.  Test vectors are provided for both
the AES-256-CTR-HMAC construction and for full SFrame encryption with the new
cipher suites.</t>
      <t>All values are either numeric or byte strings.  Numeric values are represented
as hex values, prefixed with <tt>0x</tt>.  Byte strings are represented in hex
encoding.</t>
      <t>Line breaks and whitespace within values are inserted to conform to the width
requirements of the RFC format.  They should be removed before use.</t>
      <t>These test vectors are also available in JSON format at <xref target="TestVectors"/>.  In the
JSON test vectors, numeric values are JSON numbers and byte string values are
JSON strings containing the hex encoding of the byte strings.</t>
      <section anchor="aead-encryptiondecryption-using-aes-ctr-and-hmac">
        <name>AEAD Encryption/Decryption Using AES-CTR and HMAC</name>
        <t>For each case, we provide:</t>
        <ul spacing="normal">
          <li>
            <t><tt>cipher_suite</tt>: The index of the cipher suite in use (see
<xref target="sframe-cipher-suites"/>)</t>
          </li>
          <li>
            <t><tt>key</tt>: The <tt>key</tt> input to encryption/decryption</t>
          </li>
          <li>
            <t><tt>enc_key</tt>: The encryption subkey produced by the <tt>derive_subkeys()</tt> algorithm</t>
          </li>
          <li>
            <t><tt>auth_key</tt>: The authentication subkey produced by the <tt>derive_subkeys()</tt> algorithm</t>
          </li>
          <li>
            <t><tt>nonce</tt>: The <tt>nonce</tt> input to encryption/decryption</t>
          </li>
          <li>
            <t><tt>aad</tt>: The <tt>aad</tt> input to encryption/decryption</t>
          </li>
          <li>
            <t><tt>pt</tt>: The plaintext</t>
          </li>
          <li>
            <t><tt>ct</tt>: The ciphertext</t>
          </li>
        </ul>
        <t>An implementation should verify that the following are true, where
<tt>AEAD.Encrypt</tt> and <tt>AEAD.Decrypt</tt> are as defined in <xref section="4.5.1" sectionFormat="of" target="RFC9605"/>:</t>
        <ul spacing="normal">
          <li>
            <t><tt>AEAD.Encrypt(key, nonce, aad, pt) == ct</tt></t>
          </li>
          <li>
            <t><tt>AEAD.Decrypt(key, nonce, aad, ct) == pt</tt></t>
          </li>
        </ul>
        <t>The other values in the test vector are intermediate values provided to
facilitate debugging of test failures.</t>
      </section>
      <section anchor="sframe-encryptiondecryption">
        <name>SFrame Encryption/Decryption</name>
        <t>For each case, we provide:</t>
        <ul spacing="normal">
          <li>
            <t><tt>cipher_suite</tt>: The index of the cipher suite in use (see
<xref target="sframe-cipher-suites"/>)</t>
          </li>
          <li>
            <t><tt>kid</tt>: A KID value</t>
          </li>
          <li>
            <t><tt>ctr</tt>: A CTR value</t>
          </li>
          <li>
            <t><tt>base_key</tt>: The <tt>base_key</tt> input to the <tt>derive_key_salt</tt> algorithm</t>
          </li>
          <li>
            <t><tt>sframe_key_label</tt>: The label used to derive <tt>sframe_key</tt> in the <tt>derive_key_salt</tt> algorithm</t>
          </li>
          <li>
            <t><tt>sframe_salt_label</tt>: The label used to derive <tt>sframe_salt</tt> in the <tt>derive_key_salt</tt> algorithm</t>
          </li>
          <li>
            <t><tt>sframe_secret</tt>: The <tt>sframe_secret</tt> variable in the <tt>derive_key_salt</tt> algorithm</t>
          </li>
          <li>
            <t><tt>sframe_key</tt>: The <tt>sframe_key</tt> value produced by the <tt>derive_key_salt</tt> algorithm</t>
          </li>
          <li>
            <t><tt>sframe_salt</tt>: The <tt>sframe_salt</tt> value produced by the <tt>derive_key_salt</tt> algorithm</t>
          </li>
          <li>
            <t><tt>metadata</tt>: The <tt>metadata</tt> input to the SFrame <tt>encrypt</tt> algorithm</t>
          </li>
          <li>
            <t><tt>pt</tt>: The plaintext</t>
          </li>
          <li>
            <t><tt>ct</tt>: The SFrame ciphertext</t>
          </li>
        </ul>
        <t>An implementation should verify that the following are true, where
<tt>encrypt</tt> and <tt>decrypt</tt> are as defined in <xref section="4.4" sectionFormat="of" target="RFC9605"/>, using an SFrame
context initialized with <tt>base_key</tt> assigned to <tt>kid</tt>:</t>
        <ul spacing="normal">
          <li>
            <t><tt>encrypt(ctr, kid, metadata, plaintext) == ct</tt></t>
          </li>
          <li>
            <t><tt>decrypt(metadata, ct) == pt</tt></t>
          </li>
        </ul>
        <t>The other values in the test vector are intermediate values provided to
facilitate debugging of test failures.</t>
        <sourcecode type="test-vectors"><![CDATA[
cipher_suite: 0x0006
kid: 0x0000000000000123
ctr: 0x0000000000004567
base_key: 000102030405060708090a0b0c0d0e0f
sframe_key_label: 534672616d6520312e30205365637265
                  74206b65792000000000000001230006
sframe_salt_label: 534672616d6520312e30205365637265
                   742073616c7420000000000000012300
                   06
sframe_secret: 0fc3ea6de6aac97a35f194cf9bed94d4
               b5230f1cb45a785c9fe5dce9c188938a
               b6ba005bc4c0a19181599e9d1bcf7b74
               aca48b60bf5e254e546d809313e083a3
sframe_key: 3c343886ec1c79278836863e00fe934c
            8894460cfa367ebdc4856b0a9268a4f4
            fb99437876819394ef90b10ee12602d0
            23f7128ee50f2314c2cc3cff4c56616d
            2fe03ad2a254cc2ed29b2a4d3f2534c0
            dda9e7c391ad1917ea07aa221dd4b224
sframe_salt: e082f7ce012ad30c87c49e3f
metadata: 4945544620534672616d65205747
nonce: e082f7ce012ad30c87c4db58
aad: 99012345674945544620534672616d65
     205747
pt: 64726166742d696574662d736672616d
    652d656e63
ct: 9901234567b369e03ec6467ad505ddc8
    4914115069280c5c797555be6e32cde6
    ac25bc9e
]]></sourcecode>
        <sourcecode type="test-vectors"><![CDATA[
cipher_suite: 0x0007
kid: 0x0000000000000123
ctr: 0x0000000000004567
base_key: 000102030405060708090a0b0c0d0e0f
sframe_key_label: 534672616d6520312e30205365637265
                  74206b65792000000000000001230007
sframe_salt_label: 534672616d6520312e30205365637265
                   742073616c7420000000000000012300
                   07
sframe_secret: 0fc3ea6de6aac97a35f194cf9bed94d4
               b5230f1cb45a785c9fe5dce9c188938a
               b6ba005bc4c0a19181599e9d1bcf7b74
               aca48b60bf5e254e546d809313e083a3
sframe_key: 7271d6c6cbccd2e2343d480ebea65718
            a7bb379eefcf3f8d107c1e2a76e75529
            3a497fd9e4e8291b965161987ef4ef24
            983eabb06cb0a392defaab18654780a3
            9c106ffa4a47d4183a6e593cd0c1bcab
            2b9c6dcf049215845bfb7580c4dea80e
sframe_salt: 46b4367993a314910d4d9f3d
metadata: 4945544620534672616d65205747
nonce: 46b4367993a314910d4dda5a
aad: 99012345674945544620534672616d65
     205747
pt: 64726166742d696574662d736672616d
    652d656e63
ct: 990123456797cb5644d8831ff8bdc080
    249990b24b569144cab2a87be22c20d9
    7976
]]></sourcecode>
        <sourcecode type="test-vectors"><![CDATA[
cipher_suite: 0x0008
kid: 0x0000000000000123
ctr: 0x0000000000004567
base_key: 000102030405060708090a0b0c0d0e0f
sframe_key_label: 534672616d6520312e30205365637265
                  74206b65792000000000000001230008
sframe_salt_label: 534672616d6520312e30205365637265
                   742073616c7420000000000000012300
                   08
sframe_secret: 0fc3ea6de6aac97a35f194cf9bed94d4
               b5230f1cb45a785c9fe5dce9c188938a
               b6ba005bc4c0a19181599e9d1bcf7b74
               aca48b60bf5e254e546d809313e083a3
sframe_key: afe92c81e0df8c00fab619e0559fe5ae
            efce1ef77789d4c728af1b1c1f2e3552
            c405d274415a5291ec075c2d9954c450
            fbd36682a4e978494808b703ce78b409
            f9fec29b91e6e703a75c4131377c80c9
            d51b8906088092452e2593eb142eea2d
sframe_salt: f6de647bac1263524cfb6533
metadata: 4945544620534672616d65205747
nonce: f6de647bac1263524cfb2054
aad: 99012345674945544620534672616d65
     205747
pt: 64726166742d696574662d736672616d
    652d656e63
ct: 9901234567112a94a288b85b49ffef1d
    279f2830165c39d76cac8884011c
]]></sourcecode>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
