Back to Jose

Function: generalDecrypt()

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

6.2.24.1 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.
keyUint8Array | CryptoKey | JWK | KeyObjectPrivate 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(jwe, getKey, options?): Promise<GeneralDecryptResult & ResolvedKey>

Parameters

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

Returns

Promise<GeneralDecryptResult & ResolvedKey>