<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 2.5.1) -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cose-hash-envelope-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.46.0 -->
  <front>
    <title>COSE Hash Envelope</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hash-envelope-02"/>
    <author fullname="Orie Steele">
      <organization>Transmute</organization>
      <address>
        <email>orie@transmute.industries</email>
      </address>
    </author>
    <author fullname="Steve Lasker">
      <organization>DataTrails</organization>
      <address>
        <email>steve.lasker@datatrails.ai</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <date year="2025" month="February" day="21"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 56?>

<t>This document defines new COSE header parameters for signaling a payload as an output of a hash function.
This mechanism enables faster validation as access to the original payload is not required for signature validation.
Additionally, hints of the detached payload's content format and availability are defined providing references to optional discovery mechanisms that can help to find original payload content.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://cose-wg.github.io/draft-ietf-cose-hash-envelope/draft-ietf-cose-hash-envelope.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-cose-hash-envelope/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CBOR Object Signing and Encryption Working Group mailing list (<eref target="mailto:cose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cose-wg/draft-ietf-cose-hash-envelope"/>.</t>
    </note>
  </front>
  <middle>
    <?line 62?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>COSE defined detached payloads in Section 2 of <xref target="RFC9052"/>, using <tt>nil</tt> as the payload.
In order to verify a signature over a cose-sign1, the signature checker requires access to the payload content.
Hashes are already used on a regular basis as identifiers for payload data, such as documents or software components.
As hashes typically are smaller than the payload data they represent, they are simpler to transport.
Additional hints in the protected header ensure cryptographic agility for the hashing and signing algorithms.
Hashes and other identifiers are commonly used as hints to discover and distinguish resources.
Using a hash as an identifier for a resource has the advantage of enabling integrity checking.
In some applications, such as remote signing procedures, conveyance of hashes instead original payload content reduce transmission time and costs.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</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&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The terms COSE, CDDL, and EDN are defined in <xref target="RFC9052"/>, <xref target="RFC8610"/>, <xref target="I-D.draft-ietf-cbor-edn-literals"/> respectively.</t>
    </section>
    <section anchor="param-spec">
      <name>Header Parameters</name>
      <t>This document specifies the following new header parameters commonly used alongside hashes to identify resources:</t>
      <dl>
        <dt>TBD_1:</dt>
        <dd>
          <t>the hash algorithm used to produce the payload.</t>
        </dd>
        <dt>TBD_2:</dt>
        <dd>
          <t>the content type of the bytes that were hashed (preimage) to produce the payload, given as a content-format number (<xref section="12.3" sectionFormat="of" target="RFC7252"/>) or as a media-type name optionally with parameters (<xref section="8.3" sectionFormat="of" target="RFC9110"/>).</t>
        </dd>
        <dt>TBD_3:</dt>
        <dd>
          <t>an identifier enabling retrieval of the original resource (preimage) identified by the payload.</t>
        </dd>
      </dl>
    </section>
    <section anchor="hash-envelope-cddl">
      <name>Hash Envelope CDDL</name>
      <sourcecode type="cddl">
Hash_Envelope_Protected_Header = {
    ? &amp;(alg: 1) =&gt; int,
    ? &amp;(payload_hash_alg: TBD_1) =&gt; int
    &amp;(payload_preimage_content_type: TBD_2) =&gt; uint / tstr
    ? &amp;(payload_location: TBD_3) =&gt; tstr
    * int / tstr =&gt; any
}

Hash_Envelope_Unprotected_Header = {
    * int / tstr =&gt; any
}

Hash_Envelope_as_COSE_Sign1 = [
    protected : bstr .cbor Hash_Envelope_Protected_Header,
    unprotected : Hash_Envelope_Unprotected_Header,
    payload: bstr / nil,
    signature : bstr
]

Hash_Envelope = #6.18(Hash_Envelope_as_COSE_Sign1)
</sourcecode>
      <ul spacing="normal">
        <li>Label <tt>1</tt> (alg) Cryptographic algorithm to use</li>
        <li>Label <tt>TBD_1</tt> (payload hash alg) <bcp14>MUST</bcp14> be present in the protected header and <bcp14>MUST NOT</bcp14> be present in the unprotected header.</li>
        <li>Label <tt>TBD_2</tt> (content type of the preimage of the payload) <bcp14>MAY</bcp14> be present in the protected header or unprotected header.</li>
        <li>Label <tt>TBD_3</tt> (payload_location) <bcp14>MAY</bcp14> be added to the protected header and <bcp14>MUST NOT</bcp14> be presented in the unprotected header.</li>
        <li>Label <tt>3</tt> (content_type) <bcp14>MUST NOT</bcp14> be present in the protected or unprotected headers.</li>
      </ul>
      <t>Label <tt>3</tt> is easily confused with label <tt>TBD_2</tt> payload_preimage_content_type.
The difference between content_type (3) and payload_preimage_content_type (TBD2) is content_type is used to identify the content format associated with payload, whereas payload_preimage_content_type is used to identify the content format of the bytes which are hashed to produce the payload.</t>
      <t>Profiles that rely on this specification <bcp14>MAY</bcp14> choose to mark TBD_1, TBD_2, TBD_3 (or other header parameters) critical, see <xref section="C.1.3" sectionFormat="of" target="RFC9052"/> for more details.</t>
    </section>
    <section anchor="envelope-edn">
      <name>Envelope EDN</name>
      <t>A hashed payload functions equivalently to an attached payload, with the benefits of being compact in size and providing the ability to validate the signature.</t>
      <sourcecode type="cbor-diag">
18(                                    / COSE Sign 1               /
   [
    &lt;&lt;{
      1:-35,                          / alg : ES384                /
      4: h'75726e3a...32636573',      / kid                        /
      16: "application/example+cose", / typ                        /
      TBD_1: -16                      / payload_hash_alg : sha-256 /
                                   / payload_preimage_content_type /
      TBD_2: 51                    / "application/json-patch+json" /
      TBD_3: "https://blob.example/a24f9c19"/ payload_location     /
    }&gt;&gt;
    {}                                 / Unprotected               /
    h'935b5a91...e18a588a',            / Payload                   /
    h'15280897...93ef39e5'             / Signature                 /
   ]
)
</sourcecode>
      <t>In this example, the sha256 hash algorithm (-16) is used to hash the payload, which is of content type <tt>application/json-patch+json</tt> identified by the content format <tt>51</tt>.
The full payload is located at "https://storage.example/244f...9c19".
The COSE_sign1 is of type "application/example+cose".
The sha256 hash is signed with ES384 which starts by taking the sha384 hash of the payload (which is a sha256 hash).</t>
    </section>
    <section anchor="encrypted-hashes">
      <name>Encrypted Hashes</name>
      <t>When present in COSE_Encrypt, the header parameters registered in this document leak information about the ciphertext.
These parameters <bcp14>SHOULD NOT</bcp14> be present in COSE_Encrypt headers unless this disclosure is acceptable.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="choice-of-hash-function">
        <name>Choice of Hash Function</name>
        <t>It is <bcp14>RECOMMENDED</bcp14> to align the strength of the chosen hash function to the strength of the chosen signature algorithm.
For example, when signing with ECDSA using P-256 and SHA-256, use SHA-256 to hash the payload.
It is also possible to use this specification with signature algorithms that support pre-hashing such as Ed25519ph which is described in <xref target="RFC8032"/>, or HashML-DSA which is described in <xref target="FIPS-204"/>.
Note that when using a pre-hash algorithm, the algorithm <bcp14>SHOULD</bcp14> be registered in the IANA COSE Algorithms registry, and should be distinguishable from non-pre hash variants that may also be present.
The approach this specification takes is just one way to perform application agnostic pre-hashing, meaning the pre hashing is not done with binding or consideration for a specific application context, while preforming application (cose) specific signing, meaning the to be signed bytes include the cose structures necessary to distinguish a cose signature from other digital signature formats.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cose-header-parameters">
        <name>COSE Header Parameters</name>
        <t>IANA is requested to add the COSE header parameters defined in <xref target="param-spec"/>, as listed in <xref target="iana-header-params"/>, to the "COSE Header Parameters" registry <xref target="IANA.cose_header-parameters"/> in the 'Integer values from 256 to 65535' range ('Specification Required' Registration Procedure)..</t>
        <t>All new entries use https://www.iana.org/assignments/cose/cose.xhtml#algorithms as the value for the "Value Registry" column.</t>
        <table anchor="iana-header-params">
          <name>Newly registered COSE Header Parameters</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Label</th>
              <th align="left">Value Type</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>payload-hash-alg</tt></td>
              <td align="left">TBD_1 (requested assignment: TBD)</td>
              <td align="left">int</td>
              <td align="left">The hash algorithm used to produce the payload of a COSE_Sign1</td>
              <td align="left">RFCthis, <xref target="param-spec"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>preimage content type</tt></td>
              <td align="left">TBD_2 (requested assignment: TBD)</td>
              <td align="left">uint / tstr</td>
              <td align="left">The content-format or media-type of data that has been hashed to produce the payload of the COSE_Sign1</td>
              <td align="left">RFCthis, <xref target="param-spec"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>payload-location</tt></td>
              <td align="left">TBD_3 (requested assignment: TBD)</td>
              <td align="left">tstr</td>
              <td align="left">The string or URI hint for the location of the data hashed to produce the payload of a COSE_Sign1</td>
              <td align="left">RFCthis, <xref target="param-spec"/></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="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7252"/>
            <seriesInfo name="RFC" value="7252"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <seriesInfo name="DOI" value="10.17487/RFC8610"/>
            <seriesInfo name="RFC" value="8610"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <seriesInfo name="DOI" value="10.17487/RFC9052"/>
            <seriesInfo name="RFC" value="9052"/>
            <seriesInfo name="STD" value="96"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <seriesInfo name="DOI" value="10.17487/RFC9110"/>
            <seriesInfo name="RFC" value="9110"/>
            <seriesInfo name="STD" value="97"/>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.draft-ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-16"/>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="8" month="January" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing EDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present
   // revision (-16) addresses the first half of the WGLC comments,
   // except for the issues around the specific way how to best achieve
   // pluggable ABNF grammars for application-extensions.  It is
   // intended for use as a reference document for the mid-WGLC CBOR WG
   // interim meeting on 2025-01-08.

              </t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <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>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <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>
        </reference>
        <reference anchor="IANA.cose_header-parameters" target="https://www.iana.org/assignments/cose">
          <front>
            <title>COSE Header Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <referencegroup anchor="BCP205" target="https://www.rfc-editor.org/info/bcp205">
          <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942">
            <front>
              <title>Improving Awareness of Running Code: The Implementation Status Section</title>
              <seriesInfo name="DOI" value="10.17487/RFC7942"/>
              <seriesInfo name="RFC" value="7942"/>
              <seriesInfo name="BCP" value="205"/>
              <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>
          </reference>
        </referencegroup>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <seriesInfo name="DOI" value="10.17487/RFC8032"/>
            <seriesInfo name="RFC" value="8032"/>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="FIPS-204" target="https://doi.org/10.6028/NIST.FIPS.204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 206?>

<section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to RFC Editor: Please remove this section as well as references to <xref target="BCP205"/> before AUTH48.</t>
      <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="BCP205"/>.
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="BCP205"/>, "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>
      <section anchor="transmute-prototype">
        <name>Transmute Prototype</name>
        <t>Organization: Transmute Industries Inc</t>
        <t>Name: https://github.com/transmute-industries/transmute</t>
        <t>Description: A command line tool and GitHub action for securing software artifacts in GitHub workflows.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version ('main') implements this specification and demonstrates hash envelope signing with Azure Key Vault and Google Cloud KMS in addition to supporting local keys.</t>
        <t>License: Apache-2.0</t>
        <t>Implementation Experience: No interop testing has been done yet. The code works as proof of concept, but is not yet production ready.</t>
        <t>Contact: Orie Steele (orie@transmute.industries)</t>
      </section>
      <section anchor="datatrails-preview">
        <name>DataTrails Preview</name>
        <t>Organization: DataTrails</t>
        <t>Name: https://github.com/datatrails/scitt-action</t>
        <t>Description: A GitHub Action for registering statements about artifacts on a transparency service.</t>
        <t>Maturity: Preview</t>
        <t>Coverage: The current version ('main') implements this specification and demonstrates hash envelope signing with DataTrails implementation of SCITT.</t>
        <t>License: MIT</t>
        <t>Implementation Experience: Interop testing has been performed between DigiCert and DataTrails. The code works as proof of concept, but is not yet production ready.</t>
        <t>Contact: Steve Lasker (steve.lasker@datatrails.ai)</t>
      </section>
      <section anchor="digicert-preview">
        <name>DigiCert Preview</name>
        <t>Organization: DigiCert</t>
        <t>Name: https://github.com/digicert/scitt-action</t>
        <t>Description: A GitHub Action for remote signing and registering statements about artifacts on a transparency service.</t>
        <t>Maturity: Preview</t>
        <t>Coverage: The current version ('main') implements this specification and demonstrates hash envelope signing with DigiCert Software Trust Manager.</t>
        <t>License: MIT</t>
        <t>Implementation Experience: Interop testing has been performed between DigiCert and DataTrails. The code works as proof of concept, but is not yet production ready.</t>
        <t>Contact: Corey Bonnell (Corey.Bonnell@digicert.com)</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The following individuals provided input into the final form of the document: Carsten Bormann, Henk Birkholz, Antoine Delignat-Lavaud, Cedric Fournet.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ccvDtjhWYaoD8S7JKXv3vX8BfY5RsG4yAAA=

-->

</rfc>
