220b6a71f372bac173b5496c22ed7031d1e8480f58f3405ac3c2cb9df08404c7.json raw

   1  {"ast":null,"code":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.verifyDLEQProof_reblind = exports.verifyDLEQProof = void 0;\nconst index_js_1 = require(\"../common/index.js\");\nconst utils_1 = require(\"@noble/curves/abstract/utils\");\nconst secp256k1_1 = require(\"@noble/curves/secp256k1\");\nconst utils_js_1 = require(\"../util/utils.js\");\nfunction arraysEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) return false;\n  for (let i = 0; i < arr1.length; i++) {\n    if (arr1[i] !== arr2[i]) return false;\n  }\n  return true;\n}\nconst verifyDLEQProof = (dleq, B_, C_, A) => {\n  const sG = secp256k1_1.secp256k1.ProjectivePoint.fromPrivateKey((0, utils_1.bytesToHex)(dleq.s));\n  const eA = A.multiply((0, utils_js_1.bytesToNumber)(dleq.e));\n  const sB_ = B_.multiply((0, utils_js_1.bytesToNumber)(dleq.s));\n  const eC_ = C_.multiply((0, utils_js_1.bytesToNumber)(dleq.e));\n  const R_1 = sG.subtract(eA); // R1 = sG - eA\n  const R_2 = sB_.subtract(eC_); // R2 = sB' - eC'\n  const hash = (0, index_js_1.hash_e)([R_1, R_2, A, C_]); // e == hash(R1, R2, A, C')\n  return arraysEqual(hash, dleq.e);\n};\nexports.verifyDLEQProof = verifyDLEQProof;\nconst verifyDLEQProof_reblind = (secret,\n// secret\ndleq, C,\n// unblinded e-cash signature point\nA // mint public key point\n) => {\n  if (dleq.r === undefined) throw new Error('verifyDLEQProof_reblind: Undefined blinding factor');\n  const Y = (0, index_js_1.hashToCurve)(secret);\n  const C_ = C.add(A.multiply(dleq.r)); // Re-blind the e-cash signature\n  const bG = secp256k1_1.secp256k1.ProjectivePoint.fromPrivateKey(dleq.r);\n  const B_ = Y.add(bG); // Re-blind the message\n  return (0, exports.verifyDLEQProof)(dleq, B_, C_, A);\n};\nexports.verifyDLEQProof_reblind = verifyDLEQProof_reblind;\n//# sourceMappingURL=NUT12.js.map","map":null,"metadata":{},"sourceType":"script","externalDependencies":[]}