Menu
Open source

generateKey

The generateKey() generates a new cryptographic key and returns it as a CryptoKey object that can be used with the Web Crypto API.

Currently, supported algorithms are: AES-CBC, AES-GCM, AES-CTR, HMAC, ECDH and ECDSA.

Usage

generateKey(algorithm, extractable, keyUsages)

Parameters

NameTypeDescription
algorithmstring,AesKeyGenParams, HmacKeyGenParams or EcKeyGenParamsThe type of key to generate. It can be either a string with any of the currently supported algorithms as a value or any of the generation key parameter objects.
extractablebooleanWhether the key can be exported using exportKey.
keyUsagesArray<string>An array of strings describing what operations can be performed with the key. Key usages could vary depending on the algorithm.

Return Value

A Promise that resolves with the generated key as a CryptoKey object or a CryptoKeyPair.

Algorithm specific input

HMACAESECDHECDSA
Parameters type to useHmacKeyGenParamsAesKeyGenParamsEcKeyGenParamsEcKeyGenParams
Possible key usagessign, verifyencrypt, decryptderiveKey, deriveBitssign, verify

Throws

TypeDescription
SyntaxErrorRaised when the keyUsages parameter is empty but the key is of type secret or private.

Example

JavaScript
import { crypto } from 'k6/experimental/webcrypto';

export default async function () {
  const key = await crypto.subtle.generateKey(
    {
      name: 'AES-CBC',
      length: 256,
    },
    true,
    ['encrypt', 'decrypt']
  );

  console.log(JSON.stringify(key));
}