Thread resolver return types through verify and decrypt results. Add overloads so wrappers can forward either keys or resolvers. Infer importJWK and generateSecret results from their inputs. Keep JWT payload generics unconstrained while rejecting known non-object shapes. Signed-off-by: Filip Skokan <[email protected]>
2.6 KiB
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
| Parameter | Type | Description |
|---|---|---|
jwk |
JWKType |
JSON Web Key. |
alg? |
string |
JSON 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
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',
)