UNPKG

iota.lib.js

Version:
27 lines (23 loc) 912 B
var Curl = require("../curl/curl"); var Converter = require("../converter/converter"); var HMAC_ROUNDS = 27; function hmac(key) { this._key = Converter.trits(key); } hmac.prototype.addHMAC = function(bundle) { var curl = new Curl(HMAC_ROUNDS); var key = this._key; for(var i = 0; i < bundle.bundle.length; i++) { if (bundle.bundle[i].value > 0) { var bundleHashTrits = Converter.trits(bundle.bundle[i].bundle); var hmac = new Int8Array(243); curl.initialize(); curl.absorb(key, 0, key.length); curl.absorb(bundleHashTrits, 0, bundleHashTrits.length); curl.squeeze(hmac, 0, hmac.length); var hmacTrytes = Converter.trytes(hmac); bundle.bundle[i].signatureMessageFragment = hmacTrytes + bundle.bundle[i].signatureMessageFragment.substring(81, 2187); } } } module.exports = hmac;