Back to Jose

Function: importJWK()

docs/key/import/functions/importJWK.md

6.2.122.6 KB
Original Source

Function: importJWK()

šŸ’— Help the project

Support from the community to continue maintaining and improving this module is welcome. If you find the module useful, please consider supporting the project by becoming a sponsor.

ā–ø importJWK<JWKType>(jwk, alg?, options?): Promise<ImportedJWK<JWKType>>

Imports a JWK as a CryptoKey or Uint8Array. Asymmetric imports require either the "alg" argument or JWK "alg" parameter. For AKP keys, the JWK "alg" parameter is required and must match the argument when provided.

[!NOTE]
CryptoKey imports honor the JWK "key_ops" and "ext" parameters.

[!NOTE]
Symmetric JWKs (kty: "oct") return Uint8Array instead of CryptoKey.

This function is exported (as a named export) from the main 'jose' module entry point as well as from its subpath export 'jose/key/import'.

Type Parameters

Type Parameter
JWKType extends JWK

Parameters

ParameterTypeDescription
jwkJWKTypeJSON Web Key.
alg?stringJSON Web Algorithm identifier to be used with the imported key. Default is the "alg" property on the JWK. See Algorithm Key Requirements.
options?KeyImportOptions-

Returns

Promise<ImportedJWK<JWKType>>

Example

js
const ecPublicKey = await jose.importJWK(
  {
    crv: 'P-256',
    kty: 'EC',
    x: 'ySK38C1jBdLwDsNWKzzBHqKYEE5Cgv-qjWvorUXk9fw',
    y: '_LeQBw07cf5t57Iavn4j-BqJsAD1dpoz8gokd3sBsOo',
  },
  'ES256',
)

const rsaPublicKey = await jose.importJWK(
  {
    kty: 'RSA',
    e: 'AQAB',
    n: '12oBZRhCiZFJLcPg59LkZZ9mdhSMTKAQZYq32k_ti5SBB6jerkh-WzOMAO664r_qyLkqHUSp3u5SbXtseZEpN3XPWGKSxjsy-1JyEFTdLSYe6f9gfrmxkUF_7DTpq0gn6rntP05g2-wFW50YO7mosfdslfrTJYWHFhJALabAeYirYD7-9kqq9ebfFMF4sRRELbv9oi36As6Q9B3Qb5_C1rAzqfao_PCsf9EPsTZsVVVkA5qoIAr47lo1ipfiBPxUCCNSdvkmDTYgvvRm6ZoMjFbvOtgyts55fXKdMWv7I9HMD5HwE9uW839PWA514qhbcIsXEYSFMPMV6fnlsiZvQQ',
  },
  'PS256',
)