| 'use strict'; |
| |
| var utils = exports; |
| |
| function toArray(msg, enc) { |
| if (Array.isArray(msg)) |
| return msg.slice(); |
| if (!msg) |
| return []; |
| var res = []; |
| if (typeof msg !== 'string') { |
| for (var i = 0; i < msg.length; i++) |
| res[i] = msg[i] | 0; |
| return res; |
| } |
| if (enc === 'hex') { |
| msg = msg.replace(/[^a-z0-9]+/ig, ''); |
| if (msg.length % 2 !== 0) |
| msg = '0' + msg; |
| for (var i = 0; i < msg.length; i += 2) |
| res.push(parseInt(msg[i] + msg[i + 1], 16)); |
| } else { |
| for (var i = 0; i < msg.length; i++) { |
| var c = msg.charCodeAt(i); |
| var hi = c >> 8; |
| var lo = c & 0xff; |
| if (hi) |
| res.push(hi, lo); |
| else |
| res.push(lo); |
| } |
| } |
| return res; |
| } |
| utils.toArray = toArray; |
| |
| function zero2(word) { |
| if (word.length === 1) |
| return '0' + word; |
| else |
| return word; |
| } |
| utils.zero2 = zero2; |
| |
| function toHex(msg) { |
| var res = ''; |
| for (var i = 0; i < msg.length; i++) |
| res += zero2(msg[i].toString(16)); |
| return res; |
| } |
| utils.toHex = toHex; |
| |
| utils.encode = function encode(arr, enc) { |
| if (enc === 'hex') |
| return toHex(arr); |
| else |
| return arr; |
| }; |