🔐 Crypto
A collection of useful cryptographic algorithms written in Typescript.
⚠ This project is still in an early stage of development. Expect breaking changes.
Supported algorithms
Block ciphers
- AES (Rijndael)
- Blowfish
- CAST5
- ECB, CBC, CFB, OFB and CTR block modes
Message Authentication Code algorithms (MACs)
Key Derivation Functions (KDFs)
Examples
AES-128-CBC
import { Aes } from "https://deno.land/x/crypto/aes.ts";
import { Cbc, Padding } from "https://deno.land/x/crypto/block-modes.ts";
const te = new TextEncoder();
const key = te.encode("SuperDuperSecret");
const data = te.encode("DataToBeEncrypted");
const iv = new Uint8Array(16);
// Ciphers have an internal state, you should therefore create
// separate ciphers for encryption and decryption
const cipher = new Cbc(Aes, key, iv, Padding.PKCS7);
const decipher = new Cbc(Aes, key, iv, Padding.PKCS7);
const encrypted = cipher.encrypt(data);
const decrypted = decipher.decrypt(encrypted);
Disclaimer
This repository has not yet received any formal cryptographic and security reviews. USE AT YOUR OWN RISK