Options
All
  • Public
  • Public/Protected
  • All
Menu

occulto

occulto 🔒

High level wrapper around forge.

Supports Hashes, Symmetric AES & ChaCha20 ciphers and Asymmetric RSA.

Typescript typings included

Quickstart 🚀

Install
npm i node-forge 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)

Symmetric

Symmetric.Ciphers

Available ciphers

  • Ciphers.ChaCha20
  • Ciphers.AES_256_GCM
  • Ciphers.AES_192_GCM
  • Ciphers.AES_128_GCM
  • Ciphers.AES_256_CTR
  • Ciphers.AES_192_CTR
  • Ciphers.AES_128_CTR

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

Encrypts a string. Defaults to Ciphers.AES_256_CTR

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

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

Hash

Hash.Hashes

Available hashes

  • Hashes.MD5
  • Hashes.SHA1_1
  • Hashes.SHA1_256
  • Hashes.SHA1_512
  • Hashes.SHA3_256
  • Hashes.SHA3_384
  • Hashes.SHA3_512

Hash.digest(s: string, type: Hashes = Hashes.SHA3_256)

Calculates the hash of a string. Defaults to Hashes.SHA3_256

Examples
const hash = Hash.digest('something')

const h = Hash.digest('something', Hashes.MD5)

Generated using TypeDoc