const utils = { int32ToBytes(word) { var byteArray = [] for (var b = 0; b < 32; b += 8) { byteArray.push((word >>> (24 - b % 32)) & 0xFF) } return byteArray }, stringtoUTF8Array(message) { if (typeof message === 'string') { var s = unescape(encodeURIComponent(message)) // UTF-8 message = new Uint8Array(s.length) for (var i = 0; i < s.length; i++) { message[i] = s.charCodeAt(i) & 0xff } } return message }, // ...buffers then buffers.foreach and append to buffer1 appendBuffer(buffer1, buffer2) { buffer1 = new Uint8Array(buffer1) buffer2 = new Uint8Array(buffer2) let tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength) tmp.set(buffer1, 0) tmp.set(buffer2, buffer1.byteLength) return tmp }, int64ToBytes(int64) { // we want to represent the input as a 8-bytes array var byteArray = [0, 0, 0, 0, 0, 0, 0, 0] for (var index = 0; index < byteArray.length; index++) { var byte = int64 & 0xff byteArray[byteArray.length - index - 1] = byte int64 = (int64 - byte) / 256 } return byteArray }, hexToBytes(hexString) { return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16))) }, stringToHex(bytes) { return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '') }, equal(buf1, buf2) { if (buf1.byteLength != buf2.byteLength) return false var dv1 = new Uint8Array(buf1) var dv2 = new Uint8Array(buf2) for (var i = 0; i != buf1.byteLength; i++) { if (dv1[i] != dv2[i]) return false } return true }, bytesToHex(byteArray) { var _byteArrayToHex = [] for (var index = 0; index < byteArray.length; index++) { _byteArrayToHex.push((byteArray[index] >>> 4).toString(16)) _byteArrayToHex.push((byteArray[index] & 15).toString(16)); } return _byteArrayToHex.join("") } } export default utils