deno.com
method SubtleCrypto.generateKey
#SubtleCrypto.generateKey(
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKeyPair>

Generates an asymmetric cryptographic key pair for encryption, signing, or key exchange.

This overload is used for generating key pairs with RSA or elliptic curve algorithms.

Examples #

#
// RSA key generation
const key = await crypto.subtle.generateKey(
  {
    name: "RSA-OAEP",
    modulusLength: 4096,
    publicExponent: new Uint8Array([1, 0, 1]),
    hash: "SHA-256",
  },
  true,
  ["encrypt", "decrypt"]
);
#
// Elliptic curve (ECDSA) key pair generation
const key = await crypto.subtle.generateKey(
  {
    name: "ECDSA",
    namedCurve: "P-384",
  },
  true,
  ["sign", "verify"]
);

Parameters #

#extractable: boolean
#keyUsages: KeyUsage[]

Return Type #

Promise<CryptoKeyPair>

See #

#SubtleCrypto.generateKey(
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKey>

Generates a symmetric cryptographic key for encryption, authentication, or hashing.

This overload is used for algorithms such as AES and HMAC.

Examples #

#
const key = await crypto.subtle.generateKey(
 {
   name: "AES-GCM",
   length: 256,
 },
 true,
 ["encrypt", "decrypt"]
);
#
// HMAC key generation
const key = await crypto.subtle.generateKey(
 {
   name: "HMAC",
   hash: { name: "SHA-512" },
 },
 true,
 ["sign", "verify"]
);

Parameters #

#extractable: boolean
#keyUsages: KeyUsage[]

Return Type #

Promise<CryptoKey>

See #

#SubtleCrypto.generateKey(
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKeyPair | CryptoKey>

Generates a cryptographic key or key pair for a given algorithm.

This generic overload handles any key generation request, returning either a symmetric key or an asymmetric key pair based on the provided algorithm.

Parameters #

#extractable: boolean
#keyUsages: KeyUsage[]

Return Type #

See #