<?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.35 (Ruby 4.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-liao-cose-sm-algorithms-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="COSE and JOSE ShangMi Algorithms">COSE and JOSE Registrations for ShangMi (SM) Cryptographic Algorithms</title>

    <author fullname="Lijun Liao">
      <organization>NIO Inc.</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>lijun.liao@nio.io</email>
      </address>
    </author>
    <author fullname="Guilin Wang">
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <postal>
          <country>Singapore</country>
        </postal>
        <email>wang.guilin@huawei.com</email>
      </address>
    </author>
    <author fullname="Heng Cai">
      <organization>Alibaba Cloud</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>caiheng.cai@alibaba-inc.com</email>
      </address>
    </author>
    <author fullname="Xinyuan Zhai">
      <organization>TrustAsia</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>edwin.zhai@trustasia.com</email>
      </address>
    </author>

    <date year="2026" month="October" day="30"/>

    <area>Security</area>
    <workgroup>CBOR Object Signing and Encryption</workgroup>
    <keyword>JOSE</keyword> <keyword>COSE</keyword> <keyword>SM2</keyword> <keyword>SM3</keyword> <keyword>SM4</keyword> <keyword>ShangMi</keyword> <keyword>curveSM2</keyword>

    <abstract>


<?line 207?>

<t>This document registers code points for the use of the Chinese
ShangMi (SM) cryptographic algorithms with CBOR Object Signing and
Encryption (COSE) and JSON Object Signing and Encryption (JOSE): the
elliptic curve curveSM2, the SM2 digital signature algorithm with the
SM3 hash function, SM2 public key encryption for content key
transport, HMAC-SM3, and the SM4 block cipher in GCM mode. For COSE,
it additionally registers the SM3 hash function, key derivation with
HKDF-SM3, and SM4 in CCM mode.</t>



    </abstract>



  </front>

  <middle>


<?line 218?>

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

<t>The ShangMi (SM) algorithms are a set of cryptographic algorithms
published by the Chinese government and adopted by ISO/IEC: the
elliptic curve public key algorithm SM2 <xref target="ISO-SM2"/>, the hash function
SM3 <xref target="ISO-SM3"/>, and the block cipher SM4 <xref target="ISO-SM4"/>. <xref target="RFC8998"/>
specifies how these algorithms are used in TLS 1.3.</t>

<t>CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/> <xref target="RFC9053"/>
uses algorithm identifiers and elliptic curve identifiers registered in
the "COSE Algorithms" and "COSE Elliptic Curves" registries
<xref target="IANA.COSE"/>. No identifiers for the ShangMi algorithms have been
registered so far. The same holds for JSON Object Signing and
Encryption (JOSE) <xref target="RFC7515"/> <xref target="RFC7516"/> <xref target="RFC7517"/> <xref target="RFC7518"/> and
its "JSON Web Signature and Encryption Algorithms" and "JSON Web Key
Elliptic Curve" registries <xref target="IANA.JOSE"/>. This document fills that
gap: it defines how the SM algorithms are used with COSE and with
JOSE and requests the corresponding registrations. Like <xref target="RFC8812"/>
and <xref target="RFC9864"/>, it covers both COSE and JOSE in one document.</t>

<t>This document follows the patterns established by earlier COSE
algorithm documents: <xref target="RFC9053"/> for signature, MAC, content
encryption, and key distribution algorithms; <xref target="RFC9054"/> and
<xref target="RFC9861"/> for hash functions; and <xref target="RFC9864"/> for fully-specified
algorithm identifiers.</t>

<t>The COSE algorithms defined in this document are:</t>

<texttable title="COSE Algorithms Defined in This Document" anchor="algorithms-defined">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Section</ttcol>
      <ttcol align='left'>Purpose</ttcol>
      <c>SM2-SM3</c>
      <c><xref target="sm2-sm3"/></c>
      <c>Signature</c>
      <c>SM3</c>
      <c><xref target="sm3"/></c>
      <c>Hash</c>
      <c>HMAC-SM3</c>
      <c><xref target="hmac-sm3"/></c>
      <c>MAC</c>
      <c>SM4-GCM</c>
      <c><xref target="sm4-gcm"/></c>
      <c>Content encryption, AEAD</c>
      <c>SM4-CCM-16-64-128</c>
      <c><xref target="sm4-ccm"/></c>
      <c>Content encryption, AEAD</c>
      <c>SM4-CCM-16-128-128</c>
      <c><xref target="sm4-ccm"/></c>
      <c>Content encryption, AEAD</c>
      <c>direct+HKDF-SM3</c>
      <c><xref target="direct-hkdf-sm3"/></c>
      <c>Key derivation</c>
      <c>SM2-ENC-SM3</c>
      <c><xref target="sm2-enc-sm3"/></c>
      <c>Key transport</c>
</texttable>

<t>The JOSE algorithms defined in this document are:</t>

<texttable title="JOSE Algorithms Defined in This Document" anchor="jose-algorithms-defined">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Usage</ttcol>
      <ttcol align='left'>Section</ttcol>
      <ttcol align='left'>Purpose</ttcol>
      <c>SM2-SM3</c>
      <c>alg</c>
      <c><xref target="jose-sm2-sm3"/></c>
      <c>JWS signature</c>
      <c>HS-SM3</c>
      <c>alg</c>
      <c><xref target="jose-hs-sm3"/></c>
      <c>JWS MAC</c>
      <c>SM4GCM</c>
      <c>enc</c>
      <c><xref target="jose-sm4gcm"/></c>
      <c>JWE content encryption</c>
      <c>SM2-ENC-SM3</c>
      <c>alg</c>
      <c><xref target="jose-sm2-enc"/></c>
      <c>JWE key encryption</c>
</texttable>

<t>In addition, this document registers the elliptic curve curveSM2 for
both COSE (<xref target="curvesm2"/>) and JOSE (<xref target="jose-curvesm2"/>).</t>

<t>The following algorithms are intentionally not defined in this
document:</t>

<t><list style="symbols">
  <t>HMAC-SM3 with a truncated tag, the counterpart of HMAC 256/64 in
<xref target="RFC9053"/>: no use in COSE is known, and the constrained protocols
OSCORE <xref target="RFC8613"/> and EDHOC <xref target="RFC9528"/> do not use COSE MAC
algorithms.</t>
  <t>SM4 in CTR and CBC mode, the counterparts of AES-CTR and AES-CBC in
<xref target="RFC9459"/>: these modes provide no integrity protection and are
only suitable for special cases in which integrity is provided by
another mechanism.</t>
  <t>SM4 in CBC mode combined with HMAC-SM3 for JWE, the counterpart of
A128CBC-HS256 in <xref target="RFC7518"/>: this combination is not specified
anywhere else, and SM4GCM covers the use case.</t>
  <t>SM4-CCM variants other than those with L = 16 (<xref target="sm4-ccm"/>).</t>
</list></t>

<t>These algorithms can be specified in a separate document if a need
arises.</t>

<section anchor="motivation"><name>Motivation</name>

<t>In China, the use of the SM algorithms is promoted by law and by
national standards. The Cryptography Law of the People's Republic of
China <xref target="CRYPTO-LAW"/> establishes the framework for commercial
cryptography, and national standards such as <xref target="GBT.39786-2021"/>
specify the basic requirements for the use of cryptography in
information systems, based on the SM algorithms. Products and
services deployed in China are therefore often required, or at least
recommended, to protect data with the SM algorithms. Without
registered code points, such deployments cannot use COSE and JOSE in
an interoperable way and resort to private-use or proprietary
identifiers.</t>

<t>A prominent example is the intelligent and connected vehicle. The
draft mandatory national standard "Technical requirements for vehicle
cryptography application" <xref target="VEHICLE-CRYPTO"/>, proposed by the Ministry
of Industry and Information Technology and the State Cryptography
Administration, requires that the cryptographic algorithms used in
vehicles conform to national, industry, or international
cryptographic standards and meet the requirements of the national
cryptography administration. It requires digital signatures or
message authentication codes for, among others, secure boot,
software updates, remote control, diagnostics, and communication with
cloud platforms, and it requires encryption to protect important data
and sensitive personal information.</t>

<t>COSE is particularly well suited to the vehicle. Many electronic
control units (ECUs) are constrained devices, and in-vehicle networks
such as CAN and CAN FD carry only small frames at limited bandwidth.
The compact binary encoding of CBOR and the small overhead of COSE
fit these conditions better than text-based formats. COSE can be used
in the vehicle, for example, for:</t>

<t><list style="symbols">
  <t>verifying the authenticity and integrity of firmware and software
during secure boot and software updates, including over-the-air
updates, with Software Updates for Internet of Things (SUIT)
manifests <xref target="I-D.ietf-suit-manifest"/>, which implement the SUIT
information model <xref target="RFC9124"/> and are protected with COSE;</t>
  <t>protecting the integrity of the records of event data recorders
and of the data recording systems for automated driving, and of
security logs, with COSE_Sign1 or COSE_Mac0;</t>
  <t>protecting messages between ECUs, and between ECUs and diagnostic
tools, with OSCORE <xref target="RFC8613"/>, with keys established by EDHOC
<xref target="RFC9528"/>;</t>
  <t>carrying authorization for diagnostic and remote control access in
CBOR Web Tokens (CWTs) <xref target="RFC8392"/>; and</t>
  <t>attesting the state of ECUs with Entity Attestation Tokens
<xref target="RFC9711"/>.</t>
</list></t>

<t>JOSE, on the other hand, is widely used in the interaction between
vehicles, cloud platforms such as telematics service provider (TSP)
and over-the-air update (OTA) platforms, mobile applications, and
third-party services, which is mostly based on HTTP and JSON. Typical
uses are:</t>

<t><list style="symbols">
  <t>access tokens for the APIs of cloud platforms, such as OAuth 2.0
access tokens in the JSON Web Token (JWT) format <xref target="RFC7519"/>
<xref target="RFC9068"/>;</t>
  <t>signing remote control commands that are issued by a mobile
application and relayed through a cloud platform to the vehicle,
with JWS; and</t>
  <t>encrypting important data and sensitive personal information sent
from the vehicle to the cloud platform, with JWE.</t>
</list></t>

<t>Transport security such as TLS or TLCP <xref target="GBT.38636-2020"/> protects data only between the
endpoints of each connection. COSE and JOSE protect the objects
themselves, so that the protection is maintained end to end across
intermediaries such as cloud platforms, and while the data is stored.</t>

<t>The code points registered by this document allow these technologies
to be used with the SM algorithms.</t>

</section>
<section anchor="requirements-notation-and-conventions"><name>Requirements Notation and Conventions</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="terminology"><name>Terminology</name>

<t>The terms "COSE_Key", "COSE_Sign1", "COSE_Mac0", "COSE_Encrypt0",
"COSE_Encrypt", "COSE_recipient", "Sig_structure", "MAC_structure",
"Enc_structure", and "COSE_KDF_Context" are used as defined in
<xref target="RFC9052"/> and <xref target="RFC9053"/>. The terms "JWS Signing Input", "JWS
Signature", "JWE Encrypted Key", "JWE Initialization Vector", "JWE
Ciphertext", "JWE Authentication Tag", and "Additional Authenticated
Data (AAD)" are used as defined in <xref target="RFC7515"/> and <xref target="RFC7516"/>.</t>

<t>COSE key operation values are given by their name in Table 5 of
<xref target="RFC9052"/>, followed by their integer value in parentheses, e.g.,
"MAC create" (9). In a COSE_Key, the "key_ops" parameter contains the
integer values.</t>

<dl>
  <dt>SM3(x):</dt>
  <dd>
    <t>The SM3 hash of the octet string x, a 32-octet value.</t>
  </dd>
  <dt>x || y:</dt>
  <dd>
    <t>The concatenation of the octet strings x and y.</t>
  </dd>
  <dt>I2OSP(x, l):</dt>
  <dd>
    <t>The big-endian, l-octet representation of the non-negative
integer x.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="curvesm2"><name>The Elliptic Curve curveSM2</name>

<t>The elliptic curve curveSM2 is the 256-bit prime field Weierstrass
curve y^2 = x^3 + ax + b defined in <xref target="GBT.32918.5-2017"/> and
<xref target="ISO-SM2"/>. It is the curve that <xref target="RFC8998"/> uses for signatures and
key exchange in TLS 1.3, and this document uses the same name. The
curve is also known as sm2p256v1 and is identified by the object
identifier 1.2.156.10197.1.301 <xref target="GMT.0006-2012"/>. Its parameters are:</t>

<figure title="Parameters of curveSM2"><artwork><![CDATA[
p  = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
     FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
a  = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
     FFFFFFFF 00000000 FFFFFFFF FFFFFFFC
b  = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7
     F39789F5 15AB8F92 DDBCBD41 4D940E93
n  = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
     7203DF6B 21C6052B 53BBF409 39D54123
Gx = 32C4AE2C 1F198119 5F990446 6A39C994
     8FE30BBF F2660BE1 715A4589 334C74C7
Gy = BC3736A2 F4F6779C 59BDCEE3 6B692153
     D0A9877C C62A4740 02DF32E5 2139F0A0
h  = 1
]]></artwork></figure>

<t>Here p is the field prime, a and b are the curve coefficients, n is
the order of the base point G = (Gx, Gy), and h is the cofactor.</t>

<section anchor="sm2-key"><name>COSE Key Representation</name>

<t>Keys on curveSM2 use the "EC2" key type defined in Section 7.1 of
<xref target="RFC9053"/>. The "crv" key parameter is set to curveSM2 (TBD1). The
"x", "y", and "d" parameters each contain a 32-octet value, encoded as
specified for EC2 keys in <xref target="RFC9053"/>. Point compression ("y" encoded
as a Boolean) <bcp14>MAY</bcp14> be used as specified there.</t>

<t>The same curveSM2 key pair <bcp14>SHOULD NOT</bcp14> be used with both SM2-SM3 and
SM2-ENC-SM3. A COSE_Key
for curveSM2 <bcp14>SHOULD</bcp14> contain the "alg" parameter to restrict the key to
one algorithm.</t>

</section>
</section>
<section anchor="signatures"><name>Signature Algorithm</name>

<section anchor="sm2-sm3"><name>SM2 with SM3</name>

<t>This section defines the use of the SM2 digital signature algorithm
<xref target="ISO-SM2"/> <xref target="GBT.32918.2-2016"/> on curveSM2 with the SM3 hash
function. The algorithm identifier is fully specified in the sense of
<xref target="RFC9864"/>: it determines both the curve and the hash function.</t>

<texttable title="SM2 Signature Algorithm Value">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>SM2-SM3</c>
      <c>TBD2</c>
      <c>SM2 signature using curveSM2 and SM3</c>
</texttable>

<section anchor="sm2-id"><name>Distinguishing Identifier</name>

<t>The SM2 signature algorithm hashes a value Z, which binds the signature
to the public key and to a distinguishing identifier ID of the signer:</t>

<figure><artwork><![CDATA[
Z = SM3(ENTL || ID || a || b || Gx || Gy || xA || yA)
]]></artwork></figure>

<t>ENTL is the bit length of ID, encoded as a 2-octet big-endian
integer. a, b, Gx, and Gy are the curve parameters from <xref target="curvesm2"/>,
and (xA, yA) is the signer's public key. All of these field elements
are encoded as 32-octet big-endian values.</t>

<t>For COSE, ID <bcp14>MUST</bcp14> be the 16-octet ASCII string "1234567812345678"
(0x31, 0x32, ..., 0x38, 0x31, ..., 0x38), which is the default
identifier defined in <xref target="GMT.0009-2012"/>. This document does not
define a way to signal a different identifier.</t>

<t>This follows the approach taken for other COSE signature algorithms
whose underlying primitive accepts an additional context input:
ML-DSA-44, ML-DSA-65, and ML-DSA-87 <xref target="RFC9964"/> require the "ctx"
parameter to be the empty string, and Ed448 <xref target="RFC9053"/> <xref target="RFC9864"/>
provides no means to signal a context, so the empty context is
used. For SM2, the default identifier plays the role of the empty
context: it is the value that SM2 implementations use when no
identifier is configured, so it ensures interoperability. Domain
separation and binding to application data are achieved, as for the
other COSE signature algorithms, through the protected header
parameters and the external_aad of the Sig_structure (<xref target="RFC9052"/>).</t>

</section>
<section anchor="signing-and-verification"><name>Signing and Verification</name>

<t>Signing a COSE object with SM2-SM3 uses the procedure in Section 4.4
of <xref target="RFC9052"/>. The message M to be signed is the encoded
Sig_structure (ToBeSigned). The signer:</t>

<t><list style="numbers" type="1">
  <t>computes e = SM3(Z || M), interpreted as a big-endian integer;</t>
  <t>generates a fresh random integer k in [1, n-1] and computes
(x1, y1) = [k]G;</t>
  <t>computes r = (e + x1) mod n. If r = 0 or r + k = n, it returns to
step 2;</t>
  <t>computes s = ((1 + dA)^-1 * (k - r * dA)) mod n, where dA is the
private key. If s = 0, it returns to step 2.</t>
</list></t>

<t>The signature is the 64-octet string I2OSP(r, 32) || I2OSP(s, 32).
This is the same encoding as for ECDSA in Section 2.1 of <xref target="RFC9053"/>.
The signature is not ASN.1 DER encoded.</t>

<t>The verifier checks that r and s are in [1, n-1], computes e as
above, t = (r + s) mod n, and (x1', y1') = [s]G + [t]PA, where PA
is the public key. The signature is valid if (e + x1') mod n = r and
t is not 0.</t>

<t>The SM3 hash over Z || M is part of the signature algorithm.
Implementations whose cryptographic interface takes a precomputed hash
<bcp14>MUST</bcp14> pass e = SM3(Z || M) to that interface, not SM3(M).</t>

</section>
<section anchor="key-requirements"><name>Key Requirements</name>

<t>When a COSE key is used with SM2-SM3, the following checks are made:</t>

<t><list style="symbols">
  <t>The "kty" field <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> be "EC2".</t>
  <t>The "crv" field <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> be curveSM2.</t>
  <t>If the "alg" field is present, it <bcp14>MUST</bcp14> be SM2-SM3.</t>
  <t>If the "key_ops" field is present, it <bcp14>MUST</bcp14> include "sign" (1) when
signing and "verify" (2) when verifying.</t>
</list></t>

</section>
</section>
</section>
<section anchor="sm3"><name>Hash Algorithm</name>

<t>This section registers the SM3 hash function <xref target="ISO-SM3"/>
<xref target="GBT.32905-2016"/> for use with COSE, for example in the hash
structures of <xref target="RFC9054"/> or in the COSE_CertHash structure of
<xref target="RFC9360"/>. SM3 produces a 256-bit hash value.</t>

<texttable title="SM3 Hash Algorithm Value">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>SM3</c>
      <c>TBD3</c>
      <c>SM3 256-bit Hash</c>
</texttable>

<t>SM3 does not take a key. As specified for the hash functions in
<xref target="RFC9054"/>, the COSE capabilities array for SM3 is therefore empty
(see Section 8 of <xref target="RFC9053"/>).</t>

</section>
<section anchor="hmac-sm3"><name>Message Authentication Code Algorithm</name>

<t>This section defines the use of HMAC <xref target="RFC2104"/> with the SM3 hash
function. HMAC-SM3 is used as described for HMAC in Section 3.1 of
<xref target="RFC9053"/>, with SM3 in place of the SHA-2 hash function.</t>

<texttable title="HMAC-SM3 Algorithm Value">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>HMAC-SM3</c>
      <c>TBD4</c>
      <c>HMAC w/ SM3</c>
</texttable>

<t>As for HMAC with SHA-256 in Section 3.1 of <xref target="RFC9053"/>, the key size
depends on how the key is obtained. For recipient algorithms that
transport the key (such as SM2-ENC-SM3), the size of the HMAC key
<bcp14>SHOULD</bcp14> be the same as the size of the SM3 output, i.e., 256 bits. For
recipient algorithms that derive the key (such as direct+HKDF-SM3),
the derived key <bcp14>MUST</bcp14> be 256 bits long. Implementations creating and
validating MAC values <bcp14>MUST</bcp14> validate that the key type, key length, and
algorithm are correct and appropriate for the entities involved.</t>

<t>The authentication tag is the full 256-bit HMAC output.</t>

<t>When a COSE key is used with HMAC-SM3, the following
checks are made:</t>

<t><list style="symbols">
  <t>The "kty" field <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> be "Symmetric".</t>
  <t>If the "alg" field is present, it <bcp14>MUST</bcp14> match the algorithm being
used.</t>
  <t>If the "key_ops" field is present, it <bcp14>MUST</bcp14> include "MAC create" (9)
when creating a MAC and "MAC verify" (10) when verifying a MAC.</t>
</list></t>

</section>
<section anchor="content-encryption"><name>Content Encryption Algorithms</name>

<t>SM4 <xref target="ISO-SM4"/> <xref target="GBT.32907-2016"/> is a block cipher with a 128-bit
block size and a 128-bit key. The algorithms in this section use SM4
in place of AES in the authenticated encryption modes already used by
COSE.</t>

<section anchor="sm4-gcm"><name>SM4-GCM</name>

<t>SM4 in Galois/Counter Mode <xref target="GCM"/> is used as described for AES-GCM
in Section 4.1 of <xref target="RFC9053"/>, with the following parameters:</t>

<t><list style="symbols">
  <t>The key is 128 bits.</t>
  <t>The nonce is 96 bits. It is carried in the "IV" header parameter,
or is computed from the "Partial IV" header parameter and the base
IV of the key, as described in Section 3.1 of <xref target="RFC9052"/>.</t>
  <t>The authentication tag is 128 bits. The tag is appended to the
ciphertext.</t>
</list></t>

<texttable title="SM4-GCM Algorithm Value">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>SM4-GCM</c>
      <c>TBD5</c>
      <c>SM4-GCM mode w/ 128-bit key, 128-bit tag</c>
</texttable>

<t>The same nonce and key combination <bcp14>MUST NOT</bcp14> be used more than once.</t>

<t>These parameters are the same as for the TLS_SM4_GCM_SM3 cipher suite
of <xref target="RFC8998"/>, whose test vectors therefore also apply to SM4-GCM.</t>

</section>
<section anchor="sm4-ccm"><name>SM4-CCM</name>

<t>SM4 in Counter with CBC-MAC mode <xref target="CCM"/> <xref target="RFC3610"/> is used as
described for AES-CCM in Section 4.2 of <xref target="RFC9053"/>. As with AES-CCM,
two parameters are chosen per algorithm: L, the size in bits of the
length field, which determines the nonce size (15 - L/8 octets), and
M, the size in bits of the authentication tag.</t>

<t>The naming convention "SM4-CCM-L-M-K" follows that of AES-CCM in
<xref target="RFC9053"/>, where K is the key size in bits.</t>

<texttable title="SM4-CCM Algorithm Values">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>L</ttcol>
      <ttcol align='left'>M</ttcol>
      <ttcol align='left'>Nonce Size (octets)</ttcol>
      <c>SM4-CCM-16-64-128</c>
      <c>TBD6</c>
      <c>16</c>
      <c>64</c>
      <c>13</c>
      <c>SM4-CCM-16-128-128</c>
      <c>TBD7</c>
      <c>16</c>
      <c>128</c>
      <c>13</c>
</texttable>

<t>The nonce is carried in the "IV" header parameter, or is computed from
the "Partial IV" header parameter and the base IV of the key. The
same nonce and key combination <bcp14>MUST NOT</bcp14> be used more than once.</t>

<t>Unlike AES-CCM in <xref target="RFC9053"/>, only variants with L = 16 are defined.
With L = 16, the nonce is 13 octets (104 bits) long, and a message is
limited to 2^16 - 1 octets of plaintext. This suits the use cases of
SM4-CCM in COSE, which are constrained environments with short
messages, such as OSCORE <xref target="RFC8613"/> and EDHOC <xref target="RFC9528"/>; the
AES-CCM variants used there also have L = 16. Variants with L = 64
are not defined for the following reasons:</t>

<t><list style="symbols">
  <t>Messages of more than 2^16 - 1 octets are not expected in these
environments. Applications that need to encrypt larger content can
use SM4-GCM.</t>
  <t>With L = 64, the nonce is only 7 octets (56 bits) long, which is
too short for nonces to be generated at random.</t>
  <t>No use of these variants is known.</t>
</list></t>

<t>The TLS_SM4_CCM_SM3 cipher suite of <xref target="RFC8998"/> uses a 12-byte nonce,
which corresponds to L = 24. That combination is not defined here
either, because COSE AES-CCM does not use it.</t>

</section>
<section anchor="key-requirements-for-sm4-aead-algorithms"><name>Key Requirements for SM4 AEAD Algorithms</name>

<t>When a COSE key is used with SM4-GCM or SM4-CCM, the following checks
are made:</t>

<t><list style="symbols">
  <t>The "kty" field <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> be "Symmetric".</t>
  <t>The key <bcp14>MUST</bcp14> be 128 bits long.</t>
  <t>If the "alg" field is present, it <bcp14>MUST</bcp14> match the algorithm being
used.</t>
  <t>If the "key_ops" field is present, it <bcp14>MUST</bcp14> include "encrypt" (3) or
"wrap key" (5) when encrypting, and "decrypt" (4) or "unwrap key"
(6) when decrypting.</t>
</list></t>

</section>
</section>
<section anchor="direct-hkdf-sm3"><name>Key Derivation Algorithm</name>

<t>This section defines the use of HKDF <xref target="RFC5869"/> with HMAC-SM3 as a
direct key derivation algorithm. direct+HKDF-SM3 is used as described
for direct+HKDF-SHA-256 in Section 6.1.2 of <xref target="RFC9053"/>, with HMAC-SM3
in place of HMAC-SHA-256.</t>

<texttable title="direct+HKDF-SM3 Algorithm Value">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>direct+HKDF-SM3</c>
      <c>TBD8</c>
      <c>Shared secret w/ HKDF and SM3</c>
</texttable>

<t>The "info" input to HKDF is the encoded COSE_KDF_Context structure of
Section 5.2 of <xref target="RFC9053"/>. The salt is taken from the "salt" header
parameter if present; otherwise, a string of 32 zero octets is used,
as specified in <xref target="RFC5869"/>. The "PartyU" and "PartyV" header
parameters of Section 5.2 of <xref target="RFC9053"/> <bcp14>MAY</bcp14> be used.</t>

<t>The key requirements are those of Section 6.1.2 of <xref target="RFC9053"/>.</t>

<t>The direct+HKDF-SM3 identifier also identifies HKDF-SM3 where a COSE
algorithm identifier for an HMAC-based HKDF is needed, such as the
HKDF Algorithm of an OSCORE Security Context (Section 3.1 of
<xref target="RFC8613"/>; Section 3.2.1 of <xref target="RFC9203"/>).</t>

</section>
<section anchor="key-distribution"><name>Content Key Distribution Methods</name>

<section anchor="sm2-enc-sm3"><name>SM2 Public Key Encryption with SM3</name>

<t>This section defines the use of the SM2 public key encryption
algorithm <xref target="GBT.32918.4-2016"/> on curveSM2 as a key transport method
(Section 8.5.3 of <xref target="RFC9052"/>), in the same way as RSAES-OAEP is used
in COSE. The algorithm is used only in COSE_recipient structures; the
plaintext is the content encryption key (CEK).</t>

<texttable title="SM2 Key Transport Algorithm Value">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>SM2-ENC-SM3</c>
      <c>TBD9</c>
      <c>SM2 public key encryption using curveSM2 and SM3</c>
</texttable>

<section anchor="encryption"><name>Encryption</name>

<t>Given the recipient's public key PB on curveSM2 and the CEK of klen
octets, the sender:</t>

<t><list style="numbers" type="1">
  <t>generates a fresh random integer k in [1, n-1];</t>
  <t>computes C1 = [k]G = (x1, y1) and (x2, y2) = [k]PB;</t>
  <t>computes t = KDF(I2OSP(x2, 32) || I2OSP(y2, 32), klen). If t
consists only of zero octets, it returns to step 1;</t>
  <t>computes C2 = CEK XOR t;</t>
  <t>computes C3 = SM3(I2OSP(x2, 32) || CEK || I2OSP(y2, 32)).</t>
</list></t>

<t>KDF is the key derivation function of <xref target="GBT.32918.4-2016"/> based on
SM3: KDF(Z, klen) consists of the leftmost klen octets of
SM3(Z || I2OSP(1, 4)) || SM3(Z || I2OSP(2, 4)) || ...</t>

<t>The "ciphertext" field of the COSE_recipient contains</t>

<figure><artwork><![CDATA[
C1 || C3 || C2
]]></artwork></figure>

<t>where C1 is encoded as an uncompressed point <xref target="GBT.32918.1-2016"/>,
i.e., the octet 0x04
followed by I2OSP(x1, 32) and I2OSP(y1, 32), and C3 is 32 octets.
The ciphertext is thus 97 octets longer than the CEK. The ciphertext
is not ASN.1 DER encoded. The order C1 || C3 || C2 is the one
specified in <xref target="GBT.32918.4-2016"/>; the order C1 || C2 || C3 used
by some early implementations <bcp14>MUST NOT</bcp14> be used.</t>

</section>
<section anchor="decryption"><name>Decryption</name>

<t>The recipient parses the ciphertext as C1 || C3 || C2, verifies
that C1 is a point on curveSM2 other than the point at infinity,
computes (x2, y2) = [dB]C1 with its private key dB, and recovers
CEK = C2 XOR KDF(I2OSP(x2, 32) || I2OSP(y2, 32), klen). It then
recomputes C3 and <bcp14>MUST</bcp14> reject the ciphertext if the value does not
match. Implementations <bcp14>SHOULD NOT</bcp14> report which of these checks failed.</t>

</section>
<section anchor="header-parameters-and-key-requirements"><name>Header Parameters and Key Requirements</name>

<t>As for all key transport algorithms (Section 8.5.3 of <xref target="RFC9052"/>),
the "protected" header of the COSE_recipient <bcp14>MUST</bcp14> be a zero-length
byte string, and the "alg" header parameter is placed in the
unprotected header. The recipient's key is typically identified by
the "kid" header parameter.</t>

<t>When a COSE key is used with SM2-ENC-SM3, the following checks are
made:</t>

<t><list style="symbols">
  <t>The "kty" field <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> be "EC2".</t>
  <t>The "crv" field <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> be curveSM2.</t>
  <t>If the "alg" field is present, it <bcp14>MUST</bcp14> be SM2-ENC-SM3.</t>
  <t>If the "key_ops" field is present, it <bcp14>MUST</bcp14> include "encrypt" (3)
when encrypting and "decrypt" (4) when decrypting. As SM2-ENC-SM3 is
a key transport algorithm, the key wrap values "wrap key" and
"unwrap key" do not apply.</t>
</list></t>

</section>
</section>
</section>
<section anchor="jose"><name>JOSE Algorithms</name>

<t>This section defines the use of the SM algorithms with JSON Web
Signature (JWS) <xref target="RFC7515"/>, JSON Web Encryption (JWE) <xref target="RFC7516"/>,
and JSON Web Key (JWK) <xref target="RFC7517"/>. The cryptographic operations are
those specified in the preceding sections; this section specifies the
JOSE-specific inputs and encodings.</t>

<t>JOSE has no registry for hash algorithms and does not use CCM.
Therefore, no JOSE counterparts are defined for SM3 and SM4-CCM. The
"dir" algorithm of <xref target="RFC7518"/> can be used with SM4GCM, so no JOSE
counterpart of direct+HKDF-SM3 is defined.</t>

<section anchor="jose-curvesm2"><name>curveSM2 in JWK</name>

<t>Keys on curveSM2 use the "EC" key type defined in Section 6.2 of
<xref target="RFC7518"/>, with the "crv" parameter set to "curveSM2". The "x",
"y", and "d" parameters contain the base64url encoding of the
32-octet values, as specified in Section 6.2 of <xref target="RFC7518"/>.</t>

<t>The same curveSM2 key pair <bcp14>SHOULD NOT</bcp14> be used with both SM2-SM3 and
SM2-ENC-SM3. A JWK for curveSM2 <bcp14>SHOULD</bcp14> contain the "alg" parameter to
restrict the key to one algorithm.</t>

</section>
<section anchor="jose-sm2-sm3"><name>SM2-SM3 for JWS</name>

<t>The "alg" value "SM2-SM3" denotes the SM2 signature algorithm on
curveSM2 with SM3, as specified in <xref target="sm2-sm3"/>, including the fixed
distinguishing identifier of <xref target="sm2-id"/>. The message M to be signed
is the JWS Signing Input.</t>

<t>The JWS Signature is the 64-octet string I2OSP(r, 32) || I2OSP(s,
32), as for ECDSA in Section 3.4 of <xref target="RFC7518"/>. A verifier <bcp14>MUST</bcp14>
reject a JWS Signature that is not 64 octets long.</t>

<t>When a JWK is used with SM2-SM3, the following checks are made:</t>

<t><list style="symbols">
  <t>The "kty" parameter <bcp14>MUST</bcp14> be "EC", and the "crv" parameter <bcp14>MUST</bcp14> be
"curveSM2".</t>
  <t>If the "alg" parameter is present, it <bcp14>MUST</bcp14> be "SM2-SM3".</t>
  <t>If the "use" parameter is present, it <bcp14>MUST</bcp14> be "sig".</t>
  <t>If the "key_ops" parameter is present, it <bcp14>MUST</bcp14> include "sign" when
signing and "verify" when verifying.</t>
</list></t>

</section>
<section anchor="jose-hs-sm3"><name>HS-SM3 for JWS</name>

<t>The "alg" value "HS-SM3" denotes HMAC <xref target="RFC2104"/> with SM3. It is
used as HS256 is used in Section 3.2 of <xref target="RFC7518"/>, with SM3 in place
of SHA-256: the HMAC is computed over the JWS Signing Input, and the
256-bit HMAC output is the JWS Signature.</t>

<t>As for HS256, a key of 256 bits or larger <bcp14>MUST</bcp14> be used, and the
comparison of the computed HMAC value with the JWS Signature <bcp14>MUST</bcp14> be
done in constant time. The key is represented as a JWK with the "kty"
parameter "oct".</t>

</section>
<section anchor="jose-sm4gcm"><name>SM4GCM for JWE</name>

<t>The "enc" value "SM4GCM" denotes SM4 in Galois/Counter Mode <xref target="GCM"/>.
It is used as A128GCM is used in Section 5.3 of <xref target="RFC7518"/>, with SM4
in place of AES:</t>

<t><list style="symbols">
  <t>The CEK is 128 bits long.</t>
  <t>The JWE Initialization Vector <bcp14>MUST</bcp14> be 96 bits long.</t>
  <t>The JWE Authentication Tag is 128 bits long.</t>
</list></t>

<t>The Additional Authenticated Data is computed as specified in Section
5.1 of <xref target="RFC7516"/>. The parameters are the same as for SM4-GCM in
<xref target="sm4-gcm"/>.</t>

</section>
<section anchor="jose-sm2-enc"><name>SM2-ENC-SM3 for JWE</name>

<t>The "alg" value "SM2-ENC-SM3" denotes SM2 public key encryption on
curveSM2 with SM3, as specified in <xref target="sm2-enc-sm3"/>. It is used for key
encryption, as RSA-OAEP is used in Section 4.3 of <xref target="RFC7518"/>: the
CEK is encrypted to the recipient's public key, and the JWE Encrypted
Key is the SM2 ciphertext C1 || C3 || C2 in the format specified
in <xref target="sm2-enc-sm3"/>. The recipient performs the decryption and the
checks of <xref target="sm2-enc-sm3"/>.</t>

<t>When a JWK is used with SM2-ENC-SM3, the following checks are made:</t>

<t><list style="symbols">
  <t>The "kty" parameter <bcp14>MUST</bcp14> be "EC", and the "crv" parameter <bcp14>MUST</bcp14> be
"curveSM2".</t>
  <t>If the "alg" parameter is present, it <bcp14>MUST</bcp14> be "SM2-ENC-SM3".</t>
  <t>If the "use" parameter is present, it <bcp14>MUST</bcp14> be "enc".</t>
  <t>If the "key_ops" parameter is present, it <bcp14>MUST</bcp14> include "encrypt" or
"wrapKey" when encrypting, and "decrypt" or "unwrapKey" when
decrypting.</t>
</list></t>

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

<t>IANA is requested to register the values in this section in the
registries of the "CBOR Object Signing and Encryption (COSE)" registry
group <xref target="IANA.COSE"/> and of the "JSON Object Signing and Encryption
(JOSE)" registry group <xref target="IANA.JOSE"/>.</t>

<t>All requested COSE values are in the "Specification Required" ranges
defined in <xref target="RFC9053"/> (see also <xref target="RFC8126"/>). The values in
parentheses are suggestions only; the examples in <xref target="examples"/> use
them.</t>

<t>RFC Editor: Please replace TBD1 to TBD9 with the values assigned by
IANA and remove this note.</t>

<section anchor="cose-elliptic-curves-registry"><name>COSE Elliptic Curves Registry</name>

<t>IANA is requested to register the following value in the "COSE
Elliptic Curves" registry. In the "Reference" column, "Section N"
refers to Section N of this document.</t>

<texttable title="COSE Elliptic Curves Registration">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Key Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Recommended</ttcol>
      <c>curveSM2</c>
      <c>TBD1 (260)</c>
      <c>EC2</c>
      <c>SM2 elliptic curve curveSM2 (also known as sm2p256v1)</c>
      <c>IETF</c>
      <c><xref target="curvesm2"/></c>
      <c>No</c>
</texttable>

</section>
<section anchor="cose-algorithms-registry"><name>COSE Algorithms Registry</name>

<t>IANA is requested to register the following values in the "COSE
Algorithms" registry. For all entries, the "Change Controller" column
contains "IETF", and the "Reference" column contains this document
together with the section that defines the algorithm, as listed in
<xref target="algorithms-defined"/>. These two columns are omitted from the table
below so that it fits the page width.</t>

<texttable title="COSE Algorithms Registrations">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Capabilities</ttcol>
      <ttcol align='left'>Recommended</ttcol>
      <c>SM2-SM3</c>
      <c>TBD2 (-269)</c>
      <c>SM2 signature using curveSM2 and SM3</c>
      <c>[kty]</c>
      <c>No</c>
      <c>SM3</c>
      <c>TBD3 (-272)</c>
      <c>SM3 256-bit Hash</c>
      <c>[]</c>
      <c>No</c>
      <c>HMAC-SM3</c>
      <c>TBD4 (262)</c>
      <c>HMAC w/ SM3</c>
      <c>[kty]</c>
      <c>No</c>
      <c>SM4-GCM</c>
      <c>TBD5 (256)</c>
      <c>SM4-GCM mode w/ 128-bit key, 128-bit tag</c>
      <c>[kty]</c>
      <c>No</c>
      <c>SM4-CCM-16-64-128</c>
      <c>TBD6 (257)</c>
      <c>SM4-CCM mode 128-bit key, 64-bit tag, 13-byte nonce</c>
      <c>[kty]</c>
      <c>No</c>
      <c>SM4-CCM-16-128-128</c>
      <c>TBD7 (258)</c>
      <c>SM4-CCM mode 128-bit key, 128-bit tag, 13-byte nonce</c>
      <c>[kty]</c>
      <c>No</c>
      <c>direct+HKDF-SM3</c>
      <c>TBD8 (-271)</c>
      <c>Shared secret w/ HKDF and SM3</c>
      <c>[kty]</c>
      <c>No</c>
      <c>SM2-ENC-SM3</c>
      <c>TBD9 (-270)</c>
      <c>SM2 public key encryption using curveSM2 and SM3</c>
      <c>[kty]</c>
      <c>No</c>
</texttable>

</section>
<section anchor="cose-header-algorithm-parameters-registry"><name>COSE Header Algorithm Parameters Registry</name>

<t>IANA is requested to update the following entries in the "COSE
Header Algorithm Parameters" registry. The "Algorithm" column shows
the algorithm to be added to the existing list of algorithms, and
the "Reference" column shows the reference to be added. The other
columns are unchanged.</t>

<texttable title="COSE Header Algorithm Parameters Updates">
      <ttcol align='left'>Name</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>Label</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>salt</c>
      <c>direct+HKDF-SM3</c>
      <c>-20</c>
      <c>bstr</c>
      <c>Random salt</c>
      <c>This document</c>
      <c>PartyU identity</c>
      <c>direct+HKDF-SM3</c>
      <c>-21</c>
      <c>bstr</c>
      <c>Party U identity information</c>
      <c>This document</c>
      <c>PartyU nonce</c>
      <c>direct+HKDF-SM3</c>
      <c>-22</c>
      <c>bstr / int</c>
      <c>Party U provided nonce</c>
      <c>This document</c>
      <c>PartyU other</c>
      <c>direct+HKDF-SM3</c>
      <c>-23</c>
      <c>bstr</c>
      <c>Party U other provided information</c>
      <c>This document</c>
      <c>PartyV identity</c>
      <c>direct+HKDF-SM3</c>
      <c>-24</c>
      <c>bstr</c>
      <c>Party V identity information</c>
      <c>This document</c>
      <c>PartyV nonce</c>
      <c>direct+HKDF-SM3</c>
      <c>-25</c>
      <c>bstr / int</c>
      <c>Party V provided nonce</c>
      <c>This document</c>
      <c>PartyV other</c>
      <c>direct+HKDF-SM3</c>
      <c>-26</c>
      <c>bstr</c>
      <c>Party V other provided information</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="json-web-signature-and-encryption-algorithms-registry"><name>JSON Web Signature and Encryption Algorithms Registry</name>

<t>IANA is requested to register the following values in the "JSON Web
Signature and Encryption Algorithms" registry. For all entries, the
"JOSE Implementation Requirements" column contains "Optional", the
"Change Controller" column contains "IETF", and the "Reference"
column contains this document together with the section that defines
the algorithm, as listed in <xref target="jose-algorithms-defined"/>.</t>

<texttable title="JSON Web Signature and Encryption Algorithms Registrations">
      <ttcol align='left'>Algorithm Name</ttcol>
      <ttcol align='left'>Algorithm Description</ttcol>
      <ttcol align='left'>Algorithm Usage Location(s)</ttcol>
      <ttcol align='left'>Algorithm Analysis Document(s)</ttcol>
      <c>SM2-SM3</c>
      <c>SM2 signature using curveSM2 and SM3</c>
      <c>alg</c>
      <c><xref target="ISO-SM2"/>, <xref target="ISO-SM3"/></c>
      <c>HS-SM3</c>
      <c>HMAC using SM3</c>
      <c>alg</c>
      <c><xref target="ISO-SM3"/></c>
      <c>SM4GCM</c>
      <c>SM4 GCM using 128-bit key</c>
      <c>enc</c>
      <c><xref target="ISO-SM4"/></c>
      <c>SM2-ENC-SM3</c>
      <c>SM2 public key encryption using curveSM2 and SM3</c>
      <c>alg</c>
      <c><xref target="GBT.32918.4-2016"/></c>
</texttable>

</section>
<section anchor="json-web-key-elliptic-curve-registry"><name>JSON Web Key Elliptic Curve Registry</name>

<t>IANA is requested to register the following value in the "JSON Web
Key Elliptic Curve" registry. In the "Reference" column, "Section N"
refers to Section N of this document.</t>

<texttable title="JSON Web Key Elliptic Curve Registration">
      <ttcol align='left'>Curve Name</ttcol>
      <ttcol align='left'>Curve Description</ttcol>
      <ttcol align='left'>JOSE Implementation Requirements</ttcol>
      <ttcol align='left'>Change Controller</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>curveSM2</c>
      <c>SM2 elliptic curve curveSM2 (also known as sm2p256v1)</c>
      <c>Optional</c>
      <c>IETF</c>
      <c><xref target="jose-curvesm2"/></c>
</texttable>

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

<t>The security considerations of <xref target="RFC9052"/> and <xref target="RFC9053"/> apply to
the COSE algorithms, and those of <xref target="RFC7515"/>, <xref target="RFC7516"/>, and
<xref target="RFC7518"/> apply to the JOSE algorithms. The security considerations
of <xref target="RFC8998"/> apply to the use
of the SM algorithms in general.</t>

<t>curveSM2, SM2, and SM3 are designed to provide approximately 128 bits
of security. SM4 uses a 128-bit key.</t>

<t>SM2 signature generation and SM2 encryption require a fresh, secret,
uniformly random value k for each operation, in both COSE and JOSE.
For signatures, reuse or partial disclosure of k reveals the private
key, as with ECDSA. For encryption, reuse of k with the same recipient
key yields the same key stream and reveals the XOR of the encrypted
CEKs, and disclosure of k reveals the CEK. The fixed values of k used
in <xref target="examples"/> and <xref target="jose-examples"/> are for reproducibility only and
<bcp14>MUST NOT</bcp14> be used in practice. Implementations <bcp14>SHOULD</bcp14> protect the scalar
multiplications against side-channel attacks.</t>

<t>The SM2 signature binds the distinguishing identifier and the public
key through the value Z (<xref target="sm2-id"/>). Because this document fixes the
identifier, it provides no additional binding to a signer identity;
applications that need such binding have to include the identity in
the signed content or in protected header parameters.</t>

<t>An SM2 key pair <bcp14>SHOULD</bcp14> be used for a single algorithm only. Using the
same key for both signature and encryption exposes it to
cross-protocol attacks. For this purpose, the COSE and JOSE
algorithms with the same name (SM2-SM3 and SM2-ENC-SM3) are the same
algorithm.</t>

<t>Recipients of SM2-ENC-SM3 ciphertexts <bcp14>MUST</bcp14> validate that the
received point C1 is on curveSM2 and is not the point at infinity, to prevent invalid-curve attacks.
SM2 decryption failures <bcp14>SHOULD</bcp14> be indistinguishable to an attacker.</t>

<t>SM4 has a 128-bit block size. As with AES, the amount of data
processed with a single key has to be limited. The limits that
<xref target="I-D.irtf-cfrg-aead-limits"/> gives for AES-GCM and AES-CCM apply to
SM4-GCM and SM4-CCM. Nonces <bcp14>MUST NOT</bcp14> be reused with the same key in
any of the SM4 modes defined in this document; for SM4-GCM, reuse of
a nonce destroys both confidentiality and integrity.</t>

<t>Truncated authentication tags (SM4-CCM with M = 64) offer a lower
forgery resistance and <bcp14>SHOULD</bcp14> be used only in
constrained environments where the additional overhead of full tags
is unacceptable.</t>

<t>To avoid cross-protocol concerns, implementations <bcp14>MUST NOT</bcp14> use the
same key with more than one of the SM4 modes.</t>

<t>The HMAC values of HMAC-SM3 and HS-SM3 <bcp14>MUST</bcp14> be compared in constant
time; see also Section 11.5 of <xref target="RFC7516"/>.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2104">
  <front>
    <title>HMAC: Keyed-Hashing for Message Authentication</title>
    <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
    <author fullname="M. Bellare" initials="M." surname="Bellare"/>
    <author fullname="R. Canetti" initials="R." surname="Canetti"/>
    <date month="February" year="1997"/>
    <abstract>
      <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2104"/>
  <seriesInfo name="DOI" value="10.17487/RFC2104"/>
</reference>
<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>
<reference anchor="RFC7516">
  <front>
    <title>JSON Web Encryption (JWE)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7516"/>
  <seriesInfo name="DOI" value="10.17487/RFC7516"/>
</reference>
<reference anchor="RFC7517">
  <front>
    <title>JSON Web Key (JWK)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7517"/>
  <seriesInfo name="DOI" value="10.17487/RFC7517"/>
</reference>
<reference anchor="RFC7518">
  <front>
    <title>JSON Web Algorithms (JWA)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7518"/>
  <seriesInfo name="DOI" value="10.17487/RFC7518"/>
</reference>
<reference anchor="RFC5869">
  <front>
    <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
    <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
    <author fullname="P. Eronen" initials="P." surname="Eronen"/>
    <date month="May" year="2010"/>
    <abstract>
      <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5869"/>
  <seriesInfo name="DOI" value="10.17487/RFC5869"/>
</reference>
<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <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>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>
<reference anchor="RFC9053">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
    <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 a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
      <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9053"/>
  <seriesInfo name="DOI" value="10.17487/RFC9053"/>
</reference>
<reference anchor="RFC9054">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Hash Algorithms</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>The CBOR Object Signing and Encryption (COSE) syntax (see RFC 9052) does not define any direct methods for using hash algorithms. There are, however, circumstances where hash algorithms are used, such as indirect signatures, where the hash of one or more contents are signed, and identification of an X.509 certificate or other object by the use of a fingerprint. This document defines hash algorithms that are identified by COSE algorithm identifiers.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9054"/>
  <seriesInfo name="DOI" value="10.17487/RFC9054"/>
</reference>
<reference anchor="RFC9459">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="September" year="2023"/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) data format is designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) is specified in RFC 9052 to provide basic security services using the CBOR data format. This document specifies the conventions for using AES-CTR and AES-CBC as content encryption algorithms with COSE.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9459"/>
  <seriesInfo name="DOI" value="10.17487/RFC9459"/>
</reference>
<reference anchor="RFC9864">
  <front>
    <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
    <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
    <author fullname="O. Steele" initials="O." surname="Steele"/>
    <date month="October" year="2025"/>
    <abstract>
      <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
      <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9864"/>
  <seriesInfo name="DOI" value="10.17487/RFC9864"/>
</reference>

<reference anchor="ISO-SM2" target="https://www.iso.org/standard/76382.html">
  <front>
    <title>IT Security techniques -- Digital signatures with appendix -- Part 3: Discrete logarithm based mechanisms</title>
    <author >
      <organization>International Organization for Standardization</organization>
    </author>
    <date year="2018" month="November"/>
  </front>
  <seriesInfo name="ISO/IEC" value="14888-3:2018"/>
</reference>
<reference anchor="ISO-SM3" target="https://www.iso.org/standard/67116.html">
  <front>
    <title>IT Security techniques -- Hash-functions -- Part 3: Dedicated hash-functions</title>
    <author >
      <organization>International Organization for Standardization</organization>
    </author>
    <date year="2018" month="October"/>
  </front>
  <seriesInfo name="ISO/IEC" value="10118-3:2018"/>
</reference>
<reference anchor="ISO-SM4" target="https://www.iso.org/standard/81564.html">
  <front>
    <title>Information technology -- Security techniques -- Encryption algorithms -- Part 3: Block ciphers -- Amendment 1: SM4</title>
    <author >
      <organization>International Organization for Standardization</organization>
    </author>
    <date year="2021" month="June"/>
  </front>
  <seriesInfo name="ISO/IEC" value="18033-3:2010/Amd 1:2021"/>
</reference>
<reference anchor="GBT.32918.1-2016" >
  <front>
    <title>Information security technology --- Public key cryptographic algorithm SM2 based on elliptic curves --- Part 1: General</title>
    <author >
      <organization>Standardization Administration of the People's Republic of China</organization>
    </author>
    <date year="2017" month="March"/>
  </front>
  <seriesInfo name="GB/T" value="32918.1-2016"/>
</reference>
<reference anchor="GBT.32918.4-2016" >
  <front>
    <title>Information security technology --- Public key cryptographic algorithm SM2 based on elliptic curves --- Part 4: Public key encryption algorithm</title>
    <author >
      <organization>Standardization Administration of the People's Republic of China</organization>
    </author>
    <date year="2017" month="March"/>
  </front>
  <seriesInfo name="GB/T" value="32918.4-2016"/>
</reference>
<reference anchor="GBT.32918.5-2017" >
  <front>
    <title>Information security technology --- Public key cryptographic algorithm SM2 based on elliptic curves --- Part 5: Parameter definition</title>
    <author >
      <organization>Standardization Administration of the People's Republic of China</organization>
    </author>
    <date year="2017" month="December"/>
  </front>
  <seriesInfo name="GB/T" value="32918.5-2017"/>
</reference>
<reference anchor="GMT.0006-2012" >
  <front>
    <title>Cryptographic application identifier criterion specification</title>
    <author >
      <organization>State Cryptography Administration</organization>
    </author>
    <date year="2012" month="November"/>
  </front>
  <seriesInfo name="GM/T" value="0006-2012"/>
</reference>
<reference anchor="GMT.0009-2012" >
  <front>
    <title>SM2 cryptography algorithm application specification</title>
    <author >
      <organization>State Cryptography Administration</organization>
    </author>
    <date year="2012" month="November"/>
  </front>
  <seriesInfo name="GM/T" value="0009-2012"/>
</reference>
<reference anchor="GCM" >
  <front>
    <title>Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC</title>
    <author initials="M." surname="Dworkin" fullname="Morris Dworkin">
      <organization></organization>
    </author>
    <date year="2007" month="November"/>
  </front>
  <seriesInfo name="NIST Special Publication" value="800-38D"/>
  <seriesInfo name="DOI" value="10.6028/NIST.SP.800-38D"/>
</reference>
<reference anchor="CCM" >
  <front>
    <title>Recommendation for Block Cipher Modes of Operation: the CCM Mode for Authentication and Confidentiality</title>
    <author initials="M." surname="Dworkin" fullname="Morris Dworkin">
      <organization></organization>
    </author>
    <date year="2004" month="May"/>
  </front>
  <seriesInfo name="NIST Special Publication" value="800-38C"/>
  <seriesInfo name="DOI" value="10.6028/NIST.SP.800-38C"/>
</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 title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC3610">
  <front>
    <title>Counter with CBC-MAC (CCM)</title>
    <author fullname="D. Whiting" initials="D." surname="Whiting"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="N. Ferguson" initials="N." surname="Ferguson"/>
    <date month="September" year="2003"/>
    <abstract>
      <t>Counter with CBC-MAC (CCM) is a generic authenticated encryption block cipher mode. CCM is defined for use with 128-bit block ciphers, such as the Advanced Encryption Standard (AES).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3610"/>
  <seriesInfo name="DOI" value="10.17487/RFC3610"/>
</reference>
<reference anchor="RFC9360">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="February" year="2023"/>
    <abstract>
      <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9360"/>
  <seriesInfo name="DOI" value="10.17487/RFC9360"/>
</reference>

<reference anchor="I-D.ietf-suit-manifest">
   <front>
      <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
      <author fullname="Brendan Moran" initials="B." surname="Moran">
         <organization>Arm Limited</organization>
      </author>
      <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
      </author>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Koen Zandberg" initials="K." surname="Zandberg">
         <organization>Inria</organization>
      </author>
      <author fullname="Øyvind Rønningstad" initials="O." surname="Rønningstad">
         <organization>Nordic Semiconductor</organization>
      </author>
      <date day="18" month="June" year="2026"/>
      <abstract>
	 <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an Internet of Things (IoT) device), where to find
   the code/data, the devices to which it applies, and cryptographic
   information protecting the manifest.  Software updates and Trusted
   Invocation both tend to use sequences of common operations, so the
   manifest encodes those sequences of operations, rather than declaring
   the metadata.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-suit-manifest-37"/>
   
</reference>
<reference anchor="RFC9068">
  <front>
    <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
    <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
    <date month="October" year="2021"/>
    <abstract>
      <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9068"/>
  <seriesInfo name="DOI" value="10.17487/RFC9068"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</reference>
<reference anchor="RFC8392">
  <front>
    <title>CBOR Web Token (CWT)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
    <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8392"/>
  <seriesInfo name="DOI" value="10.17487/RFC8392"/>
</reference>
<reference anchor="RFC9124">
  <front>
    <title>A Manifest Information Model for Firmware Updates in Internet of Things (IoT) Devices</title>
    <author fullname="B. Moran" initials="B." surname="Moran"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <date month="January" year="2022"/>
    <abstract>
      <t>Vulnerabilities with Internet of Things (IoT) devices have raised the need for a reliable and secure firmware update mechanism that is also suitable for constrained devices. Ensuring that devices function and remain secure over their service lifetime requires such an update mechanism to fix vulnerabilities, update configuration settings, and add new functionality.</t>
      <t>One component of such a firmware update is a concise and machine-processable metadata document, or manifest, that describes the firmware image(s) and offers appropriate protection. This document describes the information that must be present in the manifest.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9124"/>
  <seriesInfo name="DOI" value="10.17487/RFC9124"/>
</reference>
<reference anchor="RFC9711">
  <front>
    <title>The Entity Attestation Token (EAT)</title>
    <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
    <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
    <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
    <author fullname="C. Wallace" initials="C." surname="Wallace"/>
    <date month="April" year="2025"/>
    <abstract>
      <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
      <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9711"/>
  <seriesInfo name="DOI" value="10.17487/RFC9711"/>
</reference>
<reference anchor="RFC8812">
  <front>
    <title>CBOR Object Signing and Encryption (COSE) and JSON Object Signing and Encryption (JOSE) Registrations for Web Authentication (WebAuthn) Algorithms</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="August" year="2020"/>
    <abstract>
      <t>The W3C Web Authentication (WebAuthn) specification and the FIDO Alliance FIDO2 Client to Authenticator Protocol (CTAP) specification use CBOR Object Signing and Encryption (COSE) algorithm identifiers. This specification registers the following algorithms (which are used by WebAuthn and CTAP implementations) in the IANA "COSE Algorithms" registry: RSASSA-PKCS1-v1_5 using SHA-256, SHA-384, SHA-512, and SHA-1; and Elliptic Curve Digital Signature Algorithm (ECDSA) using the secp256k1 curve and SHA-256. It registers the secp256k1 elliptic curve in the IANA "COSE Elliptic Curves" registry. Also, for use with JSON Object Signing and Encryption (JOSE), it registers the algorithm ECDSA using the secp256k1 curve and SHA-256 in the IANA "JSON Web Signature and Encryption Algorithms" registry and the secp256k1 elliptic curve in the IANA "JSON Web Key Elliptic Curve" registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8812"/>
  <seriesInfo name="DOI" value="10.17487/RFC8812"/>
</reference>
<reference anchor="RFC8613">
  <front>
    <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
    <author fullname="G. Selander" initials="G." surname="Selander"/>
    <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
    <author fullname="F. Palombini" initials="F." surname="Palombini"/>
    <author fullname="L. Seitz" initials="L." surname="Seitz"/>
    <date month="July" year="2019"/>
    <abstract>
      <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
      <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8613"/>
  <seriesInfo name="DOI" value="10.17487/RFC8613"/>
</reference>
<reference anchor="RFC9203">
  <front>
    <title>The Object Security for Constrained RESTful Environments (OSCORE) Profile of the Authentication and Authorization for Constrained Environments (ACE) Framework</title>
    <author fullname="F. Palombini" initials="F." surname="Palombini"/>
    <author fullname="L. Seitz" initials="L." surname="Seitz"/>
    <author fullname="G. Selander" initials="G." surname="Selander"/>
    <author fullname="M. Gunnarsson" initials="M." surname="Gunnarsson"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>This document specifies a profile for the Authentication and Authorization for Constrained Environments (ACE) framework. It utilizes Object Security for Constrained RESTful Environments (OSCORE) to provide communication security and proof-of-possession for a key owned by the client and bound to an OAuth 2.0 access token.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9203"/>
  <seriesInfo name="DOI" value="10.17487/RFC9203"/>
</reference>
<reference anchor="RFC9528">
  <front>
    <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
    <author fullname="G. Selander" initials="G." surname="Selander"/>
    <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
    <author fullname="F. Palombini" initials="F." surname="Palombini"/>
    <date month="March" year="2024"/>
    <abstract>
      <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9528"/>
  <seriesInfo name="DOI" value="10.17487/RFC9528"/>
</reference>
<reference anchor="RFC9964">
  <front>
    <title>ML-DSA for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
    <author fullname="M. Prorock" initials="M." surname="Prorock"/>
    <author fullname="O. Steele" initials="O." surname="Steele"/>
    <date month="May" year="2026"/>
    <abstract>
      <t>This document specifies JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for the Module-Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum Cryptography (PQC) digital signature scheme defined in US NIST FIPS 204.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9964"/>
  <seriesInfo name="DOI" value="10.17487/RFC9964"/>
</reference>
<reference anchor="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>
<reference anchor="RFC8998">
  <front>
    <title>ShangMi (SM) Cipher Suites for TLS 1.3</title>
    <author fullname="P. Yang" initials="P." surname="Yang"/>
    <date month="March" year="2021"/>
    <abstract>
      <t>This document specifies how to use the ShangMi (SM) cryptographic algorithms with Transport Layer Security (TLS) protocol version 1.3.</t>
      <t>The use of these algorithms with TLS 1.3 is not endorsed by the IETF. The SM algorithms are becoming mandatory in China, so this document provides a description of how to use the SM algorithms with TLS 1.3 and specifies a profile of TLS 1.3 so that implementers can produce interworking implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8998"/>
  <seriesInfo name="DOI" value="10.17487/RFC8998"/>
</reference>
<reference anchor="RFC9861">
  <front>
    <title>KangarooTwelve and TurboSHAKE</title>
    <author fullname="B. Viguier" initials="B." surname="Viguier"/>
    <author fullname="D. Wong" initials="D." role="editor" surname="Wong"/>
    <author fullname="G. Van Assche" initials="G." role="editor" surname="Van Assche"/>
    <author fullname="Q. Dang" initials="Q." role="editor" surname="Dang"/>
    <author fullname="J. Daemen" initials="J." role="editor" surname="Daemen"/>
    <date month="October" year="2025"/>
    <abstract>
      <t>This document defines four eXtendable-Output Functions (XOFs), hash functions with output of arbitrary length, named TurboSHAKE128, TurboSHAKE256, KT128, and KT256.</t>
      <t>All four functions provide efficient and secure hashing primitives, and the last two are able to exploit the parallelism of the implementation in a scalable way.</t>
      <t>This document is a product of the Crypto Forum Research Group. It builds up on the definitions of the permutations and of the sponge construction in NIST FIPS 202 and is meant to serve as a stable reference and an implementation guide.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9861"/>
  <seriesInfo name="DOI" value="10.17487/RFC9861"/>
</reference>

<reference anchor="I-D.irtf-cfrg-aead-limits">
   <front>
      <title>Usage Limits on AEAD Algorithms</title>
      <author fullname="Felix Günther" initials="F." surname="Günther">
         <organization>IBM Research Europe - Zurich</organization>
      </author>
      <author fullname="Martin Thomson" initials="M." surname="Thomson">
         <organization>Mozilla</organization>
      </author>
      <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
         <organization>Cloudflare</organization>
      </author>
      <date day="3" month="September" year="2026"/>
      <abstract>
	 <t>   An Authenticated Encryption with Associated Data (AEAD) algorithm
   provides confidentiality and integrity.  Excessive use of the same
   key can give an attacker advantages in breaking these properties.
   This document provides simple guidance for users of common AEAD
   functions about how to limit the use of keys in order to bound the
   advantage given to an attacker.  It considers limits in both single-
   and multi-key settings.  This document is a product of the Crypto
   Forum Research Group (CFRG) in the IRTF.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-13"/>
   
</reference>

<reference anchor="GBT.32905-2016" >
  <front>
    <title>Information security technology --- SM3 cryptographic hash algorithm</title>
    <author >
      <organization>Standardization Administration of the People's Republic of China</organization>
    </author>
    <date year="2017" month="March"/>
  </front>
  <seriesInfo name="GB/T" value="32905-2016"/>
</reference>
<reference anchor="GBT.32907-2016" >
  <front>
    <title>Information security technology --- SM4 block cipher algorithm</title>
    <author >
      <organization>Standardization Administration of the People's Republic of China</organization>
    </author>
    <date year="2017" month="March"/>
  </front>
  <seriesInfo name="GB/T" value="32907-2016"/>
</reference>
<reference anchor="GBT.32918.2-2016" >
  <front>
    <title>Information security technology --- Public key cryptographic algorithm SM2 based on elliptic curves --- Part 2: Digital signature algorithm</title>
    <author >
      <organization>Standardization Administration of the People's Republic of China</organization>
    </author>
    <date year="2017" month="March"/>
  </front>
  <seriesInfo name="GB/T" value="32918.2-2016"/>
</reference>
<reference anchor="VEHICLE-CRYPTO" target="https://std.samr.gov.cn/dcpspTools/gbPlan/download?path=%2Fzxd%2F2023002617%2F20_%E6%A0%87%E5%87%86%E8%B5%B7%E8%8D%89%2F20_WD_2023002617_%E6%B1%BD%E8%BD%A6%E5%AF%86%E7%A0%81%E5%BA%94%E7%94%A8%E6%8A%80%E6%9C%AF%E8%A6%81%E6%B1%82.pdf">
  <front>
    <title>Technical requirements for vehicle cryptography application (draft for comments)</title>
    <author >
      <organization>Ministry of Industry and Information Technology of the People's Republic of China and State Cryptography Administration</organization>
    </author>
    <date year="2026" month="July"/>
  </front>
  <seriesInfo name="GB" value="XXXXX-XXXX"/>
</reference>
<reference anchor="CRYPTO-LAW" >
  <front>
    <title>Cryptography Law of the People's Republic of China</title>
    <author >
      <organization>Standing Committee of the National People's Congress</organization>
    </author>
    <date year="2019" month="October" day="26"/>
  </front>
</reference>
<reference anchor="GBT.39786-2021" >
  <front>
    <title>Information security technology --- Baseline for information system cryptography application</title>
    <author >
      <organization>State Administration for Market Regulation and Standardization Administration of the People's Republic of China</organization>
    </author>
    <date year="2021" month="March"/>
  </front>
  <seriesInfo name="GB/T" value="39786-2021"/>
</reference>
<reference anchor="GBT.38636-2020" >
  <front>
    <title>Information security technology --- Transport layer cryptography protocol (TLCP)</title>
    <author >
      <organization>Standardization Administration of the People's Republic of China</organization>
    </author>
    <date year="2020" month="April"/>
  </front>
  <seriesInfo name="GB/T" value="38636-2020"/>
</reference>
<reference anchor="IANA.JOSE" target="https://www.iana.org/assignments/jose">
  <front>
    <title>JSON Object Signing and Encryption (JOSE)</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="IANA.COSE" target="https://www.iana.org/assignments/cose">
  <front>
    <title>CBOR Object Signing and Encryption (COSE)</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

</references>


<?line 1041?>

<section anchor="examples"><name>COSE Examples</name>

<t>This appendix gives examples of COSE objects using the algorithms of
this document. The examples are shown in CBOR diagnostic notation
followed by the hexadecimal encoding. They use the values suggested to
IANA; they will be regenerated if IANA assigns different values.</t>

<t>All examples use the payload "This is the content." (20 octets) and an
empty external_aad. The random values, such as the k used in SM2,
were fixed so that the examples can be reproduced.</t>

<t>The examples were generated with an implementation independent of
OpenSSL, except for SM3. The SM2 signature, SM2 decryption, and
HMAC-SM3 results were cross-checked with OpenSSL 4.1. The
SM4-GCM and SM4-CCM implementations reproduce the test vectors in
Appendix A of <xref target="RFC8998"/>.</t>

<section anchor="ex-keys"><name>Keys</name>

<t>The SM2 signing key:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
{
  1 / kty /: 2 / EC2 /,
  2 / kid /: h'736d322d7369676e406578616d706c652e636f6d',
  3 / alg /: -269 / SM2-SM3 /,
  -1 / crv /: 260 / curveSM2 /,
  -2 / x /: h'9e4781ddf2df6f41e62cd26d6f43708a76f928f46141ca0bf0
    a7371884806caf',
  -3 / y /: h'db11335b8f7af16cf709e57e66b750195b6957a5c5b8370055
    4594c48a6bd3b2',
  -4 / d /: h'73ff4d82f7c10fe1408877ad2bfbce0d611fb1fa8ea5080441
    060c9c50550ca2'
}
]]></sourcecode></figure>

<t>The SM2 encryption key:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
{
  1 / kty /: 2 / EC2 /,
  2 / kid /: h'736d322d656e63406578616d706c652e636f6d',
  3 / alg /: -270 / SM2-ENC-SM3 /,
  -1 / crv /: 260 / curveSM2 /,
  -2 / x /: h'c29c3a6334139ef9a9cc12741764d8115f55f9f23720ed21c4
    ed63166b91d1aa',
  -3 / y /: h'83144e0d0612c6cd1d8f73c32583a63a0346ab8a66f2a0dbe7
    2e603db274733c',
  -4 / d /: h'8160d94d63f3eb30a2bb89dd02e4b29713667f3a2696d347d9
    86a9f2d3a6f7df'
}
]]></sourcecode></figure>

<t>The symmetric key used for SM4:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
{
  1 / kty /: 4 / Symmetric /,
  2 / kid /: h'6f75722d73656372657432',
  -1 / k /: h'849b57219dae48de646d07dbb533566e'
}
]]></sourcecode></figure>

<t>The symmetric key used for HMAC-SM3 and direct+HKDF-SM3:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
{
  1 / kty /: 4 / Symmetric /,
  2 / kid /: h'6f75722d736563726574',
  -1 / k /: h'849b57219dae48de646d07dbb533566e976686457c1491be3a
    76dcea6c427188'
}
]]></sourcecode></figure>

</section>
<section anchor="ex-sm2-sm3-signature"><name>SM2-SM3 Signature</name>

<t>The encoded Sig_structure (ToBeSigned):</t>

<figure><artwork><![CDATA[
846a5369676e61747572653145a10139010c4054546869732069732074686520
636f6e74656e742e
]]></artwork></figure>

<t>The COSE_Sign1 object:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
18(
  [
    h'a10139010c' / {1: -269} /,
    {
      4 / kid /: h'736d322d7369676e406578616d706c652e636f6d'
    },
    h'546869732069732074686520636f6e74656e742e',
    h'39192506a55604477fdaac0983fd888d06bbe09a2cbce3d7
      0cf20a4cd32e5fb2d1a12c5829746b162eac73afc7cf0f81
      e67117901b4d9bc36292d71f4f56f083'
  ]
)
]]></sourcecode></figure>

<figure><artwork><![CDATA[
d28445a10139010ca10454736d322d7369676e406578616d706c652e636f6d54
546869732069732074686520636f6e74656e742e584039192506a55604477fda
ac0983fd888d06bbe09a2cbce3d70cf20a4cd32e5fb2d1a12c5829746b162eac
73afc7cf0f81e67117901b4d9bc36292d71f4f56f083
]]></artwork></figure>

</section>
<section anchor="ex-hmac-sm3"><name>HMAC-SM3</name>

<t>The encoded MAC_structure:</t>

<figure><artwork><![CDATA[
84644d41433045a1011901064054546869732069732074686520636f6e74656e
742e
]]></artwork></figure>

<t>The COSE_Mac0 object:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
17(
  [
    h'a101190106' / {1: 262} /,
    {
      4 / kid /: h'6f75722d736563726574'
    },
    h'546869732069732074686520636f6e74656e742e',
    h'94811cb0028f19171d2e1776c6e3ac896c79f9d21ec8478d
      545ddb11a45fc5bd'
  ]
)
]]></sourcecode></figure>

<figure><artwork><![CDATA[
d18445a101190106a1044a6f75722d7365637265745454686973206973207468
6520636f6e74656e742e582094811cb0028f19171d2e1776c6e3ac896c79f9d2
1ec8478d545ddb11a45fc5bd
]]></artwork></figure>

</section>
<section anchor="ex-sm4-gcm"><name>SM4-GCM</name>

<t>The encoded Enc_structure:</t>

<figure><artwork><![CDATA[
8368456e63727970743045a10119010040
]]></artwork></figure>

<t>The COSE_Encrypt0 object:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
16(
  [
    h'a101190100' / {1: 256} /,
    {
      4 / kid /: h'6f75722d73656372657432',
      5 / iv /: h'02d1f7e6f26c43d4868d87ce'
    },
    h'db19f211e5cf306ecb979325474b357b7a3fad1077d4eb39
      0a56b06a879685bc04c74ce5'
  ]
)
]]></sourcecode></figure>

<figure><artwork><![CDATA[
d08345a101190100a2044b6f75722d73656372657432054c02d1f7e6f26c43d4
868d87ce5824db19f211e5cf306ecb979325474b357b7a3fad1077d4eb390a56
b06a879685bc04c74ce5
]]></artwork></figure>

</section>
<section anchor="ex-sm4-ccm-16-64-128"><name>SM4-CCM-16-64-128</name>

<figure><sourcecode type="cbor-diag"><![CDATA[
16(
  [
    h'a101190101' / {1: 257} /,
    {
      4 / kid /: h'6f75722d73656372657432',
      5 / iv /: h'89f52f65a1c580933b5261a72f'
    },
    h'dc9ae5a858a8da807a0afcd8f34533b032fe874b67e2cc98
      01431a35'
  ]
)
]]></sourcecode></figure>

<figure><artwork><![CDATA[
d08345a101190101a2044b6f75722d73656372657432054d89f52f65a1c58093
3b5261a72f581cdc9ae5a858a8da807a0afcd8f34533b032fe874b67e2cc9801
431a35
]]></artwork></figure>

</section>
<section anchor="ex-sm4-ccm-16-128-128"><name>SM4-CCM-16-128-128</name>

<figure><sourcecode type="cbor-diag"><![CDATA[
16(
  [
    h'a101190102' / {1: 258} /,
    {
      4 / kid /: h'6f75722d73656372657432',
      5 / iv /: h'89f52f65a1c580933b5261a72f'
    },
    h'dc9ae5a858a8da807a0afcd8f34533b032fe874b6eaf7d90
      da38798c05dd29e2e5501d55'
  ]
)
]]></sourcecode></figure>

<figure><artwork><![CDATA[
d08345a101190102a2044b6f75722d73656372657432054d89f52f65a1c58093
3b5261a72f5824dc9ae5a858a8da807a0afcd8f34533b032fe874b6eaf7d90da
38798c05dd29e2e5501d55
]]></artwork></figure>

</section>
<section anchor="ex-sm2-enc-sm3-with-sm4-gcm"><name>SM2-ENC-SM3 with SM4-GCM</name>

<t>The CEK:</t>

<figure><artwork><![CDATA[
2b1d4f5e7a9c0b3d6e8f1a2c4b5d7e90
]]></artwork></figure>

<t>The COSE_Encrypt object. The CEK is encrypted for the SM2 encryption
key shown above:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
96(
  [
    h'a101190100' / {1: 256} /,
    {
      5 / iv /: h'02d1f7e6f26c43d4868d87ce'
    },
    h'1758357c02c3bc27bbea239b6b7480cbfb0e1c6d3f1a8dd2
      9fe3121d5d02413045e18338',
    [
      [
        h'',
        {
          1 / alg /: -270 / SM2-ENC-SM3 /,
          4 / kid /: h'736d322d656e63406578616d706c652e636f6d'
        },
        h'04656f6548474c10f4d98140c34f02a8b91acfad36e2
          bf8071ae547dfe4c5ef1910dcef4c72f3c6ae8a68b78
          d4fbed56662c6e3ccb8967d3720f351772ec01948614
          4e7770b98cd5f2bb6337fd11b8735237b6a98219f016
          2f6b1fee1ee27557d9d862d7c0ab65776a500d81cdf8
          41c585'
      ]
    ]
  ]
)
]]></sourcecode></figure>

<figure><artwork><![CDATA[
d8608445a101190100a1054c02d1f7e6f26c43d4868d87ce58241758357c02c3
bc27bbea239b6b7480cbfb0e1c6d3f1a8dd29fe3121d5d02413045e183388183
40a20139010d0453736d322d656e63406578616d706c652e636f6d587104656f
6548474c10f4d98140c34f02a8b91acfad36e2bf8071ae547dfe4c5ef1910dce
f4c72f3c6ae8a68b78d4fbed56662c6e3ccb8967d3720f351772ec019486144e
7770b98cd5f2bb6337fd11b8735237b6a98219f0162f6b1fee1ee27557d9d862
d7c0ab65776a500d81cdf841c585
]]></artwork></figure>

</section>
<section anchor="ex-direct-hkdf-sm3-with-sm4-gcm"><name>direct+HKDF-SM3 with SM4-GCM</name>

<t>The encoded COSE_KDF_Context:</t>

<figure><artwork><![CDATA[
8419010083f6f6f683f6f6f682188045a10139010e
]]></artwork></figure>

<t>The derived CEK:</t>

<figure><artwork><![CDATA[
98c5099beb07c7a6bdce325c89be85b5
]]></artwork></figure>

<t>The COSE_Encrypt object:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
96(
  [
    h'a101190100' / {1: 256} /,
    {
      5 / iv /: h'02d1f7e6f26c43d4868d87ce'
    },
    h'902b98d6078acea3ce5ade7bdc437e63a1df43ea59669635
      c23543af16cd2e6dc91f72fe',
    [
      [
        h'a10139010e' / {1: -271} /,
        {
          4 / kid /: h'6f75722d736563726574',
          -20 / salt /: h'61616262636364646565666667676868'
        },
        h''
      ]
    ]
  ]
)
]]></sourcecode></figure>

<figure><artwork><![CDATA[
d8608445a101190100a1054c02d1f7e6f26c43d4868d87ce5824902b98d6078a
cea3ce5ade7bdc437e63a1df43ea59669635c23543af16cd2e6dc91f72fe8183
45a10139010ea2044a6f75722d73656372657433506161626263636464656566
666767686840
]]></artwork></figure>

</section>
<section anchor="ex-sm3-hash"><name>SM3 Hash</name>

<t>The SM3 hash of the payload, as a COSE_CertHash <xref target="RFC9360"/> array
[hashAlg, hashValue]:</t>

<figure><sourcecode type="cbor-diag"><![CDATA[
[
  -272 / SM3 /,
  h'7f093ad3f67a1d16dcf1397f1b419edb85f693196072712a9a
    5fef65adfb903d'
]
]]></sourcecode></figure>

</section>
</section>
<section anchor="jose-examples"><name>JOSE Examples</name>

<t>This appendix gives examples of JOSE objects using the algorithms of
this document. All examples use the payload "This is the content."
(20 octets) and the JWS and JWE Compact Serializations. Line breaks
within the serializations are for display purposes only. As in
<xref target="examples"/>, the random values were fixed so that the examples can be
reproduced; each SM2 operation uses a different k.</t>

<t>The SM2-SM3 signature, SM2 decryption, and HS-SM3 results were
cross-checked with OpenSSL 4.1.</t>

<section anchor="jex-keys"><name>Keys</name>

<t>The SM2 signing key (the same key pair as in <xref target="ex-keys"/>):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "kty": "EC",
  "crv": "curveSM2",
  "kid": "sm2-sign@example.com",
  "alg": "SM2-SM3",
  "x": "nkeB3fLfb0HmLNJtb0Nwinb5KPRhQcoL8Kc3GISAbK8",
  "y": "2xEzW4968Wz3CeV-ZrdQGVtpV6XFuDcAVUWUxIpr07I",
  "d": "c_9NgvfBD-FAiHetK_vODWEfsfqOpQgEQQYMnFBVDKI"
}
]]></sourcecode></figure>

<t>The SM2 encryption key (the same key pair as in <xref target="ex-keys"/>):</t>

<figure><sourcecode type="json"><![CDATA[
{
  "kty": "EC",
  "crv": "curveSM2",
  "kid": "sm2-enc@example.com",
  "alg": "SM2-ENC-SM3",
  "x": "wpw6YzQTnvmpzBJ0F2TYEV9V-fI3IO0hxO1jFmuR0ao",
  "y": "gxRODQYSxs0dj3PDJYOmOgNGq4pm8qDb5y5gPbJ0czw",
  "d": "gWDZTWPz6zCiu4ndAuSylxNmfzomltNH2Yap8tOm998"
}
]]></sourcecode></figure>

<t>The symmetric key used for HS-SM3:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "kty": "oct",
  "kid": "our-secret",
  "alg": "HS-SM3",
  "k": "hJtXIZ2uSN5kbQfbtTNWbpdmhkV8FJG-Onbc6mxCcYg"
}
]]></sourcecode></figure>

</section>
<section anchor="jex-sm2-sm3"><name>SM2-SM3</name>

<t>The JWS Protected Header:</t>

<figure><sourcecode type="json"><![CDATA[
{"alg":"SM2-SM3","kid":"sm2-sign@example.com"}
]]></sourcecode></figure>

<t>The JWS:</t>

<figure><artwork><![CDATA[
eyJhbGciOiJTTTItU00zIiwia2lkIjoic20yLXNpZ25AZXhhbXBsZS5jb20ifQ.V
GhpcyBpcyB0aGUgY29udGVudC4.7OLwFhhRIzWXCZCvz_2Nsbyl2tX-iZ6GQ9xXs
sKhQjNWZlABpscWjDz3uvNP6oOD6FLSgJcQIG9LcwLhmvV2OA
]]></artwork></figure>

</section>
<section anchor="jex-hs-sm3"><name>HS-SM3</name>

<t>The JWS Protected Header:</t>

<figure><sourcecode type="json"><![CDATA[
{"alg":"HS-SM3","kid":"our-secret"}
]]></sourcecode></figure>

<t>The JWS:</t>

<figure><artwork><![CDATA[
eyJhbGciOiJIUy1TTTMiLCJraWQiOiJvdXItc2VjcmV0In0.VGhpcyBpcyB0aGUg
Y29udGVudC4.U-o8leTbGIzMtiDT0YeLIeI2v2miqhcDWZ2fCZ2LDRE
]]></artwork></figure>

</section>
<section anchor="jex-sm2-enc"><name>SM2-ENC-SM3 with SM4GCM</name>

<t>The JWE Protected Header:</t>

<figure><sourcecode type="json"><![CDATA[
{"alg":"SM2-ENC-SM3","enc":"SM4GCM","kid":"sm2-enc@example.com"}
]]></sourcecode></figure>

<t>The CEK:</t>

<figure><artwork><![CDATA[
5a2c0b8e1f3d4c6a7b9e8d0f2a4c6e81
]]></artwork></figure>

<t>The JWE:</t>

<figure><artwork><![CDATA[
eyJhbGciOiJTTTItRU5DLVNNMyIsImVuYyI6IlNNNEdDTSIsImtpZCI6InNtMi1l
bmNAZXhhbXBsZS5jb20ifQ.BPGdA0qNpMxZMfv1Ohr6NliMbI7d0rL_S8wlxhvBa
7Bwxg7C2HqqoyhahlwI_30qw75nKJvcPZa8EnKeXT-AFDgvZvpiZbdHgFpVMfPvJ
NsGuWpJx_0F1-zmycCCTbB9vXjdUFGRIHjGKuCnIglKZ4M.AtH35vJsQ9SGjYfO.
BTjaxXhDAofvkn5J59km0BVwIk0.u0ocY66HLxGoLt798YyI9A
]]></artwork></figure>

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

<t>TODO</t>

</section>


  </back>

<!-- ##markdown-source:
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
9v8AQeRpjPXIAAA=

-->

</rfc>

