diff --git a/lib/cryptoEngine.js b/lib/cryptoEngine.js index c28e88e..794f202 100644 --- a/lib/cryptoEngine.js +++ b/lib/cryptoEngine.js @@ -69,17 +69,22 @@ const HexEncoder = isNode if (!hexString) { return null; } - if (hexString.length % 2 !== 0) throw "Invalid hexString"; - const arrayBuffer = new Uint8Array(hexString.length / 2); + + if (hexString.length % 2 !== 0) { + throw new Error("Invalid hex string length"); + } + + const bytes = new Uint8Array(hexString.length / 2); for (let i = 0; i < hexString.length; i += 2) { - const byteValue = parseInt(hexString.substring(i, i + 2), 16); - if (isNaN(byteValue)) { - throw "Invalid hexString"; + const byte = parseInt(hexString.substring(i, i + 2), 16); + if (isNaN(byte)) { + throw new Error("Invalid character in hex string."); } - arrayBuffer[i / 2] = byteValue; + bytes[i / 2] = byte; } - return arrayBuffer; + + return bytes; }, /** @@ -91,16 +96,10 @@ const HexEncoder = isNode if (!bytes) { return null; } - const hexBytes = []; - for (let i = 0; i < bytes.length; ++i) { - let byteString = bytes[i].toString(16); - if (byteString.length < 2) { - byteString = "0" + byteString; - } - hexBytes.push(byteString); - } - return hexBytes.join(""); + return Array.from(bytes) + .map((byte) => byte.toString(16).padStart(2, "0")) + .join(""); }, }; exports.HexEncoder = HexEncoder;