<?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-06" 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-06"/>
    <author fullname="Orie Steele">
      <organization/>
      <address>
        <email>orie@or13.io</email>
      </address>
    </author>
    <author fullname="Steve Lasker">
      <organization/>
      <address>
        <email>stevenlasker@hotmail.com</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="September" day="01"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 51?>

<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 57?>

<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>258:</dt>
        <dd>
          <t>the hash algorithm used to produce the payload.</t>
        </dd>
        <dt>259:</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>260:</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 = #6.18(Hash_Envelope_as_COSE_Sign1)

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

Hash_Envelope_Protected_Header = {
    ? &amp;(alg: 1) =&gt; int,
    &amp;(payload_hash_alg: 258) =&gt; int
    ? &amp;(payload_preimage_content_type: 259) =&gt; uint / tstr
    ? &amp;(payload_location: 260) =&gt; tstr
    * (int / tstr) =&gt; any
}

Hash_Envelope_Unprotected_Header = {
    * (int / tstr) =&gt; any
}
</sourcecode>
      <ul spacing="normal">
        <li>Label <tt>1</tt> (alg) Cryptographic algorithm to use</li>
        <li>Label <tt>258</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>259</tt> (content type of the preimage of the payload) <bcp14>MAY</bcp14> be present in the protected header and <bcp14>MUST NOT</bcp14> be present in the unprotected header.</li>
        <li>Label <tt>260</tt> (payload_location) <bcp14>MAY</bcp14> be present in the protected header and <bcp14>MUST NOT</bcp14> be present 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>259</tt> payload_preimage_content_type.
The difference between content_type (3) and payload_preimage_content_type (259) 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 258, 259, 260 (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>The following informative example demonstrates how to construct a hash envelope for a resource already commonly referenced by its hash.</t>
      <sourcecode type="cbor-diag">
18([ # cose-sign1
  &lt;&lt;{
    / signature alg   / 1: -35, # ES384
    / key identifier  / 4: h'75726e3a...32636573',
    / cose sign1 type / 16: "application/example+cose",
    / hash algorithm  / 258: -16, # sha256
    / media type      / 259: "application/spdx+json",
    / location        /
         260: "https://sbom.example/.../manifest.spdx.json"
  }&gt;&gt;
  / unprotected / {},
  / payload     / h'935b5a91...e18a588a',
         # As seen in manifest.spdx.json.sha256
  / signature   / h'15280897...93ef39e5'
         # ECDSA Signature with SHA 384 and P-384
])
</sourcecode>
      <t>In this example, an SPDX software bill of materials (SBOM) in JSON format is already commonly identified by its SHA256 hash.
For example, some tooling generates a file, such as <tt>manifest.spdx.json.sha256</tt>, which contains the SHA256 hash of the corresponding <tt>manifest.spdx.json</tt> file.</t>
      <t>The content type for <tt>manifest.spdx.json</tt> is already well known as <tt>application/spdx+json</tt>, and is <eref target="https://www.iana.org/assignments/media-types/application/spdx+json">registered with IANA</eref>.</t>
      <t>The full JSON SBOM is available at a URL, such as <tt>https://sbom.example/.../manifest.spdx.json</tt>.</t>
      <t>The payload of this COSE_Sign1 is the SHA256 hash of the <tt>manifest.spdx.json</tt>, which is typically found in an adjacent file (<tt>manifest.spdx.json.sha256</tt>).</t>
      <t>The type of this COSE_Sign1 is <tt>application/example+cose</tt>, but other types may be used to establish more specific media types for signatures of hashes.</t>
      <t>The signature is produced using ES384 which means using ECDSA with SHA384 hash function and P-384 elliptic curve.</t>
      <t>This example is chosen to highlight that an existing system may use a hash algorithm such as sha256.
This hash becomes the payload of a COSE-Sign1.
When signed with a signature algorithm that is parameterized via a hash function, such as ECDSA with SHA384, the to be signed structure as described in Section 4.4 of RFC9052.</t>
      <t>The resulting signature is computed over the protected header and payload, providing integrity and authenticity for the hash algorithm, content type and location of the associated resource, in this case a software bill of materials.</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.
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 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>
        <t>When present in a protected header, the semantics are the same as for a COSE_Sign1: decrypted payload is expected to be the output of the hash function specified in the protected header.</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>
        <table anchor="iana-header-params">
          <name>Newly registered COSE Header Parameters &br;(1): Value Registry &br;(2): https://www.iana.org/assignments/cose/cose.xhtml#algorithms &br;(3): https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Label</th>
              <th align="left">Value Type</th>
              <th align="left">(1)</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">258</td>
              <td align="left">int</td>
              <td align="left">(2)</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">259</td>
              <td align="left">uint / tstr</td>
              <td align="left">(3)</td>
              <td align="left">The content-format number or content-type (media-type name) 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">260</td>
              <td align="left">tstr</td>
              <td align="left">(none)</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="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>
        <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-18"/>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="7" month="July" 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 -18
   // corrects a few omissions from -17; it is not intended to make
   // technical changes from -17.  It is intended for use as an input
   // document for the CBOR WG meeting at IETF 123.

              </t>
            </abstract>
          </front>
        </reference>
        <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>
      </references>
    </references>
    <?line 217?>

<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@or13.io)</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 (stevenlasker@hotmail.com)</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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
yXUsXpmSwvVe9D+KTi0XfzUAAA==

-->

</rfc>
