UNPKG

@iotile/iotile-common

Version:

Common utilities for IoTile Packages and Applications

40 lines 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); //<reference path="../../../../node_modules/@types/crypto-js/index.d.ts"/> var utilities_1 = require("./utilities"); var CryptoJS = require("crypto-js"); /** * A helper class for calculating and verifying SHA256 signatures */ var SHA256Calculator = /** @class */ (function () { function SHA256Calculator() { } SHA256Calculator.prototype.calculateSignature = function (data) { var signedData = CryptoJS.lib.WordArray.create(data); var signatureData = CryptoJS.SHA256(signedData).toString(CryptoJS.enc.Base64); var signature = utilities_1.base64ToArrayBuffer(signatureData); return signature; }; /** * Compare two signatures for equality. The comparison only * occurs for the length of sig1, so if sig1 is a truncated version * of sig2, the comparison will return true. * * @param sig1 The signature to check against sig2 * @param sig2 The (possibly extended) signature to compare sig1 against * @return true if sig1 is a prefix of sig2, false otherwise */ SHA256Calculator.prototype.compareSignatures = function (sig1, sig2) { var dv1 = new Uint8Array(sig1); var dv2 = new Uint8Array(sig2); for (var i = 0; i < dv1.byteLength; ++i) { if (dv1[i] != dv2[i]) { return false; } } return true; }; return SHA256Calculator; }()); exports.SHA256Calculator = SHA256Calculator; //# sourceMappingURL=hash-calculator.js.map