Encryption -> SymEnc
This is more explanatory ("symmetric encryption") and also does not encourage its use for people who don't know what they're doing. (It should only be used in combination with some type of message authentication.)
This commit is contained in:
parent
1cb2f900af
commit
6f54d4cde6
|
@ -3,31 +3,31 @@ var CBC = require('./cbc');
|
|||
var Random = require('../random');
|
||||
var Hash = require('../hash');
|
||||
|
||||
var Encryption = function Encryption() {
|
||||
var SymEnc = function SymEnc() {
|
||||
};
|
||||
|
||||
Encryption.encrypt = function(messagebuf, passwordstr) {
|
||||
SymEnc.encrypt = function(messagebuf, passwordstr) {
|
||||
var cipherkeybuf = Hash.sha256(new Buffer(passwordstr));
|
||||
return Encryption.encryptCipherkey(messagebuf, cipherkeybuf);
|
||||
return SymEnc.encryptCipherkey(messagebuf, cipherkeybuf);
|
||||
};
|
||||
|
||||
Encryption.decrypt = function(encbuf, passwordstr) {
|
||||
SymEnc.decrypt = function(encbuf, passwordstr) {
|
||||
var cipherkeybuf = Hash.sha256(new Buffer(passwordstr));
|
||||
return Encryption.decryptCipherkey(encbuf, cipherkeybuf);
|
||||
return SymEnc.decryptCipherkey(encbuf, cipherkeybuf);
|
||||
};
|
||||
|
||||
Encryption.encryptCipherkey = function(messagebuf, cipherkeybuf, ivbuf) {
|
||||
SymEnc.encryptCipherkey = function(messagebuf, cipherkeybuf, ivbuf) {
|
||||
ivbuf = ivbuf || Random.getRandomBuffer(128 / 8);
|
||||
var ctbuf = CBC.encrypt(messagebuf, ivbuf, AES, cipherkeybuf);
|
||||
var encbuf = Buffer.concat([ivbuf, ctbuf]);
|
||||
return encbuf;
|
||||
};
|
||||
|
||||
Encryption.decryptCipherkey = function(encbuf, cipherkeybuf) {
|
||||
SymEnc.decryptCipherkey = function(encbuf, cipherkeybuf) {
|
||||
var ivbuf = encbuf.slice(0, 128 / 8);
|
||||
var ctbuf = encbuf.slice(128 / 8);
|
||||
var messagebuf = CBC.decrypt(ctbuf, ivbuf, AES, cipherkeybuf);
|
||||
return messagebuf;
|
||||
};
|
||||
|
||||
module.exports = Encryption;
|
||||
module.exports = SymEnc;
|
|
@ -1,7 +1,7 @@
|
|||
var should = require('chai').should();
|
||||
var Encryption = require('../lib/expmt/encryption');
|
||||
var SymEnc = require('../lib/expmt/symenc');
|
||||
|
||||
describe('Encryption', function() {
|
||||
describe('SymEnc', function() {
|
||||
|
||||
describe('@encrypt', function() {
|
||||
|
||||
|
@ -9,7 +9,7 @@ describe('Encryption', function() {
|
|||
var password = "password";
|
||||
var messagebuf = new Buffer(128 / 8 - 1);
|
||||
messagebuf.fill(0);
|
||||
var encbuf = Encryption.encrypt(messagebuf, password);
|
||||
var encbuf = SymEnc.encrypt(messagebuf, password);
|
||||
encbuf.length.should.equal(128 / 8 + 128 / 8);
|
||||
});
|
||||
|
||||
|
@ -21,8 +21,8 @@ describe('Encryption', function() {
|
|||
var password = "password";
|
||||
var messagebuf = new Buffer(128 / 8 - 1);
|
||||
messagebuf.fill(0);
|
||||
var encbuf = Encryption.encrypt(messagebuf, password);
|
||||
var messagebuf2 = Encryption.decrypt(encbuf, password);
|
||||
var encbuf = SymEnc.encrypt(messagebuf, password);
|
||||
var messagebuf2 = SymEnc.decrypt(encbuf, password);
|
||||
messagebuf2.toString('hex').should.equal(messagebuf.toString('hex'));
|
||||
});
|
||||
|
||||
|
@ -37,7 +37,7 @@ describe('Encryption', function() {
|
|||
ivbuf.fill(0);
|
||||
var messagebuf = new Buffer(128 / 8 - 1);
|
||||
messagebuf.fill(0);
|
||||
var encbuf = Encryption.encryptCipherkey(messagebuf, cipherkeybuf, ivbuf);
|
||||
var encbuf = SymEnc.encryptCipherkey(messagebuf, cipherkeybuf, ivbuf);
|
||||
encbuf.length.should.equal(128 / 8 + 128 / 8);
|
||||
});
|
||||
|
||||
|
@ -48,7 +48,7 @@ describe('Encryption', function() {
|
|||
ivbuf.fill(0);
|
||||
var messagebuf = new Buffer(128 / 8);
|
||||
messagebuf.fill(0);
|
||||
var encbuf = Encryption.encryptCipherkey(messagebuf, cipherkeybuf, ivbuf);
|
||||
var encbuf = SymEnc.encryptCipherkey(messagebuf, cipherkeybuf, ivbuf);
|
||||
encbuf.length.should.equal(128 / 8 + 128 / 8 + 128 / 8);
|
||||
});
|
||||
|
||||
|
@ -63,8 +63,8 @@ describe('Encryption', function() {
|
|||
ivbuf.fill(0);
|
||||
var messagebuf = new Buffer(128 / 8);
|
||||
messagebuf.fill(0);
|
||||
var encbuf = Encryption.encryptCipherkey(messagebuf, cipherkeybuf, ivbuf);
|
||||
var messagebuf2 = Encryption.decryptCipherkey(encbuf, cipherkeybuf);
|
||||
var encbuf = SymEnc.encryptCipherkey(messagebuf, cipherkeybuf, ivbuf);
|
||||
var messagebuf2 = SymEnc.decryptCipherkey(encbuf, cipherkeybuf);
|
||||
messagebuf2.toString('hex').should.equal(messagebuf.toString('hex'));
|
||||
});
|
||||
|
Loading…
Reference in New Issue