blockbufs2buf
This commit is contained in:
parent
ae319ffcbc
commit
dfa190b5a5
|
@ -27,6 +27,18 @@ CBC.buf2blockbufs = function(buf, blocksize) {
|
|||
return blockbufs;
|
||||
};
|
||||
|
||||
CBC.blockbufs2buf = function(blockbufs, blocksize) {
|
||||
var bytesize = blocksize / 8;
|
||||
|
||||
var last = blockbufs[blockbufs.length - 1];
|
||||
last = CBC.pkcs7unpad(last);
|
||||
blockbufs[blockbufs.length - 1] = last;
|
||||
|
||||
var buf = Buffer.concat(blockbufs);
|
||||
|
||||
return buf;
|
||||
};
|
||||
|
||||
CBC.encrypt = function(messagebuf, ivbuf, blockcipher, cipherkeybuf) {
|
||||
var blocksize = ivbuf.length * 8;
|
||||
var blockbufs = CBC.buf2blockbufs(messagebuf, blocksize);
|
||||
|
|
|
@ -34,6 +34,26 @@ describe('CBC', function() {
|
|||
|
||||
});
|
||||
|
||||
describe('@buf2blockbufs', function() {
|
||||
|
||||
it('should convert this buffer into one block and back into the same buffer', function() {
|
||||
var buf = new Buffer(16 - 1);
|
||||
buf.fill(0);
|
||||
var blockbufs = CBC.buf2blockbufs(buf, 16 * 8);
|
||||
var buf2 = CBC.blockbufs2buf(blockbufs, 16 * 8);
|
||||
buf2.toString('hex').should.equal(buf.toString('hex'));
|
||||
});
|
||||
|
||||
it('should convert this buffer into two blocks and back into the same buffer', function() {
|
||||
var buf = new Buffer(16);
|
||||
buf.fill(0);
|
||||
var blockbufs = CBC.buf2blockbufs(buf, 16 * 8);
|
||||
var buf2 = CBC.blockbufs2buf(blockbufs, 16 * 8);
|
||||
buf2.toString('hex').should.equal(buf.toString('hex'));
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('@encrypt', function() {
|
||||
|
||||
it('should return this known value', function() {
|
||||
|
|
Loading…
Reference in New Issue