Merge pull request #745 from pinheadmz/hashstring

util: reverse buffers instead of strings
This commit is contained in:
Braydon Fuller 2019-04-05 08:36:47 -07:00
commit 7136c256fc
No known key found for this signature in database
GPG Key ID: F24F232D108B3AD4
2 changed files with 20 additions and 15 deletions

17
bench/hexstring.js Normal file
View File

@ -0,0 +1,17 @@
'use strict';
const random = require('bcrypto/lib/random');
const util = require('../lib/utils/util');
const bench = require('./bench');
const hashes = [];
for (let i = 0; i < 100000; i++)
hashes.push(random.randomBytes(32));
{
const end = bench('hexstring');
for (let i = 0; i < hashes.length; i++)
util.fromRev(util.revHex(hashes[i]));
end(100000);
}

View File

@ -96,31 +96,19 @@ util.time = function time(date) {
/**
* Reverse a hex-string.
* @param {String} str - Hex string.
* @param {Buffer}
* @returns {String} Reversed hex string.
*/
util.revHex = function revHex(buf) {
assert(Buffer.isBuffer(buf));
const str = buf.toString('hex');
let out = '';
for (let i = str.length - 2; i >= 0; i -= 2)
out += str[i] + str[i + 1];
return out;
return Buffer.from(buf).reverse().toString('hex');
};
util.fromRev = function fromRev(str) {
assert(typeof str === 'string');
assert((str.length & 1) === 0);
let out = '';
for (let i = str.length - 2; i >= 0; i -= 2)
out += str[i] + str[i + 1];
return Buffer.from(out, 'hex');
return Buffer.from(str, 'hex').reverse();
};