47 lines
802 B
JavaScript
47 lines
802 B
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
function bufferToHex(arr) {
|
|
var i;
|
|
var len;
|
|
var hex = '';
|
|
var c;
|
|
|
|
for (i = 0, len = arr.length; i < len; i += 1) {
|
|
c = arr[i].toString(16);
|
|
if (c.length < 2) {
|
|
c = '0' + c;
|
|
}
|
|
hex += c;
|
|
}
|
|
|
|
return hex;
|
|
}
|
|
|
|
function hexToBuffer(hex) {
|
|
// TODO use Uint8Array or ArrayBuffer or DataView
|
|
var i;
|
|
var byteLen = hex.length / 2;
|
|
var arr;
|
|
var j = 0;
|
|
|
|
if (byteLen !== parseInt(byteLen, 10)) {
|
|
throw new Error("Invalid hex length '" + hex.length + "'");
|
|
}
|
|
|
|
arr = new Uint8Array(byteLen);
|
|
|
|
for (i = 0; i < byteLen; i += 1) {
|
|
arr[i] = parseInt(hex[j] + hex[j + 1], 16);
|
|
j += 2;
|
|
}
|
|
|
|
return arr;
|
|
}
|
|
|
|
// Hex Convenience Functions
|
|
window.Unibabel.hexToBuffer = hexToBuffer;
|
|
window.Unibabel.bufferToHex = bufferToHex;
|
|
|
|
}());
|