Skip to content

A JavaScript component for the Advanced Encryption Standard (AES). Important for BIP38

Notifications You must be signed in to change notification settings

cryptocoinjs/aes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aes

A JavaScript component for the Advanced Encryption Standard (AES). Fully compatible with Node.js and the browser (via Browserify).

(Note, more optimizations may need to be made)

Why?

AES is currently one of the most popular block ciper encyrption algorithms. It is relevant to the Bitcoin private key encryption scheme BIP38.

Usage

Installation

npm install --save aes

Example

Note, that as version 0.1.x, you must be concerned with the endianess of your input data. It expects that the key is a regular JavaScript array of 4,6,8 or 32-bit unsigned values. The encrypt function is a regular JavaScript array of 4 32-bit big endian unsigned integers.

var AES = require('aes')

var key = [0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xfffffff8];
var pt = [0x00000000,0x00000000,0x00000000,0x00000000];
var ct = [0xd241aab0,0x5a42d319,0xde81d874,0xf5c7b90d];

var aes = new AES(key);
console.dir(aes.encrypt(pt)); // => [0xd241aab0,0x5a42d319,0xde81d874,0xf5c7b90d]
console.dir(aes.decrypt(ct)); // => [0x00000000,0x00000000,0x00000000,0x00000000]

Testing

  1. Clone the git repo.
  2. npm install --development

Node.js

Make node-test

Browser

npm install --production selenium-standalone -g start-selenium

(source your shell or open a new one), edit file .min-wd

start-selenium
Make browser-test

Bundle for Browser

npm install -g browserify
browserify < lib/aes.js > lib/aes.bundle.js

References

Credits

Extracted from the Stanford JavaScript Crypto Library.

License

BSD License

About

A JavaScript component for the Advanced Encryption Standard (AES). Important for BIP38

Resources

Stars

Watchers

Forks

Packages

No packages published