Source: codecHex.js

  1. /** @fileOverview Bit array codec implementations.
  2. *
  3. * @author Emily Stark
  4. * @author Mike Hamburg
  5. * @author Dan Boneh
  6. */
  7. /**
  8. * Hexadecimal
  9. * @namespace
  10. */
  11. sjcl.codec.hex = {
  12. /** Convert from a bitArray to a hex string. */
  13. fromBits: function (arr) {
  14. var out = "", i;
  15. for (i=0; i<arr.length; i++) {
  16. out += ((arr[i]|0)+0xF00000000000).toString(16).substr(4);
  17. }
  18. return out.substr(0, sjcl.bitArray.bitLength(arr)/4);//.replace(/(.{8})/g, "$1 ");
  19. },
  20. /** Convert from a hex string to a bitArray. */
  21. toBits: function (str) {
  22. var i, out=[], len;
  23. str = str.replace(/\s|0x/g, "");
  24. len = str.length;
  25. str = str + "00000000";
  26. for (i=0; i<str.length; i+=8) {
  27. out.push(parseInt(str.substr(i,8),16)^0);
  28. }
  29. return sjcl.bitArray.clamp(out, len*4);
  30. }
  31. };