Skip to content

Latest commit

 

History

History
104 lines (73 loc) · 6.53 KB

File metadata and controls

104 lines (73 loc) · 6.53 KB

Function: generalDecrypt()

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

Parameter Type Description
jwe GeneralJWE General JWE.
key KeyInput Private Key or Secret to decrypt the JWE with. See Algorithm Key Requirements.
options? DecryptOptions JWE Decryption options.

Returns

Promise<GeneralDecryptResult>

Example

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 Parameter Default type
KeyType extends Uint8Array | CryptoKey Uint8Array | CryptoKey

Parameters

Parameter Type Description
jwe GeneralJWE General JWE.
getKey GeneralDecryptGetKey<KeyType> Function resolving Private Key or Secret to decrypt the JWE with. See Algorithm Key Requirements.
options? DecryptOptions JWE 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

Parameter Type Description
jwe GeneralJWE General JWE.
key KeyInput | GeneralDecryptGetKey<Uint8Array | CryptoKey> Private Key or Secret, or a function resolving one, to decrypt the JWE with. See Algorithm Key Requirements.
options? DecryptOptions JWE Decryption options.

Returns

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