{"id":"node_modules/elliptic/lib/elliptic/eddsa/index.js","dependencies":[{"name":"/www/ml-classifier/example/package.json","includedInParent":true,"mtime":1551949031632},{"name":"/www/ml-classifier/example/.babelrc","includedInParent":true,"mtime":1551703756168},{"name":"/www/ml-classifier/example/node_modules/elliptic/package.json","includedInParent":true,"mtime":1542583799903},{"name":"hash.js","loc":{"line":3,"column":19},"parent":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic/eddsa/index.js","resolved":"/www/ml-classifier/example/node_modules/hash.js/lib/hash.js"},{"name":"../../elliptic","loc":{"line":4,"column":23},"parent":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic/eddsa/index.js","resolved":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic.js"},{"name":"./key","loc":{"line":8,"column":22},"parent":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic/eddsa/index.js","resolved":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic/eddsa/key.js"},{"name":"./signature","loc":{"line":9,"column":24},"parent":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic/eddsa/index.js","resolved":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic/eddsa/signature.js"}],"generated":{"js":"'use strict';\n\nvar hash = require('hash.js');\nvar elliptic = require('../../elliptic');\nvar utils = elliptic.utils;\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n  assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n  if (!(this instanceof EDDSA))\n    return new EDDSA(curve);\n\n  var curve = elliptic.curves[curve].curve;\n  this.curve = curve;\n  this.g = curve.g;\n  this.g.precompute(curve.n.bitLength() + 1);\n\n  this.pointClass = curve.point().constructor;\n  this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n  this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n  message = parseBytes(message);\n  var key = this.keyFromSecret(secret);\n  var r = this.hashInt(key.messagePrefix(), message);\n  var R = this.g.mul(r);\n  var Rencoded = this.encodePoint(R);\n  var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n               .mul(key.priv());\n  var S = r.add(s_).umod(this.curve.n);\n  return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n  message = parseBytes(message);\n  sig = this.makeSignature(sig);\n  var key = this.keyFromPublic(pub);\n  var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n  var SG = this.g.mul(sig.S());\n  var RplusAh = sig.R().add(key.pub().mul(h));\n  return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n  var hash = this.hash();\n  for (var i = 0; i < arguments.length; i++)\n    hash.update(arguments[i]);\n  return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n  return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n  return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n  if (sig instanceof Signature)\n    return sig;\n  return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n  var enc = point.getY().toArray('le', this.encodingLength);\n  enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n  return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n  bytes = utils.parseBytes(bytes);\n\n  var lastIx = bytes.length - 1;\n  var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n  var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n  var y = utils.intFromLE(normed);\n  return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n  return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n  return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n  return val instanceof this.pointClass;\n};\n","map":{"mappings":[{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":1,"column":0},"generated":{"line":1,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":2,"column":0},"generated":{"line":2,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":3,"column":0},"generated":{"line":3,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":4,"column":0},"generated":{"line":4,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":5,"column":0},"generated":{"line":5,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":6,"column":0},"generated":{"line":6,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":7,"column":0},"generated":{"line":7,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":8,"column":0},"generated":{"line":8,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":9,"column":0},"generated":{"line":9,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":11,"column":0},"generated":{"line":11,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":12,"column":0},"generated":{"line":12,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":13,"column":0},"generated":{"line":13,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":14,"column":0},"generated":{"line":14,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":15,"column":0},"generated":{"line":15,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":16,"column":0},"generated":{"line":16,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":17,"column":0},"generated":{"line":17,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":18,"column":0},"generated":{"line":18,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":19,"column":0},"generated":{"line":19,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":20,"column":0},"generated":{"line":20,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":21,"column":0},"generated":{"line":21,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":22,"column":0},"generated":{"line":22,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":23,"column":0},"generated":{"line":23,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":24,"column":0},"generated":{"line":24,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":25,"column":0},"generated":{"line":25,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":26,"column":0},"generated":{"line":26,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":27,"column":0},"generated":{"line":27,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":28,"column":0},"generated":{"line":28,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":29,"column":0},"generated":{"line":29,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":30,"column":0},"generated":{"line":30,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":31,"column":0},"generated":{"line":31,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":32,"column":0},"generated":{"line":32,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":33,"column":0},"generated":{"line":33,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":34,"column":0},"generated":{"line":34,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":35,"column":0},"generated":{"line":35,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":36,"column":0},"generated":{"line":36,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":37,"column":0},"generated":{"line":37,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":38,"column":0},"generated":{"line":38,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":39,"column":0},"generated":{"line":39,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":40,"column":0},"generated":{"line":40,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":41,"column":0},"generated":{"line":41,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":42,"column":0},"generated":{"line":42,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":43,"column":0},"generated":{"line":43,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":44,"column":0},"generated":{"line":44,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":45,"column":0},"generated":{"line":45,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":46,"column":0},"generated":{"line":46,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":47,"column":0},"generated":{"line":47,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":48,"column":0},"generated":{"line":48,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":49,"column":0},"generated":{"line":49,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":50,"column":0},"generated":{"line":50,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":51,"column":0},"generated":{"line":51,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":52,"column":0},"generated":{"line":52,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":53,"column":0},"generated":{"line":53,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":54,"column":0},"generated":{"line":54,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":55,"column":0},"generated":{"line":55,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":56,"column":0},"generated":{"line":56,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":57,"column":0},"generated":{"line":57,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":58,"column":0},"generated":{"line":58,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":59,"column":0},"generated":{"line":59,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":60,"column":0},"generated":{"line":60,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":61,"column":0},"generated":{"line":61,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":62,"column":0},"generated":{"line":62,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":63,"column":0},"generated":{"line":63,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":64,"column":0},"generated":{"line":64,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":65,"column":0},"generated":{"line":65,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":66,"column":0},"generated":{"line":66,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":67,"column":0},"generated":{"line":67,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":68,"column":0},"generated":{"line":68,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":69,"column":0},"generated":{"line":69,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":70,"column":0},"generated":{"line":70,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":71,"column":0},"generated":{"line":71,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":72,"column":0},"generated":{"line":72,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":73,"column":0},"generated":{"line":73,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":74,"column":0},"generated":{"line":74,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":75,"column":0},"generated":{"line":75,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":76,"column":0},"generated":{"line":76,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":77,"column":0},"generated":{"line":77,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":78,"column":0},"generated":{"line":78,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":79,"column":0},"generated":{"line":79,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":80,"column":0},"generated":{"line":80,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":81,"column":0},"generated":{"line":81,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":82,"column":0},"generated":{"line":82,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":83,"column":0},"generated":{"line":83,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":84,"column":0},"generated":{"line":84,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":85,"column":0},"generated":{"line":85,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":86,"column":0},"generated":{"line":86,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":87,"column":0},"generated":{"line":87,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":88,"column":0},"generated":{"line":88,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":89,"column":0},"generated":{"line":89,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":90,"column":0},"generated":{"line":90,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":91,"column":0},"generated":{"line":91,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":92,"column":0},"generated":{"line":92,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":93,"column":0},"generated":{"line":93,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":94,"column":0},"generated":{"line":94,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":95,"column":0},"generated":{"line":95,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":96,"column":0},"generated":{"line":96,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":97,"column":0},"generated":{"line":97,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":98,"column":0},"generated":{"line":98,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":99,"column":0},"generated":{"line":99,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":100,"column":0},"generated":{"line":100,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":101,"column":0},"generated":{"line":101,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":102,"column":0},"generated":{"line":102,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":103,"column":0},"generated":{"line":103,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":104,"column":0},"generated":{"line":104,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":105,"column":0},"generated":{"line":105,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":106,"column":0},"generated":{"line":106,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":107,"column":0},"generated":{"line":107,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":108,"column":0},"generated":{"line":108,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":109,"column":0},"generated":{"line":109,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":110,"column":0},"generated":{"line":110,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":111,"column":0},"generated":{"line":111,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":112,"column":0},"generated":{"line":112,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":113,"column":0},"generated":{"line":113,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":114,"column":0},"generated":{"line":114,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":115,"column":0},"generated":{"line":115,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":116,"column":0},"generated":{"line":116,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":117,"column":0},"generated":{"line":117,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":118,"column":0},"generated":{"line":118,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/eddsa/index.js","original":{"line":119,"column":0},"generated":{"line":119,"column":0}}],"sources":{"node_modules/elliptic/lib/elliptic/eddsa/index.js":"'use strict';\n\nvar hash = require('hash.js');\nvar elliptic = require('../../elliptic');\nvar utils = elliptic.utils;\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n  assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n  if (!(this instanceof EDDSA))\n    return new EDDSA(curve);\n\n  var curve = elliptic.curves[curve].curve;\n  this.curve = curve;\n  this.g = curve.g;\n  this.g.precompute(curve.n.bitLength() + 1);\n\n  this.pointClass = curve.point().constructor;\n  this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n  this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n  message = parseBytes(message);\n  var key = this.keyFromSecret(secret);\n  var r = this.hashInt(key.messagePrefix(), message);\n  var R = this.g.mul(r);\n  var Rencoded = this.encodePoint(R);\n  var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n               .mul(key.priv());\n  var S = r.add(s_).umod(this.curve.n);\n  return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n  message = parseBytes(message);\n  sig = this.makeSignature(sig);\n  var key = this.keyFromPublic(pub);\n  var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n  var SG = this.g.mul(sig.S());\n  var RplusAh = sig.R().add(key.pub().mul(h));\n  return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n  var hash = this.hash();\n  for (var i = 0; i < arguments.length; i++)\n    hash.update(arguments[i]);\n  return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n  return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n  return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n  if (sig instanceof Signature)\n    return sig;\n  return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n  var enc = point.getY().toArray('le', this.encodingLength);\n  enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n  return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n  bytes = utils.parseBytes(bytes);\n\n  var lastIx = bytes.length - 1;\n  var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n  var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n  var y = utils.intFromLE(normed);\n  return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n  return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n  return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n  return val instanceof this.pointClass;\n};\n"},"lineCount":119}},"hash":"e8373a025d8df663779d49ed2818ee08","cacheData":{"env":{}}}