mirror of
https://github.com/cupcakearmy/occulto.git
synced 2024-11-12 03:14:11 +01:00
Isomorphic encryption library that works both in the browser and node.
.github/workflows | ||
.vscode | ||
src | ||
test | ||
.gitignore | ||
.nvmrc | ||
CHANGELOG.md | ||
LICENSE | ||
package.json | ||
pnpm-lock.yaml | ||
README.md | ||
ROADMAP.md | ||
test.browsers.js | ||
tsconfig.json | ||
typedoc.json |
occulto 🔒
Occulto /okˈkul.to/
hidden, concealed. secret.
Isomorphic encryption library that works both in the browser and node with no dependencies and written in Typescript.
Quickstart 🚀
Requirements
- Node >= 16 required
Install
npm i occulto
Examples
RSA
import { RSA } from 'occulto'
const pair = await RSA.generateKeyPair(2 ** 11)
const bytes = Bytes.encode(message)
const encrypted = await RSA.encrypt(bytes, pair.public)
const decrypted = await RSA.decrypt(encrypted, pair.private)
AES
There is an easy API, that will take care of everything for you.
import { AES } from 'occulto'
const password = 'foobar'
const message = 'this is a secret'
const encrypted = await AES.encryptEasy(message, password)
const decrypted = await AES.decryptEasy(encrypted, password)
The low level API is also exposed for advanced usages.
import { AES } from 'occulto'
const message = 'this is a secret'
const key = await AES.generateKey()
const data = Bytes.encode(message)
const ciphertext = await AES.encrypt(data, key)
const plaintext = await AES.decrypt(ciphertext, key)
Hash
import { Hash, Hashes } from 'occulto'
const hashed = await Hash.hash('Some value', Hashes.SHA_512)