Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/cupcakearmy/occulto
- Owner: cupcakearmy
- License: mit
- Created: 2019-03-30T19:47:28.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-09-02T08:00:18.000Z (3 months ago)
- Last Synced: 2024-10-05T02:37:02.611Z (about 1 month ago)
- Topics: aes, crypto, crypto-library, cryptography, easy-to-use, hash, high-level, node, node-crypto, typescript
- Language: TypeScript
- Homepage: https://occulto.pages.dev
- Size: 388 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
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)
```