xref: /third_party/node/doc/api/webcrypto.json (revision 1cb0ef41)
11cb0ef41Sopenharmony_ci{
21cb0ef41Sopenharmony_ci  "type": "module",
31cb0ef41Sopenharmony_ci  "source": "doc/api/webcrypto.md",
41cb0ef41Sopenharmony_ci  "modules": [
51cb0ef41Sopenharmony_ci    {
61cb0ef41Sopenharmony_ci      "textRaw": "Web Crypto API",
71cb0ef41Sopenharmony_ci      "name": "web_crypto_api",
81cb0ef41Sopenharmony_ci      "meta": {
91cb0ef41Sopenharmony_ci        "changes": [
101cb0ef41Sopenharmony_ci          {
111cb0ef41Sopenharmony_ci            "version": "v18.17.0",
121cb0ef41Sopenharmony_ci            "pr-url": "https://github.com/nodejs/node/pull/46067",
131cb0ef41Sopenharmony_ci            "description": "Arguments are now coerced and validated as per their WebIDL definitions like in other Web Crypto API implementations."
141cb0ef41Sopenharmony_ci          },
151cb0ef41Sopenharmony_ci          {
161cb0ef41Sopenharmony_ci            "version": "v18.4.0",
171cb0ef41Sopenharmony_ci            "pr-url": "https://github.com/nodejs/node/pull/43310",
181cb0ef41Sopenharmony_ci            "description": "Removed proprietary `'node.keyObject'` import/export format."
191cb0ef41Sopenharmony_ci          },
201cb0ef41Sopenharmony_ci          {
211cb0ef41Sopenharmony_ci            "version": "v18.4.0",
221cb0ef41Sopenharmony_ci            "pr-url": "https://github.com/nodejs/node/pull/43310",
231cb0ef41Sopenharmony_ci            "description": "Removed proprietary `'NODE-DSA'`, `'NODE-DH'`, and `'NODE-SCRYPT'` algorithms."
241cb0ef41Sopenharmony_ci          },
251cb0ef41Sopenharmony_ci          {
261cb0ef41Sopenharmony_ci            "version": "v18.4.0",
271cb0ef41Sopenharmony_ci            "pr-url": "https://github.com/nodejs/node/pull/42507",
281cb0ef41Sopenharmony_ci            "description": "Added `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms."
291cb0ef41Sopenharmony_ci          },
301cb0ef41Sopenharmony_ci          {
311cb0ef41Sopenharmony_ci            "version": "v18.4.0",
321cb0ef41Sopenharmony_ci            "pr-url": "https://github.com/nodejs/node/pull/42507",
331cb0ef41Sopenharmony_ci            "description": "Removed proprietary `'NODE-ED25519'` and `'NODE-ED448'` algorithms."
341cb0ef41Sopenharmony_ci          },
351cb0ef41Sopenharmony_ci          {
361cb0ef41Sopenharmony_ci            "version": "v18.4.0",
371cb0ef41Sopenharmony_ci            "pr-url": "https://github.com/nodejs/node/pull/42507",
381cb0ef41Sopenharmony_ci            "description": "Removed proprietary `'NODE-X25519'` and `'NODE-X448'` named curves from the `'ECDH'` algorithm."
391cb0ef41Sopenharmony_ci          }
401cb0ef41Sopenharmony_ci        ]
411cb0ef41Sopenharmony_ci      },
421cb0ef41Sopenharmony_ci      "introduced_in": "v15.0.0",
431cb0ef41Sopenharmony_ci      "stability": 1,
441cb0ef41Sopenharmony_ci      "stabilityText": "Experimental",
451cb0ef41Sopenharmony_ci      "desc": "<p>Node.js provides an implementation of the standard <a href=\"https://www.w3.org/TR/WebCryptoAPI/\">Web Crypto API</a>.</p>\n<p>Use <code>require('node:crypto').webcrypto</code> to access this module.</p>\n<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\n(async function() {\n\n  const key = await subtle.generateKey({\n    name: 'HMAC',\n    hash: 'SHA-256',\n    length: 256,\n  }, true, ['sign', 'verify']);\n\n  const enc = new TextEncoder();\n  const message = enc.encode('I love cupcakes');\n\n  const digest = await subtle.sign({\n    name: 'HMAC',\n  }, key, message);\n\n})();\n</code></pre>\n<h2>Examples</h2>",
461cb0ef41Sopenharmony_ci      "modules": [
471cb0ef41Sopenharmony_ci        {
481cb0ef41Sopenharmony_ci          "textRaw": "Generating keys",
491cb0ef41Sopenharmony_ci          "name": "generating_keys",
501cb0ef41Sopenharmony_ci          "desc": "<p>The <a href=\"webcrypto.html#class-subtlecrypto\" class=\"type\">&lt;SubtleCrypto&gt;</a> class can be used to generate symmetric (secret) keys\nor asymmetric key pairs (public key and private key).</p>",
511cb0ef41Sopenharmony_ci          "modules": [
521cb0ef41Sopenharmony_ci            {
531cb0ef41Sopenharmony_ci              "textRaw": "AES keys",
541cb0ef41Sopenharmony_ci              "name": "aes_keys",
551cb0ef41Sopenharmony_ci              "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function generateAesKey(length = 256) {\n  const key = await subtle.generateKey({\n    name: 'AES-CBC',\n    length,\n  }, true, ['encrypt', 'decrypt']);\n\n  return key;\n}\n</code></pre>",
561cb0ef41Sopenharmony_ci              "type": "module",
571cb0ef41Sopenharmony_ci              "displayName": "AES keys"
581cb0ef41Sopenharmony_ci            },
591cb0ef41Sopenharmony_ci            {
601cb0ef41Sopenharmony_ci              "textRaw": "ECDSA key pairs",
611cb0ef41Sopenharmony_ci              "name": "ecdsa_key_pairs",
621cb0ef41Sopenharmony_ci              "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function generateEcKey(namedCurve = 'P-521') {\n  const {\n    publicKey,\n    privateKey,\n  } = await subtle.generateKey({\n    name: 'ECDSA',\n    namedCurve,\n  }, true, ['sign', 'verify']);\n\n  return { publicKey, privateKey };\n}\n</code></pre>",
631cb0ef41Sopenharmony_ci              "type": "module",
641cb0ef41Sopenharmony_ci              "displayName": "ECDSA key pairs"
651cb0ef41Sopenharmony_ci            },
661cb0ef41Sopenharmony_ci            {
671cb0ef41Sopenharmony_ci              "textRaw": "Ed25519/Ed448/X25519/X448 key pairs",
681cb0ef41Sopenharmony_ci              "name": "ed25519/ed448/x25519/x448_key_pairs",
691cb0ef41Sopenharmony_ci              "stability": 1,
701cb0ef41Sopenharmony_ci              "stabilityText": "Experimental",
711cb0ef41Sopenharmony_ci              "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function generateEd25519Key() {\n  return subtle.generateKey({\n    name: 'Ed25519',\n  }, true, ['sign', 'verify']);\n}\n\nasync function generateX25519Key() {\n  return subtle.generateKey({\n    name: 'X25519',\n  }, true, ['deriveKey']);\n}\n</code></pre>",
721cb0ef41Sopenharmony_ci              "type": "module",
731cb0ef41Sopenharmony_ci              "displayName": "Ed25519/Ed448/X25519/X448 key pairs"
741cb0ef41Sopenharmony_ci            },
751cb0ef41Sopenharmony_ci            {
761cb0ef41Sopenharmony_ci              "textRaw": "HMAC keys",
771cb0ef41Sopenharmony_ci              "name": "hmac_keys",
781cb0ef41Sopenharmony_ci              "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function generateHmacKey(hash = 'SHA-256') {\n  const key = await subtle.generateKey({\n    name: 'HMAC',\n    hash,\n  }, true, ['sign', 'verify']);\n\n  return key;\n}\n</code></pre>",
791cb0ef41Sopenharmony_ci              "type": "module",
801cb0ef41Sopenharmony_ci              "displayName": "HMAC keys"
811cb0ef41Sopenharmony_ci            },
821cb0ef41Sopenharmony_ci            {
831cb0ef41Sopenharmony_ci              "textRaw": "RSA key pairs",
841cb0ef41Sopenharmony_ci              "name": "rsa_key_pairs",
851cb0ef41Sopenharmony_ci              "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\nconst publicExponent = new Uint8Array([1, 0, 1]);\n\nasync function generateRsaKey(modulusLength = 2048, hash = 'SHA-256') {\n  const {\n    publicKey,\n    privateKey,\n  } = await subtle.generateKey({\n    name: 'RSASSA-PKCS1-v1_5',\n    modulusLength,\n    publicExponent,\n    hash,\n  }, true, ['sign', 'verify']);\n\n  return { publicKey, privateKey };\n}\n</code></pre>",
861cb0ef41Sopenharmony_ci              "type": "module",
871cb0ef41Sopenharmony_ci              "displayName": "RSA key pairs"
881cb0ef41Sopenharmony_ci            }
891cb0ef41Sopenharmony_ci          ],
901cb0ef41Sopenharmony_ci          "type": "module",
911cb0ef41Sopenharmony_ci          "displayName": "Generating keys"
921cb0ef41Sopenharmony_ci        },
931cb0ef41Sopenharmony_ci        {
941cb0ef41Sopenharmony_ci          "textRaw": "Encryption and decryption",
951cb0ef41Sopenharmony_ci          "name": "encryption_and_decryption",
961cb0ef41Sopenharmony_ci          "desc": "<pre><code class=\"language-js\">const crypto = require('node:crypto').webcrypto;\n\nasync function aesEncrypt(plaintext) {\n  const ec = new TextEncoder();\n  const key = await generateAesKey();\n  const iv = crypto.getRandomValues(new Uint8Array(16));\n\n  const ciphertext = await crypto.subtle.encrypt({\n    name: 'AES-CBC',\n    iv,\n  }, key, ec.encode(plaintext));\n\n  return {\n    key,\n    iv,\n    ciphertext,\n  };\n}\n\nasync function aesDecrypt(ciphertext, key, iv) {\n  const dec = new TextDecoder();\n  const plaintext = await crypto.subtle.decrypt({\n    name: 'AES-CBC',\n    iv,\n  }, key, ciphertext);\n\n  return dec.decode(plaintext);\n}\n</code></pre>",
971cb0ef41Sopenharmony_ci          "type": "module",
981cb0ef41Sopenharmony_ci          "displayName": "Encryption and decryption"
991cb0ef41Sopenharmony_ci        },
1001cb0ef41Sopenharmony_ci        {
1011cb0ef41Sopenharmony_ci          "textRaw": "Exporting and importing keys",
1021cb0ef41Sopenharmony_ci          "name": "exporting_and_importing_keys",
1031cb0ef41Sopenharmony_ci          "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function generateAndExportHmacKey(format = 'jwk', hash = 'SHA-512') {\n  const key = await subtle.generateKey({\n    name: 'HMAC',\n    hash,\n  }, true, ['sign', 'verify']);\n\n  return subtle.exportKey(format, key);\n}\n\nasync function importHmacKey(keyData, format = 'jwk', hash = 'SHA-512') {\n  const key = await subtle.importKey(format, keyData, {\n    name: 'HMAC',\n    hash,\n  }, true, ['sign', 'verify']);\n\n  return key;\n}\n</code></pre>",
1041cb0ef41Sopenharmony_ci          "type": "module",
1051cb0ef41Sopenharmony_ci          "displayName": "Exporting and importing keys"
1061cb0ef41Sopenharmony_ci        },
1071cb0ef41Sopenharmony_ci        {
1081cb0ef41Sopenharmony_ci          "textRaw": "Wrapping and unwrapping keys",
1091cb0ef41Sopenharmony_ci          "name": "wrapping_and_unwrapping_keys",
1101cb0ef41Sopenharmony_ci          "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function generateAndWrapHmacKey(format = 'jwk', hash = 'SHA-512') {\n  const [\n    key,\n    wrappingKey,\n  ] = await Promise.all([\n    subtle.generateKey({\n      name: 'HMAC', hash,\n    }, true, ['sign', 'verify']),\n    subtle.generateKey({\n      name: 'AES-KW',\n      length: 256,\n    }, true, ['wrapKey', 'unwrapKey']),\n  ]);\n\n  const wrappedKey = await subtle.wrapKey(format, key, wrappingKey, 'AES-KW');\n\n  return { wrappedKey, wrappingKey };\n}\n\nasync function unwrapHmacKey(\n  wrappedKey,\n  wrappingKey,\n  format = 'jwk',\n  hash = 'SHA-512') {\n\n  const key = await subtle.unwrapKey(\n    format,\n    wrappedKey,\n    wrappingKey,\n    'AES-KW',\n    { name: 'HMAC', hash },\n    true,\n    ['sign', 'verify']);\n\n  return key;\n}\n</code></pre>",
1111cb0ef41Sopenharmony_ci          "type": "module",
1121cb0ef41Sopenharmony_ci          "displayName": "Wrapping and unwrapping keys"
1131cb0ef41Sopenharmony_ci        },
1141cb0ef41Sopenharmony_ci        {
1151cb0ef41Sopenharmony_ci          "textRaw": "Sign and verify",
1161cb0ef41Sopenharmony_ci          "name": "sign_and_verify",
1171cb0ef41Sopenharmony_ci          "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function sign(key, data) {\n  const ec = new TextEncoder();\n  const signature =\n    await subtle.sign('RSASSA-PKCS1-v1_5', key, ec.encode(data));\n  return signature;\n}\n\nasync function verify(key, signature, data) {\n  const ec = new TextEncoder();\n  const verified =\n    await subtle.verify(\n      'RSASSA-PKCS1-v1_5',\n      key,\n      signature,\n      ec.encode(data));\n  return verified;\n}\n</code></pre>",
1181cb0ef41Sopenharmony_ci          "type": "module",
1191cb0ef41Sopenharmony_ci          "displayName": "Sign and verify"
1201cb0ef41Sopenharmony_ci        },
1211cb0ef41Sopenharmony_ci        {
1221cb0ef41Sopenharmony_ci          "textRaw": "Deriving bits and keys",
1231cb0ef41Sopenharmony_ci          "name": "deriving_bits_and_keys",
1241cb0ef41Sopenharmony_ci          "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function pbkdf2(pass, salt, iterations = 1000, length = 256) {\n  const ec = new TextEncoder();\n  const key = await subtle.importKey(\n    'raw',\n    ec.encode(pass),\n    'PBKDF2',\n    false,\n    ['deriveBits']);\n  const bits = await subtle.deriveBits({\n    name: 'PBKDF2',\n    hash: 'SHA-512',\n    salt: ec.encode(salt),\n    iterations,\n  }, key, length);\n  return bits;\n}\n\nasync function pbkdf2Key(pass, salt, iterations = 1000, length = 256) {\n  const ec = new TextEncoder();\n  const keyMaterial = await subtle.importKey(\n    'raw',\n    ec.encode(pass),\n    'PBKDF2',\n    false,\n    ['deriveKey']);\n  const key = await subtle.deriveKey({\n    name: 'PBKDF2',\n    hash: 'SHA-512',\n    salt: ec.encode(salt),\n    iterations,\n  }, keyMaterial, {\n    name: 'AES-GCM',\n    length: 256,\n  }, true, ['encrypt', 'decrypt']);\n  return key;\n}\n</code></pre>",
1251cb0ef41Sopenharmony_ci          "type": "module",
1261cb0ef41Sopenharmony_ci          "displayName": "Deriving bits and keys"
1271cb0ef41Sopenharmony_ci        },
1281cb0ef41Sopenharmony_ci        {
1291cb0ef41Sopenharmony_ci          "textRaw": "Digest",
1301cb0ef41Sopenharmony_ci          "name": "digest",
1311cb0ef41Sopenharmony_ci          "desc": "<pre><code class=\"language-js\">const { subtle } = require('node:crypto').webcrypto;\n\nasync function digest(data, algorithm = 'SHA-512') {\n  const ec = new TextEncoder();\n  const digest = await subtle.digest(algorithm, ec.encode(data));\n  return digest;\n}\n</code></pre>",
1321cb0ef41Sopenharmony_ci          "type": "module",
1331cb0ef41Sopenharmony_ci          "displayName": "Digest"
1341cb0ef41Sopenharmony_ci        },
1351cb0ef41Sopenharmony_ci        {
1361cb0ef41Sopenharmony_ci          "textRaw": "Algorithm matrix",
1371cb0ef41Sopenharmony_ci          "name": "algorithm_matrix",
1381cb0ef41Sopenharmony_ci          "desc": "<p>The table details the algorithms supported by the Node.js Web Crypto API\nimplementation and the APIs supported for each:</p>\n<table>\n<thead>\n<tr>\n<th>Algorithm</th>\n<th><code>generateKey</code></th>\n<th><code>exportKey</code></th>\n<th><code>importKey</code></th>\n<th><code>encrypt</code></th>\n<th><code>decrypt</code></th>\n<th><code>wrapKey</code></th>\n<th><code>unwrapKey</code></th>\n<th><code>deriveBits</code></th>\n<th><code>deriveKey</code></th>\n<th><code>sign</code></th>\n<th><code>verify</code></th>\n<th><code>digest</code></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>'RSASSA-PKCS1-v1_5'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSA-PSS'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSA-OAEP'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'ECDSA'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'Ed25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'Ed448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'ECDH'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'X25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-3\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'X448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-4\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'AES-CTR'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'AES-CBC'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'AES-GCM'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'AES-KW'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'HMAC'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'HKDF'</code></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'PBKDF2'</code></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'SHA-1'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'SHA-256'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'SHA-384'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'SHA-512'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n</tr>\n</tbody>\n</table>",
1391cb0ef41Sopenharmony_ci          "type": "module",
1401cb0ef41Sopenharmony_ci          "displayName": "Algorithm matrix"
1411cb0ef41Sopenharmony_ci        },
1421cb0ef41Sopenharmony_ci        {
1431cb0ef41Sopenharmony_ci          "textRaw": "Algorithm parameters",
1441cb0ef41Sopenharmony_ci          "name": "algorithm_parameters",
1451cb0ef41Sopenharmony_ci          "desc": "<p>The algorithm parameter objects define the methods and parameters used by\nthe various <a href=\"webcrypto.html#class-subtlecrypto\" class=\"type\">&lt;SubtleCrypto&gt;</a> methods. While described here as \"classes\", they\nare simple JavaScript dictionary objects.</p>",
1461cb0ef41Sopenharmony_ci          "classes": [
1471cb0ef41Sopenharmony_ci            {
1481cb0ef41Sopenharmony_ci              "textRaw": "Class: `AlgorithmIdentifier`",
1491cb0ef41Sopenharmony_ci              "type": "class",
1501cb0ef41Sopenharmony_ci              "name": "AlgorithmIdentifier",
1511cb0ef41Sopenharmony_ci              "meta": {
1521cb0ef41Sopenharmony_ci                "added": [
1531cb0ef41Sopenharmony_ci                  "v18.4.0"
1541cb0ef41Sopenharmony_ci                ],
1551cb0ef41Sopenharmony_ci                "changes": []
1561cb0ef41Sopenharmony_ci              },
1571cb0ef41Sopenharmony_ci              "properties": [
1581cb0ef41Sopenharmony_ci                {
1591cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string}",
1601cb0ef41Sopenharmony_ci                  "type": "string",
1611cb0ef41Sopenharmony_ci                  "name": "Type",
1621cb0ef41Sopenharmony_ci                  "meta": {
1631cb0ef41Sopenharmony_ci                    "added": [
1641cb0ef41Sopenharmony_ci                      "v18.4.0"
1651cb0ef41Sopenharmony_ci                    ],
1661cb0ef41Sopenharmony_ci                    "changes": []
1671cb0ef41Sopenharmony_ci                  }
1681cb0ef41Sopenharmony_ci                }
1691cb0ef41Sopenharmony_ci              ]
1701cb0ef41Sopenharmony_ci            },
1711cb0ef41Sopenharmony_ci            {
1721cb0ef41Sopenharmony_ci              "textRaw": "Class: `AesCbcParams`",
1731cb0ef41Sopenharmony_ci              "type": "class",
1741cb0ef41Sopenharmony_ci              "name": "AesCbcParams",
1751cb0ef41Sopenharmony_ci              "meta": {
1761cb0ef41Sopenharmony_ci                "added": [
1771cb0ef41Sopenharmony_ci                  "v15.0.0"
1781cb0ef41Sopenharmony_ci                ],
1791cb0ef41Sopenharmony_ci                "changes": []
1801cb0ef41Sopenharmony_ci              },
1811cb0ef41Sopenharmony_ci              "properties": [
1821cb0ef41Sopenharmony_ci                {
1831cb0ef41Sopenharmony_ci                  "textRaw": "`iv` Type: {ArrayBuffer|TypedArray|DataView|Buffer}",
1841cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer",
1851cb0ef41Sopenharmony_ci                  "name": "Type",
1861cb0ef41Sopenharmony_ci                  "meta": {
1871cb0ef41Sopenharmony_ci                    "added": [
1881cb0ef41Sopenharmony_ci                      "v15.0.0"
1891cb0ef41Sopenharmony_ci                    ],
1901cb0ef41Sopenharmony_ci                    "changes": []
1911cb0ef41Sopenharmony_ci                  },
1921cb0ef41Sopenharmony_ci                  "desc": "<p>Provides the initialization vector. It must be exactly 16-bytes in length\nand should be unpredictable and cryptographically random.</p>"
1931cb0ef41Sopenharmony_ci                },
1941cb0ef41Sopenharmony_ci                {
1951cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'AES-CBC'`.",
1961cb0ef41Sopenharmony_ci                  "type": "string",
1971cb0ef41Sopenharmony_ci                  "name": "Type",
1981cb0ef41Sopenharmony_ci                  "meta": {
1991cb0ef41Sopenharmony_ci                    "added": [
2001cb0ef41Sopenharmony_ci                      "v15.0.0"
2011cb0ef41Sopenharmony_ci                    ],
2021cb0ef41Sopenharmony_ci                    "changes": []
2031cb0ef41Sopenharmony_ci                  },
2041cb0ef41Sopenharmony_ci                  "desc": "Must be `'AES-CBC'`."
2051cb0ef41Sopenharmony_ci                }
2061cb0ef41Sopenharmony_ci              ]
2071cb0ef41Sopenharmony_ci            },
2081cb0ef41Sopenharmony_ci            {
2091cb0ef41Sopenharmony_ci              "textRaw": "Class: `AesCtrParams`",
2101cb0ef41Sopenharmony_ci              "type": "class",
2111cb0ef41Sopenharmony_ci              "name": "AesCtrParams",
2121cb0ef41Sopenharmony_ci              "meta": {
2131cb0ef41Sopenharmony_ci                "added": [
2141cb0ef41Sopenharmony_ci                  "v15.0.0"
2151cb0ef41Sopenharmony_ci                ],
2161cb0ef41Sopenharmony_ci                "changes": []
2171cb0ef41Sopenharmony_ci              },
2181cb0ef41Sopenharmony_ci              "properties": [
2191cb0ef41Sopenharmony_ci                {
2201cb0ef41Sopenharmony_ci                  "textRaw": "`counter` Type: {ArrayBuffer|TypedArray|DataView|Buffer}",
2211cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer",
2221cb0ef41Sopenharmony_ci                  "name": "Type",
2231cb0ef41Sopenharmony_ci                  "meta": {
2241cb0ef41Sopenharmony_ci                    "added": [
2251cb0ef41Sopenharmony_ci                      "v15.0.0"
2261cb0ef41Sopenharmony_ci                    ],
2271cb0ef41Sopenharmony_ci                    "changes": []
2281cb0ef41Sopenharmony_ci                  },
2291cb0ef41Sopenharmony_ci                  "desc": "<p>The initial value of the counter block. This must be exactly 16 bytes long.</p>\n<p>The <code>AES-CTR</code> method uses the rightmost <code>length</code> bits of the block as the\ncounter and the remaining bits as the nonce.</p>"
2301cb0ef41Sopenharmony_ci                },
2311cb0ef41Sopenharmony_ci                {
2321cb0ef41Sopenharmony_ci                  "textRaw": "`length` Type: {number} The number of bits in the `aesCtrParams.counter` that are to be used as the counter.",
2331cb0ef41Sopenharmony_ci                  "type": "number",
2341cb0ef41Sopenharmony_ci                  "name": "Type",
2351cb0ef41Sopenharmony_ci                  "meta": {
2361cb0ef41Sopenharmony_ci                    "added": [
2371cb0ef41Sopenharmony_ci                      "v15.0.0"
2381cb0ef41Sopenharmony_ci                    ],
2391cb0ef41Sopenharmony_ci                    "changes": []
2401cb0ef41Sopenharmony_ci                  },
2411cb0ef41Sopenharmony_ci                  "desc": "The number of bits in the `aesCtrParams.counter` that are to be used as the counter."
2421cb0ef41Sopenharmony_ci                },
2431cb0ef41Sopenharmony_ci                {
2441cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'AES-CTR'`.",
2451cb0ef41Sopenharmony_ci                  "type": "string",
2461cb0ef41Sopenharmony_ci                  "name": "Type",
2471cb0ef41Sopenharmony_ci                  "meta": {
2481cb0ef41Sopenharmony_ci                    "added": [
2491cb0ef41Sopenharmony_ci                      "v15.0.0"
2501cb0ef41Sopenharmony_ci                    ],
2511cb0ef41Sopenharmony_ci                    "changes": []
2521cb0ef41Sopenharmony_ci                  },
2531cb0ef41Sopenharmony_ci                  "desc": "Must be `'AES-CTR'`."
2541cb0ef41Sopenharmony_ci                }
2551cb0ef41Sopenharmony_ci              ]
2561cb0ef41Sopenharmony_ci            },
2571cb0ef41Sopenharmony_ci            {
2581cb0ef41Sopenharmony_ci              "textRaw": "Class: `AesGcmParams`",
2591cb0ef41Sopenharmony_ci              "type": "class",
2601cb0ef41Sopenharmony_ci              "name": "AesGcmParams",
2611cb0ef41Sopenharmony_ci              "meta": {
2621cb0ef41Sopenharmony_ci                "added": [
2631cb0ef41Sopenharmony_ci                  "v15.0.0"
2641cb0ef41Sopenharmony_ci                ],
2651cb0ef41Sopenharmony_ci                "changes": []
2661cb0ef41Sopenharmony_ci              },
2671cb0ef41Sopenharmony_ci              "properties": [
2681cb0ef41Sopenharmony_ci                {
2691cb0ef41Sopenharmony_ci                  "textRaw": "`additionalData` Type: {ArrayBuffer|TypedArray|DataView|Buffer|undefined}",
2701cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer|undefined",
2711cb0ef41Sopenharmony_ci                  "name": "Type",
2721cb0ef41Sopenharmony_ci                  "meta": {
2731cb0ef41Sopenharmony_ci                    "added": [
2741cb0ef41Sopenharmony_ci                      "v15.0.0"
2751cb0ef41Sopenharmony_ci                    ],
2761cb0ef41Sopenharmony_ci                    "changes": []
2771cb0ef41Sopenharmony_ci                  },
2781cb0ef41Sopenharmony_ci                  "desc": "<p>With the AES-GCM method, the <code>additionalData</code> is extra input that is not\nencrypted but is included in the authentication of the data. The use of\n<code>additionalData</code> is optional.</p>"
2791cb0ef41Sopenharmony_ci                },
2801cb0ef41Sopenharmony_ci                {
2811cb0ef41Sopenharmony_ci                  "textRaw": "`iv` Type: {ArrayBuffer|TypedArray|DataView|Buffer}",
2821cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer",
2831cb0ef41Sopenharmony_ci                  "name": "Type",
2841cb0ef41Sopenharmony_ci                  "meta": {
2851cb0ef41Sopenharmony_ci                    "added": [
2861cb0ef41Sopenharmony_ci                      "v15.0.0"
2871cb0ef41Sopenharmony_ci                    ],
2881cb0ef41Sopenharmony_ci                    "changes": []
2891cb0ef41Sopenharmony_ci                  },
2901cb0ef41Sopenharmony_ci                  "desc": "<p>The initialization vector must be unique for every encryption operation using a\ngiven key.</p>\n<p>Ideally, this is a deterministic 12-byte value that is computed in such a way\nthat it is guaranteed to be unique across all invocations that use the same key.\nAlternatively, the initialization vector may consist of at least 12\ncryptographically random bytes. For more information on constructing\ninitialization vectors for AES-GCM, refer to Section 8 of <a href=\"https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf\">NIST SP 800-38D</a>.</p>"
2911cb0ef41Sopenharmony_ci                },
2921cb0ef41Sopenharmony_ci                {
2931cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'AES-GCM'`.",
2941cb0ef41Sopenharmony_ci                  "type": "string",
2951cb0ef41Sopenharmony_ci                  "name": "Type",
2961cb0ef41Sopenharmony_ci                  "meta": {
2971cb0ef41Sopenharmony_ci                    "added": [
2981cb0ef41Sopenharmony_ci                      "v15.0.0"
2991cb0ef41Sopenharmony_ci                    ],
3001cb0ef41Sopenharmony_ci                    "changes": []
3011cb0ef41Sopenharmony_ci                  },
3021cb0ef41Sopenharmony_ci                  "desc": "Must be `'AES-GCM'`."
3031cb0ef41Sopenharmony_ci                },
3041cb0ef41Sopenharmony_ci                {
3051cb0ef41Sopenharmony_ci                  "textRaw": "`tagLength` Type: {number} The size in bits of the generated authentication tag. This values must be one of `32`, `64`, `96`, `104`, `112`, `120`, or `128`. **Default:** `128`.",
3061cb0ef41Sopenharmony_ci                  "type": "number",
3071cb0ef41Sopenharmony_ci                  "name": "Type",
3081cb0ef41Sopenharmony_ci                  "meta": {
3091cb0ef41Sopenharmony_ci                    "added": [
3101cb0ef41Sopenharmony_ci                      "v15.0.0"
3111cb0ef41Sopenharmony_ci                    ],
3121cb0ef41Sopenharmony_ci                    "changes": []
3131cb0ef41Sopenharmony_ci                  },
3141cb0ef41Sopenharmony_ci                  "default": "`128`",
3151cb0ef41Sopenharmony_ci                  "desc": "The size in bits of the generated authentication tag. This values must be one of `32`, `64`, `96`, `104`, `112`, `120`, or `128`."
3161cb0ef41Sopenharmony_ci                }
3171cb0ef41Sopenharmony_ci              ]
3181cb0ef41Sopenharmony_ci            },
3191cb0ef41Sopenharmony_ci            {
3201cb0ef41Sopenharmony_ci              "textRaw": "Class: `AesKeyGenParams`",
3211cb0ef41Sopenharmony_ci              "type": "class",
3221cb0ef41Sopenharmony_ci              "name": "AesKeyGenParams",
3231cb0ef41Sopenharmony_ci              "meta": {
3241cb0ef41Sopenharmony_ci                "added": [
3251cb0ef41Sopenharmony_ci                  "v15.0.0"
3261cb0ef41Sopenharmony_ci                ],
3271cb0ef41Sopenharmony_ci                "changes": []
3281cb0ef41Sopenharmony_ci              },
3291cb0ef41Sopenharmony_ci              "properties": [
3301cb0ef41Sopenharmony_ci                {
3311cb0ef41Sopenharmony_ci                  "textRaw": "`length` Type: {number}",
3321cb0ef41Sopenharmony_ci                  "type": "number",
3331cb0ef41Sopenharmony_ci                  "name": "Type",
3341cb0ef41Sopenharmony_ci                  "meta": {
3351cb0ef41Sopenharmony_ci                    "added": [
3361cb0ef41Sopenharmony_ci                      "v15.0.0"
3371cb0ef41Sopenharmony_ci                    ],
3381cb0ef41Sopenharmony_ci                    "changes": []
3391cb0ef41Sopenharmony_ci                  },
3401cb0ef41Sopenharmony_ci                  "desc": "<p>The length of the AES key to be generated. This must be either <code>128</code>, <code>192</code>,\nor <code>256</code>.</p>"
3411cb0ef41Sopenharmony_ci                },
3421cb0ef41Sopenharmony_ci                {
3431cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be one of `'AES-CBC'`, `'AES-CTR'`, `'AES-GCM'`, or `'AES-KW'`",
3441cb0ef41Sopenharmony_ci                  "type": "string",
3451cb0ef41Sopenharmony_ci                  "name": "Type",
3461cb0ef41Sopenharmony_ci                  "meta": {
3471cb0ef41Sopenharmony_ci                    "added": [
3481cb0ef41Sopenharmony_ci                      "v15.0.0"
3491cb0ef41Sopenharmony_ci                    ],
3501cb0ef41Sopenharmony_ci                    "changes": []
3511cb0ef41Sopenharmony_ci                  },
3521cb0ef41Sopenharmony_ci                  "desc": "Must be one of `'AES-CBC'`, `'AES-CTR'`, `'AES-GCM'`, or `'AES-KW'`"
3531cb0ef41Sopenharmony_ci                }
3541cb0ef41Sopenharmony_ci              ]
3551cb0ef41Sopenharmony_ci            },
3561cb0ef41Sopenharmony_ci            {
3571cb0ef41Sopenharmony_ci              "textRaw": "Class: `EcdhKeyDeriveParams`",
3581cb0ef41Sopenharmony_ci              "type": "class",
3591cb0ef41Sopenharmony_ci              "name": "EcdhKeyDeriveParams",
3601cb0ef41Sopenharmony_ci              "meta": {
3611cb0ef41Sopenharmony_ci                "added": [
3621cb0ef41Sopenharmony_ci                  "v15.0.0"
3631cb0ef41Sopenharmony_ci                ],
3641cb0ef41Sopenharmony_ci                "changes": []
3651cb0ef41Sopenharmony_ci              },
3661cb0ef41Sopenharmony_ci              "properties": [
3671cb0ef41Sopenharmony_ci                {
3681cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'ECDH'`, `'X25519'`, or `'X448'`.",
3691cb0ef41Sopenharmony_ci                  "type": "string",
3701cb0ef41Sopenharmony_ci                  "name": "Type",
3711cb0ef41Sopenharmony_ci                  "meta": {
3721cb0ef41Sopenharmony_ci                    "added": [
3731cb0ef41Sopenharmony_ci                      "v15.0.0"
3741cb0ef41Sopenharmony_ci                    ],
3751cb0ef41Sopenharmony_ci                    "changes": []
3761cb0ef41Sopenharmony_ci                  },
3771cb0ef41Sopenharmony_ci                  "desc": "Must be `'ECDH'`, `'X25519'`, or `'X448'`."
3781cb0ef41Sopenharmony_ci                },
3791cb0ef41Sopenharmony_ci                {
3801cb0ef41Sopenharmony_ci                  "textRaw": "`public` Type: {CryptoKey}",
3811cb0ef41Sopenharmony_ci                  "type": "CryptoKey",
3821cb0ef41Sopenharmony_ci                  "name": "Type",
3831cb0ef41Sopenharmony_ci                  "meta": {
3841cb0ef41Sopenharmony_ci                    "added": [
3851cb0ef41Sopenharmony_ci                      "v15.0.0"
3861cb0ef41Sopenharmony_ci                    ],
3871cb0ef41Sopenharmony_ci                    "changes": []
3881cb0ef41Sopenharmony_ci                  },
3891cb0ef41Sopenharmony_ci                  "desc": "<p>ECDH key derivation operates by taking as input one parties private key and\nanother parties public key -- using both to generate a common shared secret.\nThe <code>ecdhKeyDeriveParams.public</code> property is set to the other parties public\nkey.</p>"
3901cb0ef41Sopenharmony_ci                }
3911cb0ef41Sopenharmony_ci              ]
3921cb0ef41Sopenharmony_ci            },
3931cb0ef41Sopenharmony_ci            {
3941cb0ef41Sopenharmony_ci              "textRaw": "Class: `EcdsaParams`",
3951cb0ef41Sopenharmony_ci              "type": "class",
3961cb0ef41Sopenharmony_ci              "name": "EcdsaParams",
3971cb0ef41Sopenharmony_ci              "meta": {
3981cb0ef41Sopenharmony_ci                "added": [
3991cb0ef41Sopenharmony_ci                  "v15.0.0"
4001cb0ef41Sopenharmony_ci                ],
4011cb0ef41Sopenharmony_ci                "changes": []
4021cb0ef41Sopenharmony_ci              },
4031cb0ef41Sopenharmony_ci              "properties": [
4041cb0ef41Sopenharmony_ci                {
4051cb0ef41Sopenharmony_ci                  "textRaw": "`hash` Type: {string|Object}",
4061cb0ef41Sopenharmony_ci                  "type": "string|Object",
4071cb0ef41Sopenharmony_ci                  "name": "Type",
4081cb0ef41Sopenharmony_ci                  "meta": {
4091cb0ef41Sopenharmony_ci                    "added": [
4101cb0ef41Sopenharmony_ci                      "v15.0.0"
4111cb0ef41Sopenharmony_ci                    ],
4121cb0ef41Sopenharmony_ci                    "changes": []
4131cb0ef41Sopenharmony_ci                  },
4141cb0ef41Sopenharmony_ci                  "desc": "<p>If represented as a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a>, the value must be one of:</p>\n<ul>\n<li><code>'SHA-1'</code></li>\n<li><code>'SHA-256'</code></li>\n<li><code>'SHA-384'</code></li>\n<li><code>'SHA-512'</code></li>\n</ul>\n<p>If represented as an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type\">&lt;Object&gt;</a>, the object must have a <code>name</code> property\nwhose value is one of the above listed values.</p>"
4151cb0ef41Sopenharmony_ci                },
4161cb0ef41Sopenharmony_ci                {
4171cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'ECDSA'`.",
4181cb0ef41Sopenharmony_ci                  "type": "string",
4191cb0ef41Sopenharmony_ci                  "name": "Type",
4201cb0ef41Sopenharmony_ci                  "meta": {
4211cb0ef41Sopenharmony_ci                    "added": [
4221cb0ef41Sopenharmony_ci                      "v15.0.0"
4231cb0ef41Sopenharmony_ci                    ],
4241cb0ef41Sopenharmony_ci                    "changes": []
4251cb0ef41Sopenharmony_ci                  },
4261cb0ef41Sopenharmony_ci                  "desc": "Must be `'ECDSA'`."
4271cb0ef41Sopenharmony_ci                }
4281cb0ef41Sopenharmony_ci              ]
4291cb0ef41Sopenharmony_ci            },
4301cb0ef41Sopenharmony_ci            {
4311cb0ef41Sopenharmony_ci              "textRaw": "Class: `EcKeyGenParams`",
4321cb0ef41Sopenharmony_ci              "type": "class",
4331cb0ef41Sopenharmony_ci              "name": "EcKeyGenParams",
4341cb0ef41Sopenharmony_ci              "meta": {
4351cb0ef41Sopenharmony_ci                "added": [
4361cb0ef41Sopenharmony_ci                  "v15.0.0"
4371cb0ef41Sopenharmony_ci                ],
4381cb0ef41Sopenharmony_ci                "changes": []
4391cb0ef41Sopenharmony_ci              },
4401cb0ef41Sopenharmony_ci              "properties": [
4411cb0ef41Sopenharmony_ci                {
4421cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be one of `'ECDSA'` or `'ECDH'`.",
4431cb0ef41Sopenharmony_ci                  "type": "string",
4441cb0ef41Sopenharmony_ci                  "name": "Type",
4451cb0ef41Sopenharmony_ci                  "meta": {
4461cb0ef41Sopenharmony_ci                    "added": [
4471cb0ef41Sopenharmony_ci                      "v15.0.0"
4481cb0ef41Sopenharmony_ci                    ],
4491cb0ef41Sopenharmony_ci                    "changes": []
4501cb0ef41Sopenharmony_ci                  },
4511cb0ef41Sopenharmony_ci                  "desc": "Must be one of `'ECDSA'` or `'ECDH'`."
4521cb0ef41Sopenharmony_ci                },
4531cb0ef41Sopenharmony_ci                {
4541cb0ef41Sopenharmony_ci                  "textRaw": "`namedCurve` Type: {string} Must be one of `'P-256'`, `'P-384'`, `'P-521'`.",
4551cb0ef41Sopenharmony_ci                  "type": "string",
4561cb0ef41Sopenharmony_ci                  "name": "Type",
4571cb0ef41Sopenharmony_ci                  "meta": {
4581cb0ef41Sopenharmony_ci                    "added": [
4591cb0ef41Sopenharmony_ci                      "v15.0.0"
4601cb0ef41Sopenharmony_ci                    ],
4611cb0ef41Sopenharmony_ci                    "changes": []
4621cb0ef41Sopenharmony_ci                  },
4631cb0ef41Sopenharmony_ci                  "desc": "Must be one of `'P-256'`, `'P-384'`, `'P-521'`."
4641cb0ef41Sopenharmony_ci                }
4651cb0ef41Sopenharmony_ci              ]
4661cb0ef41Sopenharmony_ci            },
4671cb0ef41Sopenharmony_ci            {
4681cb0ef41Sopenharmony_ci              "textRaw": "Class: `EcKeyImportParams`",
4691cb0ef41Sopenharmony_ci              "type": "class",
4701cb0ef41Sopenharmony_ci              "name": "EcKeyImportParams",
4711cb0ef41Sopenharmony_ci              "meta": {
4721cb0ef41Sopenharmony_ci                "added": [
4731cb0ef41Sopenharmony_ci                  "v15.0.0"
4741cb0ef41Sopenharmony_ci                ],
4751cb0ef41Sopenharmony_ci                "changes": []
4761cb0ef41Sopenharmony_ci              },
4771cb0ef41Sopenharmony_ci              "properties": [
4781cb0ef41Sopenharmony_ci                {
4791cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be one of `'ECDSA'` or `'ECDH'`.",
4801cb0ef41Sopenharmony_ci                  "type": "string",
4811cb0ef41Sopenharmony_ci                  "name": "Type",
4821cb0ef41Sopenharmony_ci                  "meta": {
4831cb0ef41Sopenharmony_ci                    "added": [
4841cb0ef41Sopenharmony_ci                      "v15.0.0"
4851cb0ef41Sopenharmony_ci                    ],
4861cb0ef41Sopenharmony_ci                    "changes": []
4871cb0ef41Sopenharmony_ci                  },
4881cb0ef41Sopenharmony_ci                  "desc": "Must be one of `'ECDSA'` or `'ECDH'`."
4891cb0ef41Sopenharmony_ci                },
4901cb0ef41Sopenharmony_ci                {
4911cb0ef41Sopenharmony_ci                  "textRaw": "`namedCurve` Type: {string} Must be one of `'P-256'`, `'P-384'`, `'P-521'`.",
4921cb0ef41Sopenharmony_ci                  "type": "string",
4931cb0ef41Sopenharmony_ci                  "name": "Type",
4941cb0ef41Sopenharmony_ci                  "meta": {
4951cb0ef41Sopenharmony_ci                    "added": [
4961cb0ef41Sopenharmony_ci                      "v15.0.0"
4971cb0ef41Sopenharmony_ci                    ],
4981cb0ef41Sopenharmony_ci                    "changes": []
4991cb0ef41Sopenharmony_ci                  },
5001cb0ef41Sopenharmony_ci                  "desc": "Must be one of `'P-256'`, `'P-384'`, `'P-521'`."
5011cb0ef41Sopenharmony_ci                }
5021cb0ef41Sopenharmony_ci              ]
5031cb0ef41Sopenharmony_ci            },
5041cb0ef41Sopenharmony_ci            {
5051cb0ef41Sopenharmony_ci              "textRaw": "Class: `Ed448Params`",
5061cb0ef41Sopenharmony_ci              "type": "class",
5071cb0ef41Sopenharmony_ci              "name": "Ed448Params",
5081cb0ef41Sopenharmony_ci              "meta": {
5091cb0ef41Sopenharmony_ci                "added": [
5101cb0ef41Sopenharmony_ci                  "v15.0.0"
5111cb0ef41Sopenharmony_ci                ],
5121cb0ef41Sopenharmony_ci                "changes": []
5131cb0ef41Sopenharmony_ci              },
5141cb0ef41Sopenharmony_ci              "properties": [
5151cb0ef41Sopenharmony_ci                {
5161cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'Ed448'`.",
5171cb0ef41Sopenharmony_ci                  "type": "string",
5181cb0ef41Sopenharmony_ci                  "name": "Type",
5191cb0ef41Sopenharmony_ci                  "meta": {
5201cb0ef41Sopenharmony_ci                    "added": [
5211cb0ef41Sopenharmony_ci                      "v18.4.0"
5221cb0ef41Sopenharmony_ci                    ],
5231cb0ef41Sopenharmony_ci                    "changes": []
5241cb0ef41Sopenharmony_ci                  },
5251cb0ef41Sopenharmony_ci                  "desc": "Must be `'Ed448'`."
5261cb0ef41Sopenharmony_ci                },
5271cb0ef41Sopenharmony_ci                {
5281cb0ef41Sopenharmony_ci                  "textRaw": "`context` Type: {ArrayBuffer|TypedArray|DataView|Buffer|undefined}",
5291cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer|undefined",
5301cb0ef41Sopenharmony_ci                  "name": "Type",
5311cb0ef41Sopenharmony_ci                  "meta": {
5321cb0ef41Sopenharmony_ci                    "added": [
5331cb0ef41Sopenharmony_ci                      "v18.4.0"
5341cb0ef41Sopenharmony_ci                    ],
5351cb0ef41Sopenharmony_ci                    "changes": []
5361cb0ef41Sopenharmony_ci                  },
5371cb0ef41Sopenharmony_ci                  "desc": "<p>The <code>context</code> member represents the optional context data to associate with\nthe message.\nThe Node.js Web Crypto API implementation only supports zero-length context\nwhich is equivalent to not providing context at all.</p>"
5381cb0ef41Sopenharmony_ci                }
5391cb0ef41Sopenharmony_ci              ]
5401cb0ef41Sopenharmony_ci            },
5411cb0ef41Sopenharmony_ci            {
5421cb0ef41Sopenharmony_ci              "textRaw": "Class: `HkdfParams`",
5431cb0ef41Sopenharmony_ci              "type": "class",
5441cb0ef41Sopenharmony_ci              "name": "HkdfParams",
5451cb0ef41Sopenharmony_ci              "meta": {
5461cb0ef41Sopenharmony_ci                "added": [
5471cb0ef41Sopenharmony_ci                  "v15.0.0"
5481cb0ef41Sopenharmony_ci                ],
5491cb0ef41Sopenharmony_ci                "changes": []
5501cb0ef41Sopenharmony_ci              },
5511cb0ef41Sopenharmony_ci              "properties": [
5521cb0ef41Sopenharmony_ci                {
5531cb0ef41Sopenharmony_ci                  "textRaw": "`hash` Type: {string|Object}",
5541cb0ef41Sopenharmony_ci                  "type": "string|Object",
5551cb0ef41Sopenharmony_ci                  "name": "Type",
5561cb0ef41Sopenharmony_ci                  "meta": {
5571cb0ef41Sopenharmony_ci                    "added": [
5581cb0ef41Sopenharmony_ci                      "v15.0.0"
5591cb0ef41Sopenharmony_ci                    ],
5601cb0ef41Sopenharmony_ci                    "changes": []
5611cb0ef41Sopenharmony_ci                  },
5621cb0ef41Sopenharmony_ci                  "desc": "<p>If represented as a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a>, the value must be one of:</p>\n<ul>\n<li><code>'SHA-1'</code></li>\n<li><code>'SHA-256'</code></li>\n<li><code>'SHA-384'</code></li>\n<li><code>'SHA-512'</code></li>\n</ul>\n<p>If represented as an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type\">&lt;Object&gt;</a>, the object must have a <code>name</code> property\nwhose value is one of the above listed values.</p>"
5631cb0ef41Sopenharmony_ci                },
5641cb0ef41Sopenharmony_ci                {
5651cb0ef41Sopenharmony_ci                  "textRaw": "`info` Type: {ArrayBuffer|TypedArray|DataView|Buffer}",
5661cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer",
5671cb0ef41Sopenharmony_ci                  "name": "Type",
5681cb0ef41Sopenharmony_ci                  "meta": {
5691cb0ef41Sopenharmony_ci                    "added": [
5701cb0ef41Sopenharmony_ci                      "v15.0.0"
5711cb0ef41Sopenharmony_ci                    ],
5721cb0ef41Sopenharmony_ci                    "changes": []
5731cb0ef41Sopenharmony_ci                  },
5741cb0ef41Sopenharmony_ci                  "desc": "<p>Provides application-specific contextual input to the HKDF algorithm.\nThis can be zero-length but must be provided.</p>"
5751cb0ef41Sopenharmony_ci                },
5761cb0ef41Sopenharmony_ci                {
5771cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'HKDF'`.",
5781cb0ef41Sopenharmony_ci                  "type": "string",
5791cb0ef41Sopenharmony_ci                  "name": "Type",
5801cb0ef41Sopenharmony_ci                  "meta": {
5811cb0ef41Sopenharmony_ci                    "added": [
5821cb0ef41Sopenharmony_ci                      "v15.0.0"
5831cb0ef41Sopenharmony_ci                    ],
5841cb0ef41Sopenharmony_ci                    "changes": []
5851cb0ef41Sopenharmony_ci                  },
5861cb0ef41Sopenharmony_ci                  "desc": "Must be `'HKDF'`."
5871cb0ef41Sopenharmony_ci                },
5881cb0ef41Sopenharmony_ci                {
5891cb0ef41Sopenharmony_ci                  "textRaw": "`salt` Type: {ArrayBuffer|TypedArray|DataView|Buffer}",
5901cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer",
5911cb0ef41Sopenharmony_ci                  "name": "Type",
5921cb0ef41Sopenharmony_ci                  "meta": {
5931cb0ef41Sopenharmony_ci                    "added": [
5941cb0ef41Sopenharmony_ci                      "v15.0.0"
5951cb0ef41Sopenharmony_ci                    ],
5961cb0ef41Sopenharmony_ci                    "changes": []
5971cb0ef41Sopenharmony_ci                  },
5981cb0ef41Sopenharmony_ci                  "desc": "<p>The salt value significantly improves the strength of the HKDF algorithm.\nIt should be random or pseudorandom and should be the same length as the\noutput of the digest function (for instance, if using <code>'SHA-256'</code> as the\ndigest, the salt should be 256-bits of random data).</p>"
5991cb0ef41Sopenharmony_ci                }
6001cb0ef41Sopenharmony_ci              ]
6011cb0ef41Sopenharmony_ci            },
6021cb0ef41Sopenharmony_ci            {
6031cb0ef41Sopenharmony_ci              "textRaw": "Class: `HmacImportParams`",
6041cb0ef41Sopenharmony_ci              "type": "class",
6051cb0ef41Sopenharmony_ci              "name": "HmacImportParams",
6061cb0ef41Sopenharmony_ci              "meta": {
6071cb0ef41Sopenharmony_ci                "added": [
6081cb0ef41Sopenharmony_ci                  "v15.0.0"
6091cb0ef41Sopenharmony_ci                ],
6101cb0ef41Sopenharmony_ci                "changes": []
6111cb0ef41Sopenharmony_ci              },
6121cb0ef41Sopenharmony_ci              "properties": [
6131cb0ef41Sopenharmony_ci                {
6141cb0ef41Sopenharmony_ci                  "textRaw": "`hash` Type: {string|Object}",
6151cb0ef41Sopenharmony_ci                  "type": "string|Object",
6161cb0ef41Sopenharmony_ci                  "name": "Type",
6171cb0ef41Sopenharmony_ci                  "meta": {
6181cb0ef41Sopenharmony_ci                    "added": [
6191cb0ef41Sopenharmony_ci                      "v15.0.0"
6201cb0ef41Sopenharmony_ci                    ],
6211cb0ef41Sopenharmony_ci                    "changes": []
6221cb0ef41Sopenharmony_ci                  },
6231cb0ef41Sopenharmony_ci                  "desc": "<p>If represented as a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a>, the value must be one of:</p>\n<ul>\n<li><code>'SHA-1'</code></li>\n<li><code>'SHA-256'</code></li>\n<li><code>'SHA-384'</code></li>\n<li><code>'SHA-512'</code></li>\n</ul>\n<p>If represented as an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type\">&lt;Object&gt;</a>, the object must have a <code>name</code> property\nwhose value is one of the above listed values.</p>"
6241cb0ef41Sopenharmony_ci                },
6251cb0ef41Sopenharmony_ci                {
6261cb0ef41Sopenharmony_ci                  "textRaw": "`length` Type: {number}",
6271cb0ef41Sopenharmony_ci                  "type": "number",
6281cb0ef41Sopenharmony_ci                  "name": "Type",
6291cb0ef41Sopenharmony_ci                  "meta": {
6301cb0ef41Sopenharmony_ci                    "added": [
6311cb0ef41Sopenharmony_ci                      "v15.0.0"
6321cb0ef41Sopenharmony_ci                    ],
6331cb0ef41Sopenharmony_ci                    "changes": []
6341cb0ef41Sopenharmony_ci                  },
6351cb0ef41Sopenharmony_ci                  "desc": "<p>The optional number of bits in the HMAC key. This is optional and should\nbe omitted for most cases.</p>"
6361cb0ef41Sopenharmony_ci                },
6371cb0ef41Sopenharmony_ci                {
6381cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'HMAC'`.",
6391cb0ef41Sopenharmony_ci                  "type": "string",
6401cb0ef41Sopenharmony_ci                  "name": "Type",
6411cb0ef41Sopenharmony_ci                  "meta": {
6421cb0ef41Sopenharmony_ci                    "added": [
6431cb0ef41Sopenharmony_ci                      "v15.0.0"
6441cb0ef41Sopenharmony_ci                    ],
6451cb0ef41Sopenharmony_ci                    "changes": []
6461cb0ef41Sopenharmony_ci                  },
6471cb0ef41Sopenharmony_ci                  "desc": "Must be `'HMAC'`."
6481cb0ef41Sopenharmony_ci                }
6491cb0ef41Sopenharmony_ci              ]
6501cb0ef41Sopenharmony_ci            },
6511cb0ef41Sopenharmony_ci            {
6521cb0ef41Sopenharmony_ci              "textRaw": "Class: `HmacKeyGenParams`",
6531cb0ef41Sopenharmony_ci              "type": "class",
6541cb0ef41Sopenharmony_ci              "name": "HmacKeyGenParams",
6551cb0ef41Sopenharmony_ci              "meta": {
6561cb0ef41Sopenharmony_ci                "added": [
6571cb0ef41Sopenharmony_ci                  "v15.0.0"
6581cb0ef41Sopenharmony_ci                ],
6591cb0ef41Sopenharmony_ci                "changes": []
6601cb0ef41Sopenharmony_ci              },
6611cb0ef41Sopenharmony_ci              "properties": [
6621cb0ef41Sopenharmony_ci                {
6631cb0ef41Sopenharmony_ci                  "textRaw": "`hash` Type: {string|Object}",
6641cb0ef41Sopenharmony_ci                  "type": "string|Object",
6651cb0ef41Sopenharmony_ci                  "name": "Type",
6661cb0ef41Sopenharmony_ci                  "meta": {
6671cb0ef41Sopenharmony_ci                    "added": [
6681cb0ef41Sopenharmony_ci                      "v15.0.0"
6691cb0ef41Sopenharmony_ci                    ],
6701cb0ef41Sopenharmony_ci                    "changes": []
6711cb0ef41Sopenharmony_ci                  },
6721cb0ef41Sopenharmony_ci                  "desc": "<p>If represented as a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a>, the value must be one of:</p>\n<ul>\n<li><code>'SHA-1'</code></li>\n<li><code>'SHA-256'</code></li>\n<li><code>'SHA-384'</code></li>\n<li><code>'SHA-512'</code></li>\n</ul>\n<p>If represented as an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type\">&lt;Object&gt;</a>, the object must have a <code>name</code> property\nwhose value is one of the above listed values.</p>"
6731cb0ef41Sopenharmony_ci                },
6741cb0ef41Sopenharmony_ci                {
6751cb0ef41Sopenharmony_ci                  "textRaw": "`length` Type: {number}",
6761cb0ef41Sopenharmony_ci                  "type": "number",
6771cb0ef41Sopenharmony_ci                  "name": "Type",
6781cb0ef41Sopenharmony_ci                  "meta": {
6791cb0ef41Sopenharmony_ci                    "added": [
6801cb0ef41Sopenharmony_ci                      "v15.0.0"
6811cb0ef41Sopenharmony_ci                    ],
6821cb0ef41Sopenharmony_ci                    "changes": []
6831cb0ef41Sopenharmony_ci                  },
6841cb0ef41Sopenharmony_ci                  "desc": "<p>The number of bits to generate for the HMAC key. If omitted,\nthe length will be determined by the hash algorithm used.\nThis is optional and should be omitted for most cases.</p>"
6851cb0ef41Sopenharmony_ci                },
6861cb0ef41Sopenharmony_ci                {
6871cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'HMAC'`.",
6881cb0ef41Sopenharmony_ci                  "type": "string",
6891cb0ef41Sopenharmony_ci                  "name": "Type",
6901cb0ef41Sopenharmony_ci                  "meta": {
6911cb0ef41Sopenharmony_ci                    "added": [
6921cb0ef41Sopenharmony_ci                      "v15.0.0"
6931cb0ef41Sopenharmony_ci                    ],
6941cb0ef41Sopenharmony_ci                    "changes": []
6951cb0ef41Sopenharmony_ci                  },
6961cb0ef41Sopenharmony_ci                  "desc": "Must be `'HMAC'`."
6971cb0ef41Sopenharmony_ci                }
6981cb0ef41Sopenharmony_ci              ]
6991cb0ef41Sopenharmony_ci            },
7001cb0ef41Sopenharmony_ci            {
7011cb0ef41Sopenharmony_ci              "textRaw": "Class: `Pbkdf2Params`",
7021cb0ef41Sopenharmony_ci              "type": "class",
7031cb0ef41Sopenharmony_ci              "name": "Pbkdf2Params",
7041cb0ef41Sopenharmony_ci              "meta": {
7051cb0ef41Sopenharmony_ci                "added": [
7061cb0ef41Sopenharmony_ci                  "v15.0.0"
7071cb0ef41Sopenharmony_ci                ],
7081cb0ef41Sopenharmony_ci                "changes": []
7091cb0ef41Sopenharmony_ci              },
7101cb0ef41Sopenharmony_ci              "properties": [
7111cb0ef41Sopenharmony_ci                {
7121cb0ef41Sopenharmony_ci                  "textRaw": "`hash` Type: {string|Object}",
7131cb0ef41Sopenharmony_ci                  "type": "string|Object",
7141cb0ef41Sopenharmony_ci                  "name": "Type",
7151cb0ef41Sopenharmony_ci                  "meta": {
7161cb0ef41Sopenharmony_ci                    "added": [
7171cb0ef41Sopenharmony_ci                      "v15.0.0"
7181cb0ef41Sopenharmony_ci                    ],
7191cb0ef41Sopenharmony_ci                    "changes": []
7201cb0ef41Sopenharmony_ci                  },
7211cb0ef41Sopenharmony_ci                  "desc": "<p>If represented as a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a>, the value must be one of:</p>\n<ul>\n<li><code>'SHA-1'</code></li>\n<li><code>'SHA-256'</code></li>\n<li><code>'SHA-384'</code></li>\n<li><code>'SHA-512'</code></li>\n</ul>\n<p>If represented as an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type\">&lt;Object&gt;</a>, the object must have a <code>name</code> property\nwhose value is one of the above listed values.</p>"
7221cb0ef41Sopenharmony_ci                },
7231cb0ef41Sopenharmony_ci                {
7241cb0ef41Sopenharmony_ci                  "textRaw": "`iterations` Type: {number}",
7251cb0ef41Sopenharmony_ci                  "type": "number",
7261cb0ef41Sopenharmony_ci                  "name": "Type",
7271cb0ef41Sopenharmony_ci                  "meta": {
7281cb0ef41Sopenharmony_ci                    "added": [
7291cb0ef41Sopenharmony_ci                      "v15.0.0"
7301cb0ef41Sopenharmony_ci                    ],
7311cb0ef41Sopenharmony_ci                    "changes": []
7321cb0ef41Sopenharmony_ci                  },
7331cb0ef41Sopenharmony_ci                  "desc": "<p>The number of iterations the PBKDF2 algorithm should make when deriving bits.</p>"
7341cb0ef41Sopenharmony_ci                },
7351cb0ef41Sopenharmony_ci                {
7361cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'PBKDF2'`.",
7371cb0ef41Sopenharmony_ci                  "type": "string",
7381cb0ef41Sopenharmony_ci                  "name": "Type",
7391cb0ef41Sopenharmony_ci                  "meta": {
7401cb0ef41Sopenharmony_ci                    "added": [
7411cb0ef41Sopenharmony_ci                      "v15.0.0"
7421cb0ef41Sopenharmony_ci                    ],
7431cb0ef41Sopenharmony_ci                    "changes": []
7441cb0ef41Sopenharmony_ci                  },
7451cb0ef41Sopenharmony_ci                  "desc": "Must be `'PBKDF2'`."
7461cb0ef41Sopenharmony_ci                },
7471cb0ef41Sopenharmony_ci                {
7481cb0ef41Sopenharmony_ci                  "textRaw": "`salt` Type: {ArrayBuffer|TypedArray|DataView|Buffer}",
7491cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer",
7501cb0ef41Sopenharmony_ci                  "name": "Type",
7511cb0ef41Sopenharmony_ci                  "meta": {
7521cb0ef41Sopenharmony_ci                    "added": [
7531cb0ef41Sopenharmony_ci                      "v15.0.0"
7541cb0ef41Sopenharmony_ci                    ],
7551cb0ef41Sopenharmony_ci                    "changes": []
7561cb0ef41Sopenharmony_ci                  },
7571cb0ef41Sopenharmony_ci                  "desc": "<p>Should be at least 16 random or pseudorandom bytes.</p>"
7581cb0ef41Sopenharmony_ci                }
7591cb0ef41Sopenharmony_ci              ]
7601cb0ef41Sopenharmony_ci            },
7611cb0ef41Sopenharmony_ci            {
7621cb0ef41Sopenharmony_ci              "textRaw": "Class: `RsaHashedImportParams`",
7631cb0ef41Sopenharmony_ci              "type": "class",
7641cb0ef41Sopenharmony_ci              "name": "RsaHashedImportParams",
7651cb0ef41Sopenharmony_ci              "meta": {
7661cb0ef41Sopenharmony_ci                "added": [
7671cb0ef41Sopenharmony_ci                  "v15.0.0"
7681cb0ef41Sopenharmony_ci                ],
7691cb0ef41Sopenharmony_ci                "changes": []
7701cb0ef41Sopenharmony_ci              },
7711cb0ef41Sopenharmony_ci              "properties": [
7721cb0ef41Sopenharmony_ci                {
7731cb0ef41Sopenharmony_ci                  "textRaw": "`hash` Type: {string|Object}",
7741cb0ef41Sopenharmony_ci                  "type": "string|Object",
7751cb0ef41Sopenharmony_ci                  "name": "Type",
7761cb0ef41Sopenharmony_ci                  "meta": {
7771cb0ef41Sopenharmony_ci                    "added": [
7781cb0ef41Sopenharmony_ci                      "v15.0.0"
7791cb0ef41Sopenharmony_ci                    ],
7801cb0ef41Sopenharmony_ci                    "changes": []
7811cb0ef41Sopenharmony_ci                  },
7821cb0ef41Sopenharmony_ci                  "desc": "<p>If represented as a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a>, the value must be one of:</p>\n<ul>\n<li><code>'SHA-1'</code></li>\n<li><code>'SHA-256'</code></li>\n<li><code>'SHA-384'</code></li>\n<li><code>'SHA-512'</code></li>\n</ul>\n<p>If represented as an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type\">&lt;Object&gt;</a>, the object must have a <code>name</code> property\nwhose value is one of the above listed values.</p>"
7831cb0ef41Sopenharmony_ci                },
7841cb0ef41Sopenharmony_ci                {
7851cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be one of `'RSASSA-PKCS1-v1_5'`, `'RSA-PSS'`, or `'RSA-OAEP'`.",
7861cb0ef41Sopenharmony_ci                  "type": "string",
7871cb0ef41Sopenharmony_ci                  "name": "Type",
7881cb0ef41Sopenharmony_ci                  "meta": {
7891cb0ef41Sopenharmony_ci                    "added": [
7901cb0ef41Sopenharmony_ci                      "v15.0.0"
7911cb0ef41Sopenharmony_ci                    ],
7921cb0ef41Sopenharmony_ci                    "changes": []
7931cb0ef41Sopenharmony_ci                  },
7941cb0ef41Sopenharmony_ci                  "desc": "Must be one of `'RSASSA-PKCS1-v1_5'`, `'RSA-PSS'`, or `'RSA-OAEP'`."
7951cb0ef41Sopenharmony_ci                }
7961cb0ef41Sopenharmony_ci              ]
7971cb0ef41Sopenharmony_ci            },
7981cb0ef41Sopenharmony_ci            {
7991cb0ef41Sopenharmony_ci              "textRaw": "Class: `RsaHashedKeyGenParams`",
8001cb0ef41Sopenharmony_ci              "type": "class",
8011cb0ef41Sopenharmony_ci              "name": "RsaHashedKeyGenParams",
8021cb0ef41Sopenharmony_ci              "meta": {
8031cb0ef41Sopenharmony_ci                "added": [
8041cb0ef41Sopenharmony_ci                  "v15.0.0"
8051cb0ef41Sopenharmony_ci                ],
8061cb0ef41Sopenharmony_ci                "changes": []
8071cb0ef41Sopenharmony_ci              },
8081cb0ef41Sopenharmony_ci              "properties": [
8091cb0ef41Sopenharmony_ci                {
8101cb0ef41Sopenharmony_ci                  "textRaw": "`hash` Type: {string|Object}",
8111cb0ef41Sopenharmony_ci                  "type": "string|Object",
8121cb0ef41Sopenharmony_ci                  "name": "Type",
8131cb0ef41Sopenharmony_ci                  "meta": {
8141cb0ef41Sopenharmony_ci                    "added": [
8151cb0ef41Sopenharmony_ci                      "v15.0.0"
8161cb0ef41Sopenharmony_ci                    ],
8171cb0ef41Sopenharmony_ci                    "changes": []
8181cb0ef41Sopenharmony_ci                  },
8191cb0ef41Sopenharmony_ci                  "desc": "<p>If represented as a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a>, the value must be one of:</p>\n<ul>\n<li><code>'SHA-1'</code></li>\n<li><code>'SHA-256'</code></li>\n<li><code>'SHA-384'</code></li>\n<li><code>'SHA-512'</code></li>\n</ul>\n<p>If represented as an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type\">&lt;Object&gt;</a>, the object must have a <code>name</code> property\nwhose value is one of the above listed values.</p>"
8201cb0ef41Sopenharmony_ci                },
8211cb0ef41Sopenharmony_ci                {
8221cb0ef41Sopenharmony_ci                  "textRaw": "`modulusLength` Type: {number}",
8231cb0ef41Sopenharmony_ci                  "type": "number",
8241cb0ef41Sopenharmony_ci                  "name": "Type",
8251cb0ef41Sopenharmony_ci                  "meta": {
8261cb0ef41Sopenharmony_ci                    "added": [
8271cb0ef41Sopenharmony_ci                      "v15.0.0"
8281cb0ef41Sopenharmony_ci                    ],
8291cb0ef41Sopenharmony_ci                    "changes": []
8301cb0ef41Sopenharmony_ci                  },
8311cb0ef41Sopenharmony_ci                  "desc": "<p>The length in bits of the RSA modulus. As a best practice, this should be\nat least <code>2048</code>.</p>"
8321cb0ef41Sopenharmony_ci                },
8331cb0ef41Sopenharmony_ci                {
8341cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be one of `'RSASSA-PKCS1-v1_5'`, `'RSA-PSS'`, or `'RSA-OAEP'`.",
8351cb0ef41Sopenharmony_ci                  "type": "string",
8361cb0ef41Sopenharmony_ci                  "name": "Type",
8371cb0ef41Sopenharmony_ci                  "meta": {
8381cb0ef41Sopenharmony_ci                    "added": [
8391cb0ef41Sopenharmony_ci                      "v15.0.0"
8401cb0ef41Sopenharmony_ci                    ],
8411cb0ef41Sopenharmony_ci                    "changes": []
8421cb0ef41Sopenharmony_ci                  },
8431cb0ef41Sopenharmony_ci                  "desc": "Must be one of `'RSASSA-PKCS1-v1_5'`, `'RSA-PSS'`, or `'RSA-OAEP'`."
8441cb0ef41Sopenharmony_ci                },
8451cb0ef41Sopenharmony_ci                {
8461cb0ef41Sopenharmony_ci                  "textRaw": "`publicExponent` Type: {Uint8Array}",
8471cb0ef41Sopenharmony_ci                  "type": "Uint8Array",
8481cb0ef41Sopenharmony_ci                  "name": "Type",
8491cb0ef41Sopenharmony_ci                  "meta": {
8501cb0ef41Sopenharmony_ci                    "added": [
8511cb0ef41Sopenharmony_ci                      "v15.0.0"
8521cb0ef41Sopenharmony_ci                    ],
8531cb0ef41Sopenharmony_ci                    "changes": []
8541cb0ef41Sopenharmony_ci                  },
8551cb0ef41Sopenharmony_ci                  "desc": "<p>The RSA public exponent. This must be a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array\" class=\"type\">&lt;Uint8Array&gt;</a> containing a big-endian,\nunsigned integer that must fit within 32-bits. The <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array\" class=\"type\">&lt;Uint8Array&gt;</a> may contain an\narbitrary number of leading zero-bits. The value must be a prime number. Unless\nthere is reason to use a different value, use <code>new Uint8Array([1, 0, 1])</code>\n(65537) as the public exponent.</p>"
8561cb0ef41Sopenharmony_ci                }
8571cb0ef41Sopenharmony_ci              ]
8581cb0ef41Sopenharmony_ci            },
8591cb0ef41Sopenharmony_ci            {
8601cb0ef41Sopenharmony_ci              "textRaw": "Class: `RsaOaepParams`",
8611cb0ef41Sopenharmony_ci              "type": "class",
8621cb0ef41Sopenharmony_ci              "name": "RsaOaepParams",
8631cb0ef41Sopenharmony_ci              "meta": {
8641cb0ef41Sopenharmony_ci                "added": [
8651cb0ef41Sopenharmony_ci                  "v15.0.0"
8661cb0ef41Sopenharmony_ci                ],
8671cb0ef41Sopenharmony_ci                "changes": []
8681cb0ef41Sopenharmony_ci              },
8691cb0ef41Sopenharmony_ci              "properties": [
8701cb0ef41Sopenharmony_ci                {
8711cb0ef41Sopenharmony_ci                  "textRaw": "`label` Type: {ArrayBuffer|TypedArray|DataView|Buffer}",
8721cb0ef41Sopenharmony_ci                  "type": "ArrayBuffer|TypedArray|DataView|Buffer",
8731cb0ef41Sopenharmony_ci                  "name": "Type",
8741cb0ef41Sopenharmony_ci                  "meta": {
8751cb0ef41Sopenharmony_ci                    "added": [
8761cb0ef41Sopenharmony_ci                      "v15.0.0"
8771cb0ef41Sopenharmony_ci                    ],
8781cb0ef41Sopenharmony_ci                    "changes": []
8791cb0ef41Sopenharmony_ci                  },
8801cb0ef41Sopenharmony_ci                  "desc": "<p>An additional collection of bytes that will not be encrypted, but will be bound\nto the generated ciphertext.</p>\n<p>The <code>rsaOaepParams.label</code> parameter is optional.</p>"
8811cb0ef41Sopenharmony_ci                },
8821cb0ef41Sopenharmony_ci                {
8831cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} must be `'RSA-OAEP'`.",
8841cb0ef41Sopenharmony_ci                  "type": "string",
8851cb0ef41Sopenharmony_ci                  "name": "Type",
8861cb0ef41Sopenharmony_ci                  "meta": {
8871cb0ef41Sopenharmony_ci                    "added": [
8881cb0ef41Sopenharmony_ci                      "v15.0.0"
8891cb0ef41Sopenharmony_ci                    ],
8901cb0ef41Sopenharmony_ci                    "changes": []
8911cb0ef41Sopenharmony_ci                  },
8921cb0ef41Sopenharmony_ci                  "desc": "must be `'RSA-OAEP'`."
8931cb0ef41Sopenharmony_ci                }
8941cb0ef41Sopenharmony_ci              ]
8951cb0ef41Sopenharmony_ci            },
8961cb0ef41Sopenharmony_ci            {
8971cb0ef41Sopenharmony_ci              "textRaw": "Class: `RsaPssParams`",
8981cb0ef41Sopenharmony_ci              "type": "class",
8991cb0ef41Sopenharmony_ci              "name": "RsaPssParams",
9001cb0ef41Sopenharmony_ci              "meta": {
9011cb0ef41Sopenharmony_ci                "added": [
9021cb0ef41Sopenharmony_ci                  "v15.0.0"
9031cb0ef41Sopenharmony_ci                ],
9041cb0ef41Sopenharmony_ci                "changes": []
9051cb0ef41Sopenharmony_ci              },
9061cb0ef41Sopenharmony_ci              "properties": [
9071cb0ef41Sopenharmony_ci                {
9081cb0ef41Sopenharmony_ci                  "textRaw": "`name` Type: {string} Must be `'RSA-PSS'`.",
9091cb0ef41Sopenharmony_ci                  "type": "string",
9101cb0ef41Sopenharmony_ci                  "name": "Type",
9111cb0ef41Sopenharmony_ci                  "meta": {
9121cb0ef41Sopenharmony_ci                    "added": [
9131cb0ef41Sopenharmony_ci                      "v15.0.0"
9141cb0ef41Sopenharmony_ci                    ],
9151cb0ef41Sopenharmony_ci                    "changes": []
9161cb0ef41Sopenharmony_ci                  },
9171cb0ef41Sopenharmony_ci                  "desc": "Must be `'RSA-PSS'`."
9181cb0ef41Sopenharmony_ci                },
9191cb0ef41Sopenharmony_ci                {
9201cb0ef41Sopenharmony_ci                  "textRaw": "`saltLength` Type: {number}",
9211cb0ef41Sopenharmony_ci                  "type": "number",
9221cb0ef41Sopenharmony_ci                  "name": "Type",
9231cb0ef41Sopenharmony_ci                  "meta": {
9241cb0ef41Sopenharmony_ci                    "added": [
9251cb0ef41Sopenharmony_ci                      "v15.0.0"
9261cb0ef41Sopenharmony_ci                    ],
9271cb0ef41Sopenharmony_ci                    "changes": []
9281cb0ef41Sopenharmony_ci                  },
9291cb0ef41Sopenharmony_ci                  "desc": "<p>The length (in bytes) of the random salt to use.</p>"
9301cb0ef41Sopenharmony_ci                }
9311cb0ef41Sopenharmony_ci              ]
9321cb0ef41Sopenharmony_ci            }
9331cb0ef41Sopenharmony_ci          ],
9341cb0ef41Sopenharmony_ci          "type": "module",
9351cb0ef41Sopenharmony_ci          "displayName": "Algorithm parameters"
9361cb0ef41Sopenharmony_ci        }
9371cb0ef41Sopenharmony_ci      ],
9381cb0ef41Sopenharmony_ci      "classes": [
9391cb0ef41Sopenharmony_ci        {
9401cb0ef41Sopenharmony_ci          "textRaw": "Class: `Crypto`",
9411cb0ef41Sopenharmony_ci          "type": "class",
9421cb0ef41Sopenharmony_ci          "name": "Crypto",
9431cb0ef41Sopenharmony_ci          "meta": {
9441cb0ef41Sopenharmony_ci            "added": [
9451cb0ef41Sopenharmony_ci              "v15.0.0"
9461cb0ef41Sopenharmony_ci            ],
9471cb0ef41Sopenharmony_ci            "changes": []
9481cb0ef41Sopenharmony_ci          },
9491cb0ef41Sopenharmony_ci          "desc": "<p>Calling <code>require('node:crypto').webcrypto</code> returns an instance of the <code>Crypto</code>\nclass. <code>Crypto</code> is a singleton that provides access to the remainder of the\ncrypto API.</p>",
9501cb0ef41Sopenharmony_ci          "properties": [
9511cb0ef41Sopenharmony_ci            {
9521cb0ef41Sopenharmony_ci              "textRaw": "`subtle` Type: {SubtleCrypto}",
9531cb0ef41Sopenharmony_ci              "type": "SubtleCrypto",
9541cb0ef41Sopenharmony_ci              "name": "Type",
9551cb0ef41Sopenharmony_ci              "meta": {
9561cb0ef41Sopenharmony_ci                "added": [
9571cb0ef41Sopenharmony_ci                  "v15.0.0"
9581cb0ef41Sopenharmony_ci                ],
9591cb0ef41Sopenharmony_ci                "changes": []
9601cb0ef41Sopenharmony_ci              },
9611cb0ef41Sopenharmony_ci              "desc": "<p>Provides access to the <code>SubtleCrypto</code> API.</p>"
9621cb0ef41Sopenharmony_ci            }
9631cb0ef41Sopenharmony_ci          ],
9641cb0ef41Sopenharmony_ci          "methods": [
9651cb0ef41Sopenharmony_ci            {
9661cb0ef41Sopenharmony_ci              "textRaw": "`crypto.getRandomValues(typedArray)`",
9671cb0ef41Sopenharmony_ci              "type": "method",
9681cb0ef41Sopenharmony_ci              "name": "getRandomValues",
9691cb0ef41Sopenharmony_ci              "meta": {
9701cb0ef41Sopenharmony_ci                "added": [
9711cb0ef41Sopenharmony_ci                  "v15.0.0"
9721cb0ef41Sopenharmony_ci                ],
9731cb0ef41Sopenharmony_ci                "changes": []
9741cb0ef41Sopenharmony_ci              },
9751cb0ef41Sopenharmony_ci              "signatures": [
9761cb0ef41Sopenharmony_ci                {
9771cb0ef41Sopenharmony_ci                  "return": {
9781cb0ef41Sopenharmony_ci                    "textRaw": "Returns: {Buffer|TypedArray}",
9791cb0ef41Sopenharmony_ci                    "name": "return",
9801cb0ef41Sopenharmony_ci                    "type": "Buffer|TypedArray"
9811cb0ef41Sopenharmony_ci                  },
9821cb0ef41Sopenharmony_ci                  "params": [
9831cb0ef41Sopenharmony_ci                    {
9841cb0ef41Sopenharmony_ci                      "textRaw": "`typedArray` {Buffer|TypedArray}",
9851cb0ef41Sopenharmony_ci                      "name": "typedArray",
9861cb0ef41Sopenharmony_ci                      "type": "Buffer|TypedArray"
9871cb0ef41Sopenharmony_ci                    }
9881cb0ef41Sopenharmony_ci                  ]
9891cb0ef41Sopenharmony_ci                }
9901cb0ef41Sopenharmony_ci              ],
9911cb0ef41Sopenharmony_ci              "desc": "<p>Generates cryptographically strong random values. The given <code>typedArray</code> is\nfilled with random values, and a reference to <code>typedArray</code> is returned.</p>\n<p>The given <code>typedArray</code> must be an integer-based instance of <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\" class=\"type\">&lt;TypedArray&gt;</a>,\ni.e. <code>Float32Array</code> and <code>Float64Array</code> are not accepted.</p>\n<p>An error will be thrown if the given <code>typedArray</code> is larger than 65,536 bytes.</p>"
9921cb0ef41Sopenharmony_ci            },
9931cb0ef41Sopenharmony_ci            {
9941cb0ef41Sopenharmony_ci              "textRaw": "`crypto.randomUUID()`",
9951cb0ef41Sopenharmony_ci              "type": "method",
9961cb0ef41Sopenharmony_ci              "name": "randomUUID",
9971cb0ef41Sopenharmony_ci              "meta": {
9981cb0ef41Sopenharmony_ci                "added": [
9991cb0ef41Sopenharmony_ci                  "v16.7.0"
10001cb0ef41Sopenharmony_ci                ],
10011cb0ef41Sopenharmony_ci                "changes": []
10021cb0ef41Sopenharmony_ci              },
10031cb0ef41Sopenharmony_ci              "signatures": [
10041cb0ef41Sopenharmony_ci                {
10051cb0ef41Sopenharmony_ci                  "return": {
10061cb0ef41Sopenharmony_ci                    "textRaw": "Returns: {string}",
10071cb0ef41Sopenharmony_ci                    "name": "return",
10081cb0ef41Sopenharmony_ci                    "type": "string"
10091cb0ef41Sopenharmony_ci                  },
10101cb0ef41Sopenharmony_ci                  "params": []
10111cb0ef41Sopenharmony_ci                }
10121cb0ef41Sopenharmony_ci              ],
10131cb0ef41Sopenharmony_ci              "desc": "<p>Generates a random <a href=\"https://www.rfc-editor.org/rfc/rfc4122.txt\">RFC 4122</a> version 4 UUID. The UUID is generated using a\ncryptographic pseudorandom number generator.</p>"
10141cb0ef41Sopenharmony_ci            }
10151cb0ef41Sopenharmony_ci          ]
10161cb0ef41Sopenharmony_ci        },
10171cb0ef41Sopenharmony_ci        {
10181cb0ef41Sopenharmony_ci          "textRaw": "Class: `CryptoKey`",
10191cb0ef41Sopenharmony_ci          "type": "class",
10201cb0ef41Sopenharmony_ci          "name": "CryptoKey",
10211cb0ef41Sopenharmony_ci          "meta": {
10221cb0ef41Sopenharmony_ci            "added": [
10231cb0ef41Sopenharmony_ci              "v15.0.0"
10241cb0ef41Sopenharmony_ci            ],
10251cb0ef41Sopenharmony_ci            "changes": []
10261cb0ef41Sopenharmony_ci          },
10271cb0ef41Sopenharmony_ci          "properties": [
10281cb0ef41Sopenharmony_ci            {
10291cb0ef41Sopenharmony_ci              "textRaw": "`cryptoKey.algorithm`",
10301cb0ef41Sopenharmony_ci              "name": "algorithm",
10311cb0ef41Sopenharmony_ci              "meta": {
10321cb0ef41Sopenharmony_ci                "added": [
10331cb0ef41Sopenharmony_ci                  "v15.0.0"
10341cb0ef41Sopenharmony_ci                ],
10351cb0ef41Sopenharmony_ci                "changes": []
10361cb0ef41Sopenharmony_ci              },
10371cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li>Type: <a href=\"webcrypto.html#class-aeskeygenparams\" class=\"type\">&lt;AesKeyGenParams&gt;</a> | <a href=\"webcrypto.html#class-rsahashedkeygenparams\" class=\"type\">&lt;RsaHashedKeyGenParams&gt;</a> | <a href=\"webcrypto.html#class-eckeygenparams\" class=\"type\">&lt;EcKeyGenParams&gt;</a> | <a href=\"webcrypto.html#class-hmackeygenparams\" class=\"type\">&lt;HmacKeyGenParams&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<p>An object detailing the algorithm for which the key can be used along with\nadditional algorithm-specific parameters.</p>\n<p>Read-only.</p>"
10381cb0ef41Sopenharmony_ci            },
10391cb0ef41Sopenharmony_ci            {
10401cb0ef41Sopenharmony_ci              "textRaw": "`extractable` Type: {boolean}",
10411cb0ef41Sopenharmony_ci              "type": "boolean",
10421cb0ef41Sopenharmony_ci              "name": "Type",
10431cb0ef41Sopenharmony_ci              "meta": {
10441cb0ef41Sopenharmony_ci                "added": [
10451cb0ef41Sopenharmony_ci                  "v15.0.0"
10461cb0ef41Sopenharmony_ci                ],
10471cb0ef41Sopenharmony_ci                "changes": []
10481cb0ef41Sopenharmony_ci              },
10491cb0ef41Sopenharmony_ci              "desc": "<p>When <code>true</code>, the <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> can be extracted using either\n<code>subtleCrypto.exportKey()</code> or <code>subtleCrypto.wrapKey()</code>.</p>\n<p>Read-only.</p>"
10501cb0ef41Sopenharmony_ci            },
10511cb0ef41Sopenharmony_ci            {
10521cb0ef41Sopenharmony_ci              "textRaw": "`type` Type: {string} One of `'secret'`, `'private'`, or `'public'`.",
10531cb0ef41Sopenharmony_ci              "type": "string",
10541cb0ef41Sopenharmony_ci              "name": "Type",
10551cb0ef41Sopenharmony_ci              "meta": {
10561cb0ef41Sopenharmony_ci                "added": [
10571cb0ef41Sopenharmony_ci                  "v15.0.0"
10581cb0ef41Sopenharmony_ci                ],
10591cb0ef41Sopenharmony_ci                "changes": []
10601cb0ef41Sopenharmony_ci              },
10611cb0ef41Sopenharmony_ci              "desc": "<p>A string identifying whether the key is a symmetric (<code>'secret'</code>) or\nasymmetric (<code>'private'</code> or <code>'public'</code>) key.</p>",
10621cb0ef41Sopenharmony_ci              "shortDesc": "One of `'secret'`, `'private'`, or `'public'`."
10631cb0ef41Sopenharmony_ci            },
10641cb0ef41Sopenharmony_ci            {
10651cb0ef41Sopenharmony_ci              "textRaw": "`usages` Type: {string\\[]}",
10661cb0ef41Sopenharmony_ci              "type": "string\\[]",
10671cb0ef41Sopenharmony_ci              "name": "Type",
10681cb0ef41Sopenharmony_ci              "meta": {
10691cb0ef41Sopenharmony_ci                "added": [
10701cb0ef41Sopenharmony_ci                  "v15.0.0"
10711cb0ef41Sopenharmony_ci                ],
10721cb0ef41Sopenharmony_ci                "changes": []
10731cb0ef41Sopenharmony_ci              },
10741cb0ef41Sopenharmony_ci              "desc": "<p>An array of strings identifying the operations for which the\nkey may be used.</p>\n<p>The possible usages are:</p>\n<ul>\n<li><code>'encrypt'</code> - The key may be used to encrypt data.</li>\n<li><code>'decrypt'</code> - The key may be used to decrypt data.</li>\n<li><code>'sign'</code> - The key may be used to generate digital signatures.</li>\n<li><code>'verify'</code> - The key may be used to verify digital signatures.</li>\n<li><code>'deriveKey'</code> - The key may be used to derive a new key.</li>\n<li><code>'deriveBits'</code> - The key may be used to derive bits.</li>\n<li><code>'wrapKey'</code> - The key may be used to wrap another key.</li>\n<li><code>'unwrapKey'</code> - The key may be used to unwrap another key.</li>\n</ul>\n<p>Valid key usages depend on the key algorithm (identified by\n<code>cryptokey.algorithm.name</code>).</p>\n<table>\n<thead>\n<tr>\n<th>Key Type</th>\n<th><code>'encrypt'</code></th>\n<th><code>'decrypt'</code></th>\n<th><code>'sign'</code></th>\n<th><code>'verify'</code></th>\n<th><code>'deriveKey'</code></th>\n<th><code>'deriveBits'</code></th>\n<th><code>'wrapKey'</code></th>\n<th><code>'unwrapKey'</code></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>'AES-CBC'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-CTR'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-GCM'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-KW'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'ECDH'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'X25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'X448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'ECDSA'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'Ed25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-3\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'Ed448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-4\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'HDKF'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'HMAC'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'PBKDF2'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSA-OAEP'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'RSA-PSS'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSASSA-PKCS1-v1_5'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>"
10751cb0ef41Sopenharmony_ci            }
10761cb0ef41Sopenharmony_ci          ]
10771cb0ef41Sopenharmony_ci        },
10781cb0ef41Sopenharmony_ci        {
10791cb0ef41Sopenharmony_ci          "textRaw": "Class: `CryptoKeyPair`",
10801cb0ef41Sopenharmony_ci          "type": "class",
10811cb0ef41Sopenharmony_ci          "name": "CryptoKeyPair",
10821cb0ef41Sopenharmony_ci          "meta": {
10831cb0ef41Sopenharmony_ci            "added": [
10841cb0ef41Sopenharmony_ci              "v15.0.0"
10851cb0ef41Sopenharmony_ci            ],
10861cb0ef41Sopenharmony_ci            "changes": []
10871cb0ef41Sopenharmony_ci          },
10881cb0ef41Sopenharmony_ci          "desc": "<p>The <code>CryptoKeyPair</code> is a simple dictionary object with <code>publicKey</code> and\n<code>privateKey</code> properties, representing an asymmetric key pair.</p>",
10891cb0ef41Sopenharmony_ci          "properties": [
10901cb0ef41Sopenharmony_ci            {
10911cb0ef41Sopenharmony_ci              "textRaw": "`privateKey` Type: {CryptoKey} A {CryptoKey} whose `type` will be `'private'`.",
10921cb0ef41Sopenharmony_ci              "type": "CryptoKey",
10931cb0ef41Sopenharmony_ci              "name": "Type",
10941cb0ef41Sopenharmony_ci              "meta": {
10951cb0ef41Sopenharmony_ci                "added": [
10961cb0ef41Sopenharmony_ci                  "v15.0.0"
10971cb0ef41Sopenharmony_ci                ],
10981cb0ef41Sopenharmony_ci                "changes": []
10991cb0ef41Sopenharmony_ci              },
11001cb0ef41Sopenharmony_ci              "desc": "A {CryptoKey} whose `type` will be `'private'`."
11011cb0ef41Sopenharmony_ci            },
11021cb0ef41Sopenharmony_ci            {
11031cb0ef41Sopenharmony_ci              "textRaw": "`publicKey` Type: {CryptoKey} A {CryptoKey} whose `type` will be `'public'`.",
11041cb0ef41Sopenharmony_ci              "type": "CryptoKey",
11051cb0ef41Sopenharmony_ci              "name": "Type",
11061cb0ef41Sopenharmony_ci              "meta": {
11071cb0ef41Sopenharmony_ci                "added": [
11081cb0ef41Sopenharmony_ci                  "v15.0.0"
11091cb0ef41Sopenharmony_ci                ],
11101cb0ef41Sopenharmony_ci                "changes": []
11111cb0ef41Sopenharmony_ci              },
11121cb0ef41Sopenharmony_ci              "desc": "A {CryptoKey} whose `type` will be `'public'`."
11131cb0ef41Sopenharmony_ci            }
11141cb0ef41Sopenharmony_ci          ]
11151cb0ef41Sopenharmony_ci        },
11161cb0ef41Sopenharmony_ci        {
11171cb0ef41Sopenharmony_ci          "textRaw": "Class: `SubtleCrypto`",
11181cb0ef41Sopenharmony_ci          "type": "class",
11191cb0ef41Sopenharmony_ci          "name": "SubtleCrypto",
11201cb0ef41Sopenharmony_ci          "meta": {
11211cb0ef41Sopenharmony_ci            "added": [
11221cb0ef41Sopenharmony_ci              "v15.0.0"
11231cb0ef41Sopenharmony_ci            ],
11241cb0ef41Sopenharmony_ci            "changes": []
11251cb0ef41Sopenharmony_ci          },
11261cb0ef41Sopenharmony_ci          "methods": [
11271cb0ef41Sopenharmony_ci            {
11281cb0ef41Sopenharmony_ci              "textRaw": "`subtle.decrypt(algorithm, key, data)`",
11291cb0ef41Sopenharmony_ci              "type": "method",
11301cb0ef41Sopenharmony_ci              "name": "decrypt",
11311cb0ef41Sopenharmony_ci              "meta": {
11321cb0ef41Sopenharmony_ci                "added": [
11331cb0ef41Sopenharmony_ci                  "v15.0.0"
11341cb0ef41Sopenharmony_ci                ],
11351cb0ef41Sopenharmony_ci                "changes": []
11361cb0ef41Sopenharmony_ci              },
11371cb0ef41Sopenharmony_ci              "signatures": [
11381cb0ef41Sopenharmony_ci                {
11391cb0ef41Sopenharmony_ci                  "return": {
11401cb0ef41Sopenharmony_ci                    "textRaw": "Returns: {Promise} containing {ArrayBuffer}",
11411cb0ef41Sopenharmony_ci                    "name": "return",
11421cb0ef41Sopenharmony_ci                    "type": "Promise",
11431cb0ef41Sopenharmony_ci                    "desc": "containing {ArrayBuffer}"
11441cb0ef41Sopenharmony_ci                  },
11451cb0ef41Sopenharmony_ci                  "params": [
11461cb0ef41Sopenharmony_ci                    {
11471cb0ef41Sopenharmony_ci                      "textRaw": "`algorithm`: {RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams}",
11481cb0ef41Sopenharmony_ci                      "name": "algorithm",
11491cb0ef41Sopenharmony_ci                      "type": "RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams"
11501cb0ef41Sopenharmony_ci                    },
11511cb0ef41Sopenharmony_ci                    {
11521cb0ef41Sopenharmony_ci                      "textRaw": "`key`: {CryptoKey}",
11531cb0ef41Sopenharmony_ci                      "name": "key",
11541cb0ef41Sopenharmony_ci                      "type": "CryptoKey"
11551cb0ef41Sopenharmony_ci                    },
11561cb0ef41Sopenharmony_ci                    {
11571cb0ef41Sopenharmony_ci                      "textRaw": "`data`: {ArrayBuffer|TypedArray|DataView|Buffer}",
11581cb0ef41Sopenharmony_ci                      "name": "data",
11591cb0ef41Sopenharmony_ci                      "type": "ArrayBuffer|TypedArray|DataView|Buffer"
11601cb0ef41Sopenharmony_ci                    }
11611cb0ef41Sopenharmony_ci                  ]
11621cb0ef41Sopenharmony_ci                }
11631cb0ef41Sopenharmony_ci              ],
11641cb0ef41Sopenharmony_ci              "desc": "<p>Using the method and parameters specified in <code>algorithm</code> and the keying\nmaterial provided by <code>key</code>, <code>subtle.decrypt()</code> attempts to decipher the\nprovided <code>data</code>. If successful, the returned promise will be resolved with\nan <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a> containing the plaintext result.</p>\n<p>The algorithms currently supported include:</p>\n<ul>\n<li><code>'RSA-OAEP'</code></li>\n<li><code>'AES-CTR'</code></li>\n<li><code>'AES-CBC'</code></li>\n<li><code>'AES-GCM</code>'</li>\n</ul>"
11651cb0ef41Sopenharmony_ci            },
11661cb0ef41Sopenharmony_ci            {
11671cb0ef41Sopenharmony_ci              "textRaw": "`subtle.deriveBits(algorithm, baseKey, length)`",
11681cb0ef41Sopenharmony_ci              "type": "method",
11691cb0ef41Sopenharmony_ci              "name": "deriveBits",
11701cb0ef41Sopenharmony_ci              "meta": {
11711cb0ef41Sopenharmony_ci                "added": [
11721cb0ef41Sopenharmony_ci                  "v15.0.0"
11731cb0ef41Sopenharmony_ci                ],
11741cb0ef41Sopenharmony_ci                "changes": [
11751cb0ef41Sopenharmony_ci                  {
11761cb0ef41Sopenharmony_ci                    "version": "v18.4.0",
11771cb0ef41Sopenharmony_ci                    "pr-url": "https://github.com/nodejs/node/pull/42507",
11781cb0ef41Sopenharmony_ci                    "description": "Added `'X25519'`, and `'X448'` algorithms."
11791cb0ef41Sopenharmony_ci                  }
11801cb0ef41Sopenharmony_ci                ]
11811cb0ef41Sopenharmony_ci              },
11821cb0ef41Sopenharmony_ci              "signatures": [
11831cb0ef41Sopenharmony_ci                {
11841cb0ef41Sopenharmony_ci                  "params": []
11851cb0ef41Sopenharmony_ci                }
11861cb0ef41Sopenharmony_ci              ],
11871cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li><code>algorithm</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-ecdhkeyderiveparams\" class=\"type\">&lt;EcdhKeyDeriveParams&gt;</a> | <a href=\"webcrypto.html#class-hkdfparams\" class=\"type\">&lt;HkdfParams&gt;</a> | <a href=\"webcrypto.html#class-pbkdf2params\" class=\"type\">&lt;Pbkdf2Params&gt;</a></li>\n<li><code>baseKey</code>: <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n<li><code>length</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type\" class=\"type\">&lt;number&gt;</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Null_type\" class=\"type\">&lt;null&gt;</a></li>\n<li>Returns: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\" class=\"type\">&lt;Promise&gt;</a> containing <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<p>Using the method and parameters specified in <code>algorithm</code> and the keying\nmaterial provided by <code>baseKey</code>, <code>subtle.deriveBits()</code> attempts to generate\n<code>length</code> bits.</p>\n<p>The Node.js implementation requires that when <code>length</code> is a\nnumber it must be multiple of <code>8</code>.</p>\n<p>When <code>length</code> is <code>null</code> the maximum number of bits for a given algorithm is\ngenerated. This is allowed for the <code>'ECDH'</code>, <code>'X25519'</code>, and <code>'X448'</code>\nalgorithms.</p>\n<p>If successful, the returned promise will be resolved with an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a>\ncontaining the generated data.</p>\n<p>The algorithms currently supported include:</p>\n<ul>\n<li><code>'ECDH'</code></li>\n<li><code>'X25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'X448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'HKDF'</code></li>\n<li><code>'PBKDF2'</code></li>\n</ul>"
11881cb0ef41Sopenharmony_ci            },
11891cb0ef41Sopenharmony_ci            {
11901cb0ef41Sopenharmony_ci              "textRaw": "`subtle.deriveKey(algorithm, baseKey, derivedKeyAlgorithm, extractable, keyUsages)`",
11911cb0ef41Sopenharmony_ci              "type": "method",
11921cb0ef41Sopenharmony_ci              "name": "deriveKey",
11931cb0ef41Sopenharmony_ci              "meta": {
11941cb0ef41Sopenharmony_ci                "added": [
11951cb0ef41Sopenharmony_ci                  "v15.0.0"
11961cb0ef41Sopenharmony_ci                ],
11971cb0ef41Sopenharmony_ci                "changes": [
11981cb0ef41Sopenharmony_ci                  {
11991cb0ef41Sopenharmony_ci                    "version": "v18.4.0",
12001cb0ef41Sopenharmony_ci                    "pr-url": "https://github.com/nodejs/node/pull/42507",
12011cb0ef41Sopenharmony_ci                    "description": "Added `'X25519'`, and `'X448'` algorithms."
12021cb0ef41Sopenharmony_ci                  }
12031cb0ef41Sopenharmony_ci                ]
12041cb0ef41Sopenharmony_ci              },
12051cb0ef41Sopenharmony_ci              "signatures": [
12061cb0ef41Sopenharmony_ci                {
12071cb0ef41Sopenharmony_ci                  "params": []
12081cb0ef41Sopenharmony_ci                }
12091cb0ef41Sopenharmony_ci              ],
12101cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li><code>algorithm</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-ecdhkeyderiveparams\" class=\"type\">&lt;EcdhKeyDeriveParams&gt;</a> | <a href=\"webcrypto.html#class-hkdfparams\" class=\"type\">&lt;HkdfParams&gt;</a> | <a href=\"webcrypto.html#class-pbkdf2params\" class=\"type\">&lt;Pbkdf2Params&gt;</a></li>\n<li><code>baseKey</code>: <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n<li><code>derivedKeyAlgorithm</code>: <a href=\"webcrypto.html#class-hmackeygenparams\" class=\"type\">&lt;HmacKeyGenParams&gt;</a> | <a href=\"webcrypto.html#class-aeskeygenparams\" class=\"type\">&lt;AesKeyGenParams&gt;</a></li>\n<li><code>extractable</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type\" class=\"type\">&lt;boolean&gt;</a></li>\n<li><code>keyUsages</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string[]&gt;</a> See <a href=\"#cryptokeyusages\">Key usages</a>.</li>\n<li>Returns: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\" class=\"type\">&lt;Promise&gt;</a> containing <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<p>Using the method and parameters specified in <code>algorithm</code>, and the keying\nmaterial provided by <code>baseKey</code>, <code>subtle.deriveKey()</code> attempts to generate\na new <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> based on the method and parameters in <code>derivedKeyAlgorithm</code>.</p>\n<p>Calling <code>subtle.deriveKey()</code> is equivalent to calling <code>subtle.deriveBits()</code> to\ngenerate raw keying material, then passing the result into the\n<code>subtle.importKey()</code> method using the <code>deriveKeyAlgorithm</code>, <code>extractable</code>, and\n<code>keyUsages</code> parameters as input.</p>\n<p>The algorithms currently supported include:</p>\n<ul>\n<li><code>'ECDH'</code></li>\n<li><code>'X25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'X448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'HKDF'</code></li>\n<li><code>'PBKDF2'</code></li>\n</ul>"
12111cb0ef41Sopenharmony_ci            },
12121cb0ef41Sopenharmony_ci            {
12131cb0ef41Sopenharmony_ci              "textRaw": "`subtle.digest(algorithm, data)`",
12141cb0ef41Sopenharmony_ci              "type": "method",
12151cb0ef41Sopenharmony_ci              "name": "digest",
12161cb0ef41Sopenharmony_ci              "meta": {
12171cb0ef41Sopenharmony_ci                "added": [
12181cb0ef41Sopenharmony_ci                  "v15.0.0"
12191cb0ef41Sopenharmony_ci                ],
12201cb0ef41Sopenharmony_ci                "changes": []
12211cb0ef41Sopenharmony_ci              },
12221cb0ef41Sopenharmony_ci              "signatures": [
12231cb0ef41Sopenharmony_ci                {
12241cb0ef41Sopenharmony_ci                  "return": {
12251cb0ef41Sopenharmony_ci                    "textRaw": "Returns: {Promise} containing {ArrayBuffer}",
12261cb0ef41Sopenharmony_ci                    "name": "return",
12271cb0ef41Sopenharmony_ci                    "type": "Promise",
12281cb0ef41Sopenharmony_ci                    "desc": "containing {ArrayBuffer}"
12291cb0ef41Sopenharmony_ci                  },
12301cb0ef41Sopenharmony_ci                  "params": [
12311cb0ef41Sopenharmony_ci                    {
12321cb0ef41Sopenharmony_ci                      "textRaw": "`algorithm`: {string|Object}",
12331cb0ef41Sopenharmony_ci                      "name": "algorithm",
12341cb0ef41Sopenharmony_ci                      "type": "string|Object"
12351cb0ef41Sopenharmony_ci                    },
12361cb0ef41Sopenharmony_ci                    {
12371cb0ef41Sopenharmony_ci                      "textRaw": "`data`: {ArrayBuffer|TypedArray|DataView|Buffer}",
12381cb0ef41Sopenharmony_ci                      "name": "data",
12391cb0ef41Sopenharmony_ci                      "type": "ArrayBuffer|TypedArray|DataView|Buffer"
12401cb0ef41Sopenharmony_ci                    }
12411cb0ef41Sopenharmony_ci                  ]
12421cb0ef41Sopenharmony_ci                }
12431cb0ef41Sopenharmony_ci              ],
12441cb0ef41Sopenharmony_ci              "desc": "<p>Using the method identified by <code>algorithm</code>, <code>subtle.digest()</code> attempts to\ngenerate a digest of <code>data</code>. If successful, the returned promise is resolved\nwith an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a> containing the computed digest.</p>\n<p>If <code>algorithm</code> is provided as a <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a>, it must be one of:</p>\n<ul>\n<li><code>'SHA-1'</code></li>\n<li><code>'SHA-256'</code></li>\n<li><code>'SHA-384'</code></li>\n<li><code>'SHA-512'</code></li>\n</ul>\n<p>If <code>algorithm</code> is provided as an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type\">&lt;Object&gt;</a>, it must have a <code>name</code> property\nwhose value is one of the above.</p>"
12451cb0ef41Sopenharmony_ci            },
12461cb0ef41Sopenharmony_ci            {
12471cb0ef41Sopenharmony_ci              "textRaw": "`subtle.encrypt(algorithm, key, data)`",
12481cb0ef41Sopenharmony_ci              "type": "method",
12491cb0ef41Sopenharmony_ci              "name": "encrypt",
12501cb0ef41Sopenharmony_ci              "meta": {
12511cb0ef41Sopenharmony_ci                "added": [
12521cb0ef41Sopenharmony_ci                  "v15.0.0"
12531cb0ef41Sopenharmony_ci                ],
12541cb0ef41Sopenharmony_ci                "changes": []
12551cb0ef41Sopenharmony_ci              },
12561cb0ef41Sopenharmony_ci              "signatures": [
12571cb0ef41Sopenharmony_ci                {
12581cb0ef41Sopenharmony_ci                  "return": {
12591cb0ef41Sopenharmony_ci                    "textRaw": "Returns: {Promise} containing {ArrayBuffer}",
12601cb0ef41Sopenharmony_ci                    "name": "return",
12611cb0ef41Sopenharmony_ci                    "type": "Promise",
12621cb0ef41Sopenharmony_ci                    "desc": "containing {ArrayBuffer}"
12631cb0ef41Sopenharmony_ci                  },
12641cb0ef41Sopenharmony_ci                  "params": [
12651cb0ef41Sopenharmony_ci                    {
12661cb0ef41Sopenharmony_ci                      "textRaw": "`algorithm`: {RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams}",
12671cb0ef41Sopenharmony_ci                      "name": "algorithm",
12681cb0ef41Sopenharmony_ci                      "type": "RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams"
12691cb0ef41Sopenharmony_ci                    },
12701cb0ef41Sopenharmony_ci                    {
12711cb0ef41Sopenharmony_ci                      "textRaw": "`key`: {CryptoKey}",
12721cb0ef41Sopenharmony_ci                      "name": "key",
12731cb0ef41Sopenharmony_ci                      "type": "CryptoKey"
12741cb0ef41Sopenharmony_ci                    }
12751cb0ef41Sopenharmony_ci                  ]
12761cb0ef41Sopenharmony_ci                }
12771cb0ef41Sopenharmony_ci              ],
12781cb0ef41Sopenharmony_ci              "desc": "<p>Using the method and parameters specified by <code>algorithm</code> and the keying\nmaterial provided by <code>key</code>, <code>subtle.encrypt()</code> attempts to encipher <code>data</code>.\nIf successful, the returned promise is resolved with an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a>\ncontaining the encrypted result.</p>\n<p>The algorithms currently supported include:</p>\n<ul>\n<li><code>'RSA-OAEP'</code></li>\n<li><code>'AES-CTR'</code></li>\n<li><code>'AES-CBC'</code></li>\n<li><code>'AES-GCM</code>'</li>\n</ul>"
12791cb0ef41Sopenharmony_ci            },
12801cb0ef41Sopenharmony_ci            {
12811cb0ef41Sopenharmony_ci              "textRaw": "`subtle.exportKey(format, key)`",
12821cb0ef41Sopenharmony_ci              "type": "method",
12831cb0ef41Sopenharmony_ci              "name": "exportKey",
12841cb0ef41Sopenharmony_ci              "meta": {
12851cb0ef41Sopenharmony_ci                "added": [
12861cb0ef41Sopenharmony_ci                  "v15.0.0"
12871cb0ef41Sopenharmony_ci                ],
12881cb0ef41Sopenharmony_ci                "changes": [
12891cb0ef41Sopenharmony_ci                  {
12901cb0ef41Sopenharmony_ci                    "version": "v18.4.0",
12911cb0ef41Sopenharmony_ci                    "pr-url": "https://github.com/nodejs/node/pull/42507",
12921cb0ef41Sopenharmony_ci                    "description": "Added `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms."
12931cb0ef41Sopenharmony_ci                  },
12941cb0ef41Sopenharmony_ci                  {
12951cb0ef41Sopenharmony_ci                    "version": "v15.9.0",
12961cb0ef41Sopenharmony_ci                    "pr-url": "https://github.com/nodejs/node/pull/37203",
12971cb0ef41Sopenharmony_ci                    "description": "Removed `'NODE-DSA'` JWK export."
12981cb0ef41Sopenharmony_ci                  }
12991cb0ef41Sopenharmony_ci                ]
13001cb0ef41Sopenharmony_ci              },
13011cb0ef41Sopenharmony_ci              "signatures": [
13021cb0ef41Sopenharmony_ci                {
13031cb0ef41Sopenharmony_ci                  "return": {
13041cb0ef41Sopenharmony_ci                    "textRaw": "Returns: {Promise} containing {ArrayBuffer|Object}.",
13051cb0ef41Sopenharmony_ci                    "name": "return",
13061cb0ef41Sopenharmony_ci                    "type": "Promise",
13071cb0ef41Sopenharmony_ci                    "desc": "containing {ArrayBuffer|Object}."
13081cb0ef41Sopenharmony_ci                  },
13091cb0ef41Sopenharmony_ci                  "params": [
13101cb0ef41Sopenharmony_ci                    {
13111cb0ef41Sopenharmony_ci                      "textRaw": "`format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`.",
13121cb0ef41Sopenharmony_ci                      "name": "format",
13131cb0ef41Sopenharmony_ci                      "type": "string",
13141cb0ef41Sopenharmony_ci                      "desc": "Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`."
13151cb0ef41Sopenharmony_ci                    },
13161cb0ef41Sopenharmony_ci                    {
13171cb0ef41Sopenharmony_ci                      "textRaw": "`key`: {CryptoKey}",
13181cb0ef41Sopenharmony_ci                      "name": "key",
13191cb0ef41Sopenharmony_ci                      "type": "CryptoKey"
13201cb0ef41Sopenharmony_ci                    }
13211cb0ef41Sopenharmony_ci                  ]
13221cb0ef41Sopenharmony_ci                }
13231cb0ef41Sopenharmony_ci              ],
13241cb0ef41Sopenharmony_ci              "desc": "<p>Exports the given key into the specified format, if supported.</p>\n<p>If the <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> is not extractable, the returned promise will reject.</p>\n<p>When <code>format</code> is either <code>'pkcs8'</code> or <code>'spki'</code> and the export is successful,\nthe returned promise will be resolved with an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a> containing the\nexported key data.</p>\n<p>When <code>format</code> is <code>'jwk'</code> and the export is successful, the returned promise\nwill be resolved with a JavaScript object conforming to the <a href=\"https://tools.ietf.org/html/rfc7517\">JSON Web Key</a>\nspecification.</p>\n<table>\n<thead>\n<tr>\n<th>Key Type</th>\n<th><code>'spki'</code></th>\n<th><code>'pkcs8'</code></th>\n<th><code>'jwk'</code></th>\n<th><code>'raw'</code></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>'AES-CBC'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-CTR'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-GCM'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-KW'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'ECDH'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'ECDSA'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'Ed25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'Ed448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'HDKF'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'HMAC'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'PBKDF2'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSA-OAEP'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSA-PSS'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSASSA-PKCS1-v1_5'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n</tbody>\n</table>"
13251cb0ef41Sopenharmony_ci            },
13261cb0ef41Sopenharmony_ci            {
13271cb0ef41Sopenharmony_ci              "textRaw": "`subtle.generateKey(algorithm, extractable, keyUsages)`",
13281cb0ef41Sopenharmony_ci              "type": "method",
13291cb0ef41Sopenharmony_ci              "name": "generateKey",
13301cb0ef41Sopenharmony_ci              "meta": {
13311cb0ef41Sopenharmony_ci                "added": [
13321cb0ef41Sopenharmony_ci                  "v15.0.0"
13331cb0ef41Sopenharmony_ci                ],
13341cb0ef41Sopenharmony_ci                "changes": []
13351cb0ef41Sopenharmony_ci              },
13361cb0ef41Sopenharmony_ci              "signatures": [
13371cb0ef41Sopenharmony_ci                {
13381cb0ef41Sopenharmony_ci                  "params": []
13391cb0ef41Sopenharmony_ci                }
13401cb0ef41Sopenharmony_ci              ],
13411cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li><code>algorithm</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-rsahashedkeygenparams\" class=\"type\">&lt;RsaHashedKeyGenParams&gt;</a> | <a href=\"webcrypto.html#class-eckeygenparams\" class=\"type\">&lt;EcKeyGenParams&gt;</a> | <a href=\"webcrypto.html#class-hmackeygenparams\" class=\"type\">&lt;HmacKeyGenParams&gt;</a> | <a href=\"webcrypto.html#class-aeskeygenparams\" class=\"type\">&lt;AesKeyGenParams&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<ul>\n<li><code>extractable</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type\" class=\"type\">&lt;boolean&gt;</a></li>\n<li><code>keyUsages</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string[]&gt;</a> See <a href=\"#cryptokeyusages\">Key usages</a>.</li>\n<li>Returns: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\" class=\"type\">&lt;Promise&gt;</a> containing <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> | <a href=\"webcrypto.html#class-cryptokeypair\" class=\"type\">&lt;CryptoKeyPair&gt;</a></li>\n</ul>\n<p>Using the method and parameters provided in <code>algorithm</code>, <code>subtle.generateKey()</code>\nattempts to generate new keying material. Depending the method used, the method\nmay generate either a single <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> or a <a href=\"webcrypto.html#class-cryptokeypair\" class=\"type\">&lt;CryptoKeyPair&gt;</a>.</p>\n<p>The <a href=\"webcrypto.html#class-cryptokeypair\" class=\"type\">&lt;CryptoKeyPair&gt;</a> (public and private key) generating algorithms supported\ninclude:</p>\n<ul>\n<li><code>'RSASSA-PKCS1-v1_5'</code></li>\n<li><code>'RSA-PSS'</code></li>\n<li><code>'RSA-OAEP'</code></li>\n<li><code>'ECDSA'</code></li>\n<li><code>'Ed25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'Ed448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'ECDH'</code></li>\n<li><code>'X25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-3\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'X448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-4\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n</ul>\n<p>The <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> (secret key) generating algorithms supported include:</p>\n<ul>\n<li><code>'HMAC'</code></li>\n<li><code>'AES-CTR'</code></li>\n<li><code>'AES-CBC'</code></li>\n<li><code>'AES-GCM'</code></li>\n<li><code>'AES-KW'</code></li>\n</ul>"
13421cb0ef41Sopenharmony_ci            },
13431cb0ef41Sopenharmony_ci            {
13441cb0ef41Sopenharmony_ci              "textRaw": "`subtle.importKey(format, keyData, algorithm, extractable, keyUsages)`",
13451cb0ef41Sopenharmony_ci              "type": "method",
13461cb0ef41Sopenharmony_ci              "name": "importKey",
13471cb0ef41Sopenharmony_ci              "meta": {
13481cb0ef41Sopenharmony_ci                "added": [
13491cb0ef41Sopenharmony_ci                  "v15.0.0"
13501cb0ef41Sopenharmony_ci                ],
13511cb0ef41Sopenharmony_ci                "changes": [
13521cb0ef41Sopenharmony_ci                  {
13531cb0ef41Sopenharmony_ci                    "version": "v18.4.0",
13541cb0ef41Sopenharmony_ci                    "pr-url": "https://github.com/nodejs/node/pull/42507",
13551cb0ef41Sopenharmony_ci                    "description": "Added `'Ed25519'`, `'Ed448'`, `'X25519'`, and `'X448'` algorithms."
13561cb0ef41Sopenharmony_ci                  },
13571cb0ef41Sopenharmony_ci                  {
13581cb0ef41Sopenharmony_ci                    "version": "v15.9.0",
13591cb0ef41Sopenharmony_ci                    "pr-url": "https://github.com/nodejs/node/pull/37203",
13601cb0ef41Sopenharmony_ci                    "description": "Removed `'NODE-DSA'` JWK import."
13611cb0ef41Sopenharmony_ci                  }
13621cb0ef41Sopenharmony_ci                ]
13631cb0ef41Sopenharmony_ci              },
13641cb0ef41Sopenharmony_ci              "signatures": [
13651cb0ef41Sopenharmony_ci                {
13661cb0ef41Sopenharmony_ci                  "params": [
13671cb0ef41Sopenharmony_ci                    {
13681cb0ef41Sopenharmony_ci                      "textRaw": "`format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`.",
13691cb0ef41Sopenharmony_ci                      "name": "format",
13701cb0ef41Sopenharmony_ci                      "type": "string",
13711cb0ef41Sopenharmony_ci                      "desc": "Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`."
13721cb0ef41Sopenharmony_ci                    },
13731cb0ef41Sopenharmony_ci                    {
13741cb0ef41Sopenharmony_ci                      "textRaw": "`keyData`: {ArrayBuffer|TypedArray|DataView|Buffer|Object}",
13751cb0ef41Sopenharmony_ci                      "name": "keyData",
13761cb0ef41Sopenharmony_ci                      "type": "ArrayBuffer|TypedArray|DataView|Buffer|Object"
13771cb0ef41Sopenharmony_ci                    }
13781cb0ef41Sopenharmony_ci                  ]
13791cb0ef41Sopenharmony_ci                }
13801cb0ef41Sopenharmony_ci              ],
13811cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li><code>algorithm</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-rsahashedimportparams\" class=\"type\">&lt;RsaHashedImportParams&gt;</a> | <a href=\"webcrypto.html#class-eckeyimportparams\" class=\"type\">&lt;EcKeyImportParams&gt;</a> | <a href=\"webcrypto.html#class-hmacimportparams\" class=\"type\">&lt;HmacImportParams&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<ul>\n<li><code>extractable</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type\" class=\"type\">&lt;boolean&gt;</a></li>\n<li><code>keyUsages</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string[]&gt;</a> See <a href=\"#cryptokeyusages\">Key usages</a>.</li>\n<li>Returns: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\" class=\"type\">&lt;Promise&gt;</a> containing <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n</ul>\n<p>The <code>subtle.importKey()</code> method attempts to interpret the provided <code>keyData</code>\nas the given <code>format</code> to create a <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> instance using the provided\n<code>algorithm</code>, <code>extractable</code>, and <code>keyUsages</code> arguments. If the import is\nsuccessful, the returned promise will be resolved with the created <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a>.</p>\n<p>If importing a <code>'PBKDF2'</code> key, <code>extractable</code> must be <code>false</code>.</p>\n<p>The algorithms currently supported include:</p>\n<table>\n<thead>\n<tr>\n<th>Key Type</th>\n<th><code>'spki'</code></th>\n<th><code>'pkcs8'</code></th>\n<th><code>'jwk'</code></th>\n<th><code>'raw'</code></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>'AES-CBC'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-CTR'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-GCM'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'AES-KW'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'ECDH'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'X25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'X448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'ECDSA'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'Ed25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-3\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'Ed448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-4\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'HDKF'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'HMAC'</code></td>\n<td></td>\n<td></td>\n<td>✔</td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'PBKDF2'</code></td>\n<td></td>\n<td></td>\n<td></td>\n<td>✔</td>\n</tr>\n<tr>\n<td><code>'RSA-OAEP'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSA-PSS'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n<tr>\n<td><code>'RSASSA-PKCS1-v1_5'</code></td>\n<td>✔</td>\n<td>✔</td>\n<td>✔</td>\n<td></td>\n</tr>\n</tbody>\n</table>"
13821cb0ef41Sopenharmony_ci            },
13831cb0ef41Sopenharmony_ci            {
13841cb0ef41Sopenharmony_ci              "textRaw": "`subtle.sign(algorithm, key, data)`",
13851cb0ef41Sopenharmony_ci              "type": "method",
13861cb0ef41Sopenharmony_ci              "name": "sign",
13871cb0ef41Sopenharmony_ci              "meta": {
13881cb0ef41Sopenharmony_ci                "added": [
13891cb0ef41Sopenharmony_ci                  "v15.0.0"
13901cb0ef41Sopenharmony_ci                ],
13911cb0ef41Sopenharmony_ci                "changes": [
13921cb0ef41Sopenharmony_ci                  {
13931cb0ef41Sopenharmony_ci                    "version": "v18.4.0",
13941cb0ef41Sopenharmony_ci                    "pr-url": "https://github.com/nodejs/node/pull/42507",
13951cb0ef41Sopenharmony_ci                    "description": "Added `'Ed25519'`, and `'Ed448'` algorithms."
13961cb0ef41Sopenharmony_ci                  }
13971cb0ef41Sopenharmony_ci                ]
13981cb0ef41Sopenharmony_ci              },
13991cb0ef41Sopenharmony_ci              "signatures": [
14001cb0ef41Sopenharmony_ci                {
14011cb0ef41Sopenharmony_ci                  "params": []
14021cb0ef41Sopenharmony_ci                }
14031cb0ef41Sopenharmony_ci              ],
14041cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li><code>algorithm</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-rsapssparams\" class=\"type\">&lt;RsaPssParams&gt;</a> | <a href=\"webcrypto.html#class-ecdsaparams\" class=\"type\">&lt;EcdsaParams&gt;</a> | <a href=\"webcrypto.html#class-ed448params\" class=\"type\">&lt;Ed448Params&gt;</a></li>\n<li><code>key</code>: <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n<li><code>data</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\" class=\"type\">&lt;TypedArray&gt;</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView\" class=\"type\">&lt;DataView&gt;</a> | <a href=\"buffer.html#class-buffer\" class=\"type\">&lt;Buffer&gt;</a></li>\n<li>Returns: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\" class=\"type\">&lt;Promise&gt;</a> containing <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<p>Using the method and parameters given by <code>algorithm</code> and the keying material\nprovided by <code>key</code>, <code>subtle.sign()</code> attempts to generate a cryptographic\nsignature of <code>data</code>. If successful, the returned promise is resolved with\nan <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a> containing the generated signature.</p>\n<p>The algorithms currently supported include:</p>\n<ul>\n<li><code>'RSASSA-PKCS1-v1_5'</code></li>\n<li><code>'RSA-PSS'</code></li>\n<li><code>'ECDSA'</code></li>\n<li><code>'Ed25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'Ed448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'HMAC'</code></li>\n</ul>"
14051cb0ef41Sopenharmony_ci            },
14061cb0ef41Sopenharmony_ci            {
14071cb0ef41Sopenharmony_ci              "textRaw": "`subtle.unwrapKey(format, wrappedKey, unwrappingKey, unwrapAlgo, unwrappedKeyAlgo, extractable, keyUsages)`",
14081cb0ef41Sopenharmony_ci              "type": "method",
14091cb0ef41Sopenharmony_ci              "name": "unwrapKey",
14101cb0ef41Sopenharmony_ci              "meta": {
14111cb0ef41Sopenharmony_ci                "added": [
14121cb0ef41Sopenharmony_ci                  "v15.0.0"
14131cb0ef41Sopenharmony_ci                ],
14141cb0ef41Sopenharmony_ci                "changes": []
14151cb0ef41Sopenharmony_ci              },
14161cb0ef41Sopenharmony_ci              "signatures": [
14171cb0ef41Sopenharmony_ci                {
14181cb0ef41Sopenharmony_ci                  "params": [
14191cb0ef41Sopenharmony_ci                    {
14201cb0ef41Sopenharmony_ci                      "textRaw": "`format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`.",
14211cb0ef41Sopenharmony_ci                      "name": "format",
14221cb0ef41Sopenharmony_ci                      "type": "string",
14231cb0ef41Sopenharmony_ci                      "desc": "Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`."
14241cb0ef41Sopenharmony_ci                    },
14251cb0ef41Sopenharmony_ci                    {
14261cb0ef41Sopenharmony_ci                      "textRaw": "`wrappedKey`: {ArrayBuffer|TypedArray|DataView|Buffer}",
14271cb0ef41Sopenharmony_ci                      "name": "wrappedKey",
14281cb0ef41Sopenharmony_ci                      "type": "ArrayBuffer|TypedArray|DataView|Buffer"
14291cb0ef41Sopenharmony_ci                    },
14301cb0ef41Sopenharmony_ci                    {
14311cb0ef41Sopenharmony_ci                      "textRaw": "`unwrappingKey`: {CryptoKey}",
14321cb0ef41Sopenharmony_ci                      "name": "unwrappingKey",
14331cb0ef41Sopenharmony_ci                      "type": "CryptoKey"
14341cb0ef41Sopenharmony_ci                    }
14351cb0ef41Sopenharmony_ci                  ]
14361cb0ef41Sopenharmony_ci                }
14371cb0ef41Sopenharmony_ci              ],
14381cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li><code>unwrapAlgo</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-rsaoaepparams\" class=\"type\">&lt;RsaOaepParams&gt;</a> | <a href=\"webcrypto.html#class-aesctrparams\" class=\"type\">&lt;AesCtrParams&gt;</a> | <a href=\"webcrypto.html#class-aescbcparams\" class=\"type\">&lt;AesCbcParams&gt;</a> | <a href=\"webcrypto.html#class-aesgcmparams\" class=\"type\">&lt;AesGcmParams&gt;</a></li>\n<li><code>unwrappedKeyAlgo</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-rsahashedimportparams\" class=\"type\">&lt;RsaHashedImportParams&gt;</a> | <a href=\"webcrypto.html#class-eckeyimportparams\" class=\"type\">&lt;EcKeyImportParams&gt;</a> | <a href=\"webcrypto.html#class-hmacimportparams\" class=\"type\">&lt;HmacImportParams&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<ul>\n<li><code>extractable</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type\" class=\"type\">&lt;boolean&gt;</a></li>\n<li><code>keyUsages</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string[]&gt;</a> See <a href=\"#cryptokeyusages\">Key usages</a>.</li>\n<li>Returns: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\" class=\"type\">&lt;Promise&gt;</a> containing <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n</ul>\n<p>In cryptography, \"wrapping a key\" refers to exporting and then encrypting the\nkeying material. The <code>subtle.unwrapKey()</code> method attempts to decrypt a wrapped\nkey and create a <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> instance. It is equivalent to calling\n<code>subtle.decrypt()</code> first on the encrypted key data (using the <code>wrappedKey</code>,\n<code>unwrapAlgo</code>, and <code>unwrappingKey</code> arguments as input) then passing the results\nin to the <code>subtle.importKey()</code> method using the <code>unwrappedKeyAlgo</code>,\n<code>extractable</code>, and <code>keyUsages</code> arguments as inputs. If successful, the returned\npromise is resolved with a <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a> object.</p>\n<p>The wrapping algorithms currently supported include:</p>\n<ul>\n<li><code>'RSA-OAEP'</code></li>\n<li><code>'AES-CTR'</code></li>\n<li><code>'AES-CBC'</code></li>\n<li><code>'AES-GCM'</code></li>\n<li><code>'AES-KW'</code></li>\n</ul>\n<p>The unwrapped key algorithms supported include:</p>\n<ul>\n<li><code>'RSASSA-PKCS1-v1_5'</code></li>\n<li><code>'RSA-PSS'</code></li>\n<li><code>'RSA-OAEP'</code></li>\n<li><code>'ECDSA'</code></li>\n<li><code>'Ed25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'Ed448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'ECDH'</code></li>\n<li><code>'X25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-3\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'X448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-4\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'HMAC'</code></li>\n<li><code>'AES-CTR'</code></li>\n<li><code>'AES-CBC'</code></li>\n<li><code>'AES-GCM'</code></li>\n<li><code>'AES-KW'</code></li>\n</ul>"
14391cb0ef41Sopenharmony_ci            },
14401cb0ef41Sopenharmony_ci            {
14411cb0ef41Sopenharmony_ci              "textRaw": "`subtle.verify(algorithm, key, signature, data)`",
14421cb0ef41Sopenharmony_ci              "type": "method",
14431cb0ef41Sopenharmony_ci              "name": "verify",
14441cb0ef41Sopenharmony_ci              "meta": {
14451cb0ef41Sopenharmony_ci                "added": [
14461cb0ef41Sopenharmony_ci                  "v15.0.0"
14471cb0ef41Sopenharmony_ci                ],
14481cb0ef41Sopenharmony_ci                "changes": [
14491cb0ef41Sopenharmony_ci                  {
14501cb0ef41Sopenharmony_ci                    "version": "v18.4.0",
14511cb0ef41Sopenharmony_ci                    "pr-url": "https://github.com/nodejs/node/pull/42507",
14521cb0ef41Sopenharmony_ci                    "description": "Added `'Ed25519'`, and `'Ed448'` algorithms."
14531cb0ef41Sopenharmony_ci                  }
14541cb0ef41Sopenharmony_ci                ]
14551cb0ef41Sopenharmony_ci              },
14561cb0ef41Sopenharmony_ci              "signatures": [
14571cb0ef41Sopenharmony_ci                {
14581cb0ef41Sopenharmony_ci                  "params": []
14591cb0ef41Sopenharmony_ci                }
14601cb0ef41Sopenharmony_ci              ],
14611cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li><code>algorithm</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-rsapssparams\" class=\"type\">&lt;RsaPssParams&gt;</a> | <a href=\"webcrypto.html#class-ecdsaparams\" class=\"type\">&lt;EcdsaParams&gt;</a> | <a href=\"webcrypto.html#class-ed448params\" class=\"type\">&lt;Ed448Params&gt;</a></li>\n<li><code>key</code>: <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n<li><code>signature</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\" class=\"type\">&lt;TypedArray&gt;</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView\" class=\"type\">&lt;DataView&gt;</a> | <a href=\"buffer.html#class-buffer\" class=\"type\">&lt;Buffer&gt;</a></li>\n<li><code>data</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray\" class=\"type\">&lt;TypedArray&gt;</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView\" class=\"type\">&lt;DataView&gt;</a> | <a href=\"buffer.html#class-buffer\" class=\"type\">&lt;Buffer&gt;</a></li>\n<li>Returns: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\" class=\"type\">&lt;Promise&gt;</a> containing <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type\" class=\"type\">&lt;boolean&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<p>Using the method and parameters given in <code>algorithm</code> and the keying material\nprovided by <code>key</code>, <code>subtle.verify()</code> attempts to verify that <code>signature</code> is\na valid cryptographic signature of <code>data</code>. The returned promise is resolved\nwith either <code>true</code> or <code>false</code>.</p>\n<p>The algorithms currently supported include:</p>\n<ul>\n<li><code>'RSASSA-PKCS1-v1_5'</code></li>\n<li><code>'RSA-PSS'</code></li>\n<li><code>'ECDSA'</code></li>\n<li><code>'Ed25519'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'Ed448'</code> <span class=\"experimental-inline\"></span><sup><a href=\"#user-content-fn-1\" id=\"user-content-fnref-1-2\" data-footnote-ref aria-describedby=\"footnote-label\">1</a></sup></li>\n<li><code>'HMAC'</code></li>\n</ul>"
14621cb0ef41Sopenharmony_ci            },
14631cb0ef41Sopenharmony_ci            {
14641cb0ef41Sopenharmony_ci              "textRaw": "`subtle.wrapKey(format, key, wrappingKey, wrapAlgo)`",
14651cb0ef41Sopenharmony_ci              "type": "method",
14661cb0ef41Sopenharmony_ci              "name": "wrapKey",
14671cb0ef41Sopenharmony_ci              "meta": {
14681cb0ef41Sopenharmony_ci                "added": [
14691cb0ef41Sopenharmony_ci                  "v15.0.0"
14701cb0ef41Sopenharmony_ci                ],
14711cb0ef41Sopenharmony_ci                "changes": []
14721cb0ef41Sopenharmony_ci              },
14731cb0ef41Sopenharmony_ci              "signatures": [
14741cb0ef41Sopenharmony_ci                {
14751cb0ef41Sopenharmony_ci                  "params": []
14761cb0ef41Sopenharmony_ci                }
14771cb0ef41Sopenharmony_ci              ],
14781cb0ef41Sopenharmony_ci              "desc": "<!--lint disable maximum-line-length remark-lint-->\n<ul>\n<li><code>format</code>: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type\" class=\"type\">&lt;string&gt;</a> Must be one of <code>'raw'</code>, <code>'pkcs8'</code>, <code>'spki'</code>, or <code>'jwk'</code>.</li>\n<li><code>key</code>: <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n<li><code>wrappingKey</code>: <a href=\"webcrypto.html#class-cryptokey\" class=\"type\">&lt;CryptoKey&gt;</a></li>\n<li><code>wrapAlgo</code>: <a href=\"webcrypto.html#class-algorithmidentifier\" class=\"type\">&lt;AlgorithmIdentifier&gt;</a> | <a href=\"webcrypto.html#class-rsaoaepparams\" class=\"type\">&lt;RsaOaepParams&gt;</a> | <a href=\"webcrypto.html#class-aesctrparams\" class=\"type\">&lt;AesCtrParams&gt;</a> | <a href=\"webcrypto.html#class-aescbcparams\" class=\"type\">&lt;AesCbcParams&gt;</a> | <a href=\"webcrypto.html#class-aesgcmparams\" class=\"type\">&lt;AesGcmParams&gt;</a></li>\n<li>Returns: <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise\" class=\"type\">&lt;Promise&gt;</a> containing <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a></li>\n</ul>\n<!--lint enable maximum-line-length remark-lint-->\n<p>In cryptography, \"wrapping a key\" refers to exporting and then encrypting the\nkeying material. The <code>subtle.wrapKey()</code> method exports the keying material into\nthe format identified by <code>format</code>, then encrypts it using the method and\nparameters specified by <code>wrapAlgo</code> and the keying material provided by\n<code>wrappingKey</code>. It is the equivalent to calling <code>subtle.exportKey()</code> using\n<code>format</code> and <code>key</code> as the arguments, then passing the result to the\n<code>subtle.encrypt()</code> method using <code>wrappingKey</code> and <code>wrapAlgo</code> as inputs. If\nsuccessful, the returned promise will be resolved with an <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer\" class=\"type\">&lt;ArrayBuffer&gt;</a>\ncontaining the encrypted key data.</p>\n<p>The wrapping algorithms currently supported include:</p>\n<ul>\n<li><code>'RSA-OAEP'</code></li>\n<li><code>'AES-CTR'</code></li>\n<li><code>'AES-CBC'</code></li>\n<li><code>'AES-GCM'</code></li>\n<li><code>'AES-KW'</code></li>\n</ul>"
14791cb0ef41Sopenharmony_ci            }
14801cb0ef41Sopenharmony_ci          ]
14811cb0ef41Sopenharmony_ci        }
14821cb0ef41Sopenharmony_ci      ],
14831cb0ef41Sopenharmony_ci      "type": "module",
14841cb0ef41Sopenharmony_ci      "displayName": "Web Crypto API"
14851cb0ef41Sopenharmony_ci    }
14861cb0ef41Sopenharmony_ci  ]
14871cb0ef41Sopenharmony_ci}