mirror of
https://github.com/cupcakearmy/occulto.git
synced 2024-10-31 22:04:11 +01:00
Isomorphic encryption library that works both in the browser and node.
src | ||
test | ||
.gitignore | ||
.npmignore | ||
package.json | ||
README.md | ||
tsconfig.json |
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')