@iotile/iotile-common
Version:
Common utilities for IoTile Packages and Applications
40 lines • 1.57 kB
JavaScript
;
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