jwk-encrypt
TypeScript icon, indicating that this package has built-in type declarations

0.1.5 • Public • Published

jwk-encrypt

Encrypt and decrypt your data using JSON Web Key (JWK). Implemented using Web Crypto Api, RSA-OAEP, AES-CTR.

Encrypt / decrypt message with JWK

import { encryptText, decryptText } from "jwk-encrypt"
 
const encryptedMessage = await encryptText(jwk, "Message to encrypt");
const originalMessage = await decryptText(jwk, encryptedMessage);

jwk is an object in JWK format like

{
  "kty": "RSA",
  "n": "ws-5Ln...",
  "e": "AQAB",
  "d": "L4QdBe...",
  "p": "8uNw393yPhDyf9...",
  "q": "zVPjt08rxLgZ...",
  "dp": "5tFNSvFYa...",
  "dq": "BcCP5J...",
  "qi": "StxIGos3..."
}

The message will be encrypted with random 256-bit key using AES-CTR algorithm. The key itself will be encrypted using RSA-OAEP with the public part of the key from provided JWK. As a result it returns combination of a counter (16 bytes), the encrypted with RSA random key (512 bytes) and the encrypted content.

Encrypt / decrypt data with JWK

import { encrypt, decrypt } from "jwk-encrypt"
 
const encryptedData = await encrypt(jwk, data); 
const originalData = await decrypt(jwk, encryptedData);

Scripts

In the project directory, you can run:

yarn start

Demo UI to play with the encryption

yarn build

Builds the library for production to the dist folder.

Package Sidebar

Install

npm i jwk-encrypt

Weekly Downloads

0

Version

0.1.5

License

MIT

Unpacked Size

13.2 kB

Total Files

18

Last publish

Collaborators

  • 0xd49