Skip to content

thesimj/js-salsa20

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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