codecHex.js 807 B

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