<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-barnes-sframe-iana-256-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="SFrame IANA Updates">Updates to SFrame Cipher Suites Registry</title>
    <seriesInfo name="Internet-Draft" value="draft-barnes-sframe-iana-256-00"/>
    <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="2025" month="September" day="18"/>
    <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>The "Change Controller" entry should be removed.</t>
        <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>
            </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>
            </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>
            </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>
            </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>
            </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>
            </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>
            </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>
            </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>
            </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>
            </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>
            </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>
            </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 178?>

<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 encryption 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:
H4sIAAAAAAAAA91a6XLbSJL+j6eopf/Ys6KE+2BMz7Tax7R3ffTK9sx2bGxI
haqCiDEJcAFQstrufpZ9ln2y/bKqQAIkJcs9M+GYZtg0UEdWnl9mFj2dTp2u
7BZqxibvVpJ3qmVdzd48a/hSscflaq4a9mZd0viZuizbrrmZODzPG3WFLXbd
89NXp8xunzgC/1zWzc2MlVVRO46sRYVVMyYbXnTTnDeVaqdtQVunJa/41I/i
qes67Tpflm1b1lV3s8L650/fPnOq9TJXzcwh4jNH1FWrqnbdzljXrJUDJgKH
N4qDmdPValHicOxvGa8kGOaL6dtyqSbOdd28v2zq9YqYVmLdKPZSyZIzLQCY
fq9usEbOHDa10tOTaG5WXX3Z8NX8xrlS1RosMHYnIcYM85O/4MiyumR/otU0
vuTlAuNG8G9L1RXHdXNJM7wRc8zMu27Vzk5OaCENlVfquF92QgMneVNft+rE
kDihrZdlN1/n2JyXxbox0p/s6JbWLcg23eCQwfpjQ+S4rHd3ntxlsuN5t1xM
HIevu3ndkOZwDmPFerEw9j4rxZw3kn2nt+tJSMKr8id97Az+1YpajyujnGaR
f1uuro7bD/vUni65ZK+XvOEHKJHt1ZCSqmnlt5zGj0W93Kd32tQVO6vhTvCv
y/vQ5Nhx3PQ7BrQdp6qbJbZdwT8c8vrNG2Nvofc/K9HVTTvT1Pp4s8FD88wu
mJgFvLlUsFVvKmsenHRyh5VP8kWdk+9UJ2Tq6ZUhOXqZctWS5f7a1pU+SkcV
810/mrqZ40ynU8ZzBDkXneO8nZctQ/Sul6rqGJeyUW1LAHFds9pGaosgZ91c
MRsMJgzYQyPcI7Zq6q4W9cJpV0qUhY3PY8aelU3bHemtUhVlVdI4qws9ogGl
sXjDoM4+JoVGpNYAEnjoWtaqK9XwBSuXq7rpODgtSrWQLc4YC9Co/1lDF+B/
zjt9hAOZ8AaL2j0aNjQ7JCYYAd502NsaxgYLiScI3BBh/G1K1R470EFdSSPU
6dPTJ7QdEqyFli3nrZIMD6dP30wfvz3Th33/8vQxIy71oTS90AI7RMPz02le
dhARR5XdDVtA1sUBwUhRUAtbwecXC7UYHdw6EJfIEcweIGfMviylhLs7D9hz
iFNLs5ec4LO2ZSPbbvTHq307WgMyY0EtiWLa+LDgwA/gVB8/4lj9kh57pP9/
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
PJnEgos0TUPX84QBlP8HbvvbIdczAAA=

-->

</rfc>
