Back to Jose

Function: generalDecrypt()

docs/jwe/general/decrypt/functions/generalDecrypt.md

6.2.96.5 KB
Original Source

Function: generalDecrypt()

šŸ’— 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.

Call Signature

ā–ø generalDecrypt(jwe, key, options?): Promise<GeneralDecryptResult>

Decrypts a General JWE.

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

[!NOTE]
The function iterates over the recipients array in the General JWE and returns the decryption result of the first recipient entry that can be successfully decrypted. The result only contains the plaintext and headers of that successfully decrypted recipient entry. Other recipient entries in the General JWE are not validated, and their headers are not included in the returned result. Recipients of a General JWE should only rely on the returned (decrypted) data.

Parameters

ParameterTypeDescription
jweGeneralJWEGeneral JWE.
keyKeyInputPrivate Key or Secret to decrypt the JWE with. See Algorithm Key Requirements.
options?DecryptOptionsJWE Decryption options.

Returns

Promise<GeneralDecryptResult>

Example

js
const jwe = {
  ciphertext: '9EzjFISUyoG-ifC2mSihfP0DPC80yeyrxhTzKt1C_VJBkxeBG0MI4Te61Pk45RAGubUvBpU9jm4',
  iv: '8Fy7A_IuoX5VXG9s',
  tag: 'W76IYV6arGRuDSaSyWrQNg',
  aad: 'VGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc',
  protected: 'eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0',
  recipients: [
    {
      encrypted_key:
        'Z6eD4UK_yFb5ZoKvKkGAdqywEG_m0e4IYo0x8Vf30LAMJcsc-_zSgIeiF82teZyYi2YYduHKoqImk7MRnoPZOlEs0Q5BNK1OgBmSOhCE8DFyqh9Zh48TCTP6lmBQ52naqoUJFMtHzu-0LwZH26hxos0GP3Dt19O379MJB837TdKKa87skq0zHaVLAquRHOBF77GI54Bc7O49d8aOrSu1VEFGMThlW2caspPRiTSePDMDPq7_WGk50izRhB3Asl9wmP9wEeaTrkJKRnQj5ips1SAZ1hDBsqEQKKukxP1HtdcopHV5_qgwU8Hjm5EwSLMluMQuiE6hwlkXGOujZLVizA',
    },
  ],
}

const { plaintext, protectedHeader, additionalAuthenticatedData } =
  await jose.generalDecrypt(jwe, privateKey)

console.log(protectedHeader)
const decoder = new TextDecoder()
console.log(decoder.decode(plaintext))
console.log(decoder.decode(additionalAuthenticatedData))

Call Signature

ā–ø generalDecrypt<KeyType>(jwe, getKey, options?): Promise<GeneralDecryptResult & ResolvedKey<KeyType>>

Decrypts a General JWE, resolving the key dynamically. The result additionally carries the resolved key.

Type Parameters

Type ParameterDefault type
KeyType extends Uint8Array | CryptoKeyUint8Array | CryptoKey

Parameters

ParameterTypeDescription
jweGeneralJWEGeneral JWE.
getKeyGeneralDecryptGetKey<KeyType>Function resolving Private Key or Secret to decrypt the JWE with. See Algorithm Key Requirements.
options?DecryptOptionsJWE Decryption options.

Returns

Promise<GeneralDecryptResult & ResolvedKey<KeyType>>

Call Signature

ā–ø generalDecrypt(jwe, key, options?): Promise<GeneralDecryptResult & Partial<ResolvedKey<Uint8Array | CryptoKey>>>

Accepts either form of the key argument. Use this overload when forwarding a value that may be either a key or a key resolution function; key is present on the result only when a resolution function was used.

Parameters

ParameterTypeDescription
jweGeneralJWEGeneral JWE.
keyKeyInput | GeneralDecryptGetKey<Uint8Array | CryptoKey>Private Key or Secret, or a function resolving one, to decrypt the JWE with. See Algorithm Key Requirements.
options?DecryptOptionsJWE Decryption options.

Returns

Promise<GeneralDecryptResult & Partial<ResolvedKey<Uint8Array | CryptoKey>>>