cupcakearmy / occulto

Isomorphic encryption library that works both in the browser and node.

Home Page:https://occulto.pages.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

occulto πŸ”’

Occulto /okˈkul.to/

hidden, concealed. secret.

version badge downloads badge dependency count minzip size badge types badge

Isomorphic encryption library that works both in the browser and node with no dependencies and written in Typescript.

πŸ“’ API Documentation πŸ“’

Quickstart πŸš€

Requirements
  • Node >= 16 required
Install
npm i occulto

Examples

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)

Available Modes

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)

Available hashes

import { Hash, Hashes } from 'occulto'

const hashed = await Hash.hash('Some value', Hashes.SHA_512)

About

Isomorphic encryption library that works both in the browser and node.

https://occulto.pages.dev

License:MIT License


Languages

Language:TypeScript 58.3%Language:JavaScript 41.7%