Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cupcakearmy/occulto

Isomorphic encryption library that works both in the browser and node.
https://github.com/cupcakearmy/occulto

aes crypto crypto-library cryptography easy-to-use hash high-level node node-crypto typescript

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

# occulto 🔒

> Occulto /okˈkul.to/
>
> _hidden, concealed. secret._

![version badge](https://badgen.net/npm/v/occulto)
![downloads badge](https://badgen.net/npm/dt/occulto)
![dependency count](https://badgen.net/bundlephobia/dependency-count/occulto)
![minzip size badge](https://badgen.net/bundlephobia/minzip/occulto)
![types badge](https://badgen.net/npm/types/occulto)

Isomorphic encryption library that works both in the browser and node with _no dependencies_ and written in Typescript.

[**📒 API Documentation 📒**](https://occulto.pages.dev)

## Quickstart 🚀

###### Requirements

- Node >= 16 required

###### Install

```
npm i occulto
```

## Examples

### [RSA](https://occulto.pages.dev/classes/RSA)

```typescript
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](https://occulto.pages.dev/classes/AES)

[Available Modes](https://occulto.pages.dev/enums/Modes)

There is an _easy_ API, that will take care of everything for you.

```typescript
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.

```typescript
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](https://occulto.pages.dev/classes/Hash)

[Available hashes](https://occulto.pages.dev/enums/Hashes)

```typescript
import { Hash, Hashes } from 'occulto'

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