Isomorphic encryption library that works both in the browser and node.
Go to file
2019-04-10 10:42:31 +02:00
src added utils and hashing 2019-04-10 10:42:00 +02:00
test little hashing test 2019-04-10 10:42:11 +02:00
.gitignore initial commit 2019-03-30 20:50:04 +01:00
.npmignore initial commit 2019-03-30 20:50:04 +01:00
package.json version bump 2019-04-10 10:42:25 +02:00
README.md Update README.md 2019-03-30 21:01:12 +01:00
tsconfig.json stricter typing 2019-04-10 10:42:31 +02:00

occulto 🔒

High leven wrapper around forge.

Typescript typings included

Quickstart 🚀

Install
npm i occulto
// Whatever import you prefer
// const { RSA } = require('occulto')
import { RSA } from 'occulto'

const pair = await RSA.gen()

const encrypted = RSA.encrypt('some string', 'myPass')
const decrypted = RSA.decrypt(encrypted, 'myPass')

Reference 📒

RSA

RSA.gen(size: number = 2 ** 12)

  • size: [optional, default=4096] Size of the RSA key
Examples
const pair = await RSA.gen() // 4096-Bit
const smallPair = await RSA.gen(2**10) // 1024-Bit

RSA.encrypt(data: string, key: PublicKey)

Encrypt message with public key

Example
const pair = await RSA.gen()
const encrypted = RSA.encrypt('some text', pair.pub)

RSA.decrypt(data: string, key: PrivateKey)

Decrypts a message encrypted with RSA.encrypt() with the private key

Example
const pair = await RSA.gen()
const encrypted = RSA.encrypt('some text', pair.pub)
const decrypted = RSA.decrypt(encrypted, pair.prv)

AES

AES.Ciphers

Available ciphers

  • Ciphers.AES_256_GCM
  • Ciphers.AES_192_GCM
  • Ciphers.AES_128_GCM

AES.encrypt(data: string, key: string, type: Ciphers = Ciphers.AES_256_GCM)

Encrypts a string. Defaults to Ciphers.AES_256_GCM

Examples
const encrypted = AES.encrypt('some string' , 'myPass')

const e = AES.encrypt('some string' , 'myPass', Ciphers.AES_128_GCM)

RSA.decrypt(e: string, key: string)

Decrypt data encrypted by AES.encrypt()

Example
const encrypted = AES.encrypt('some string' , 'myPass')
const decrypted = AES.decrypt(encrypted , 'myPass')