bitcore/lib/expmt/cbc.js

33 lines
759 B
JavaScript
Raw Normal View History

var Random = require('../random');
2014-08-24 20:51:56 -07:00
var CBC = function CBC(blockcipherf, keybuf, ivbuf) {
if (!(this instanceof CBC))
return new CBC(blockcipherf, keybuf, ivbuf);
this.blockcipherf = blockcipherf;
this.keybuf = keybuf;
this.ivbuf = ivbuf;
};
CBC.pkcs7pad = function(buf, blocksize) {
var bytesize = blocksize / 8;
var padbytesize = bytesize - buf.length;
var pad = new Buffer(padbytesize);
pad.fill(padbytesize);
return Buffer.concat([buf, pad]);
};
2014-08-24 20:51:56 -07:00
CBC.xorbufs = function(buf1, buf2) {
if (buf1.length !== buf2.length)
throw new Error('bufs must have the same length');
var buf = new Buffer(buf1.length);
for (var i = 0; i < buf1.length; i++) {
buf[i] = buf1[i] ^ buf2[i];
}
return buf;
};
module.exports = CBC;