@rdeak/jwe
v2.0.2
Published
JWE with compression
Downloads
14
Readme
JWE
This repo exposes functions for encrypting JSON payloads, and decrypting JWE tokens into JSON from Node.js.
By default, dir
algorithm is used for encryption of CEK, and A128GCM
for encryption of a payload.
Underhood it uses jose library.
Installation
npm install @rdeak/jwe
or
npm install https://github.com/rdeak/jwe
Usage
import { encrypt, decrypt } from "@rdeak/jwe";
const jwe = JWE("0123456789123456");
const jweToken = await jwe.encrypt({ name: "John Doe" });
console.log("JWE:", jweToken);
const payload = await jwe.decrypt(jweToken);
console.table(payload);
API Documentation
JWE
Create handler for encrypting and decrypting JWE tokens.
Parameters
| Name | Type |
| :-------- | :-------- |
| secret
| string
|
| options
| Options
|
type Options = {
/***
* cryptographic algorithm used to encrypt CEK
*/
alg?: string;
/***
* cryptographic algorithm used to encrypt payload
*/
enc?: string;
/***
* default content is converted to JSON
*/
transform?: Transform<PAYLOAD>;
/***
* @deprecated https://www.rfc-editor.org/rfc/rfc8725#name-avoid-compression-of-encryp
*/
compression?: Compression;
};
encrypt
▸ encrypt(payload
): Promise
<string
>
Encrypts and resolves the value of the Compact JWE string.
Parameters
| Name | Type |
| :-------- | :------------------------ |
| payload
| Record<string, unknown>
|
Returns
Promise
<string
>
decrypt
decrypt("jwe token....", "0123456789123456");
▸ decrypt(jweToken
): Promise
<string
>
Decrypts a Compact JWE into object.
Parameters
| Name | Type |
| :--------- | :------- |
| jweToken
| string
|
Returns
Promise
<Record<string, unknown>
>
License
This project is licensed under the terms of the MIT license.