mirror of
https://github.com/cupcakearmy/occulto.git
synced 2024-11-01 06:04:17 +01:00
2.2 KiB
2.2 KiB
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)