30 lines
807 B
JavaScript
30 lines
807 B
JavaScript
/** @fileOverview Bit array codec implementations.
|
|
*
|
|
* @author Emily Stark
|
|
* @author Mike Hamburg
|
|
* @author Dan Boneh
|
|
*/
|
|
|
|
/** @namespace Hexadecimal */
|
|
sjcl.codec.hex = {
|
|
/** Convert from a bitArray to a hex string. */
|
|
fromBits: function (arr) {
|
|
var out = "", i, x;
|
|
for (i=0; i<arr.length; i++) {
|
|
out += ((arr[i]|0)+0xF00000000000).toString(16).substr(4);
|
|
}
|
|
return out.substr(0, sjcl.bitArray.bitLength(arr)/4);//.replace(/(.{8})/g, "$1 ");
|
|
},
|
|
/** Convert from a hex string to a bitArray. */
|
|
toBits: function (str) {
|
|
var i, out=[], len;
|
|
str = str.replace(/\s|0x/g, "");
|
|
len = str.length;
|
|
str = str + "00000000";
|
|
for (i=0; i<str.length; i+=8) {
|
|
out.push(parseInt(str.substr(i,8),16)^0);
|
|
}
|
|
return sjcl.bitArray.clamp(out, len*4);
|
|
}
|
|
};
|
|
|