Back to Jose

Function: importJWK()

docs/key/import/functions/importJWK.md

6.2.92.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 to a CryptoKey. Either the JWK "alg" (Algorithm) Parameter, or the optional "alg" argument, must be present for asymmetric JSON Web Key imports.

[!NOTE]
The JSON Web Key parameters "key_ops" and "ext" are also used in the CryptoKey import process.

[!NOTE]
Symmetric JSON Web Keys (i.e. kty: "oct") yield back an Uint8Array instead of a 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',
)