Skip to content
This repository has been archived by the owner on Mar 6, 2024. It is now read-only.

thesimj/js-salsa20

Repository files navigation

JS-Salsa20

Pure JavaScript Salsa20 stream cipher

Build Status Standard - JavaScript Style Guide

Abstract

Salsa20 is a family of 256-bit stream ciphers designed in 2005 and submitted to eSTREAM, the ECRYPT Stream Cipher Project. Salsa20 has progressed to the third round of eSTREAM without any changes. The 20-round stream cipher Salsa20/20 is consistently faster than AES and is recommended by the designer for typical cryptographic applications.

Implementation derived from

Install

npm install js-salsa20 --save

Usage

Encrypt message with key and nonce

import JSSalsa20 from "js-salsa20";

const key = Uint8Array([...]); // 32 bytes key
const nonce = Uint8Array([...]); // 8 bytes nonce
const message = Uint8Array([...]); // some data as bytes array

// Encrypt //
const encrypt = new JSSalsa20(key, nonce).encrypt(message);

// now encrypt contains bytes array of encrypted message

Decrypt encrypted message with key and nonce

import JSSalsa20 from "js-salsa20";

const key = Uint8Array([...]); // 32 bytes key
const nonce = Uint8Array([...]); // 8 bytes nonce
const encrypt = Uint8Array([...]); // some data as bytes array

// Encrypt //
const message = new JSSalsa20(key, nonce).decrypt(encrypt);

// now message contains bytes array of original message

That all. If something happens, Error will be thrown. More examples you can find in tests files.

About

Pure JavaScript Salsa20 stream cipher

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published