You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.9 KiB

  1. // signer public parameters
  2. let rx, ry, qx, qy;
  3. // user parameters
  4. let m, mBlinded, uA, uB, uFx, uFy, sigS, sigFx, sigFy;
  5. function newRequest() {
  6. m = document.getElementById("msg").value;
  7. axios.get('/request')
  8. .then(function (res) {
  9. console.log("/request res:", res.data);
  10. rx = res.data.signerR.x;
  11. ry = res.data.signerR.y;
  12. qx = res.data.signerQ.x;
  13. qy = res.data.signerQ.y;
  14. document.getElementById("signerRx").innerHTML = "signerR.x: " + rx;
  15. document.getElementById("signerRy").innerHTML = "signerR.y: " + ry;
  16. document.getElementById("signerQx").innerHTML = "signerQ.x: " + qx;
  17. document.getElementById("signerQy").innerHTML = "signerQ.y: " + qy;
  18. console.log("blind msg");
  19. let blindRes = wasmBlind(m, rx, ry);
  20. console.log("blindRes:", blindRes);
  21. mBlinded = blindRes.mBlinded;
  22. uA = blindRes.uA;
  23. uB = blindRes.uB;
  24. uFx = blindRes.uFx;
  25. uFy = blindRes.uFy;
  26. })
  27. .catch(function (error) {
  28. console.error(error);
  29. alert(error);
  30. });
  31. }
  32. function askBlindSign() {
  33. console.log("askBlindSign");
  34. let data = {
  35. m: mBlinded,
  36. r: {x:rx, y:ry}
  37. };
  38. axios.post('/blindsign', data)
  39. .then(function (res) {
  40. console.log("/blindSign res:", res.data);
  41. document.getElementById("sBlind").innerHTML = "sBlind: " + res.data.sBlind;
  42. let unblindRes = wasmUnblind(res.data.sBlind, m, uA, uB, uFx, uFy);
  43. console.log("unblind", unblindRes);
  44. sigS = unblindRes.s;
  45. sigFx = unblindRes.fx;
  46. sigFy = unblindRes.fy;
  47. document.getElementById("sigS").innerHTML = "s: " + sigS;
  48. document.getElementById("sigFx").innerHTML = "f.x: " + sigFx;
  49. document.getElementById("sigFy").innerHTML = "f.y: " + sigFy;
  50. })
  51. .catch(function (error) {
  52. console.error(error);
  53. alert(error);
  54. });
  55. }
  56. function verify() {
  57. let verified = wasmVerify(m, sigS, sigFx, sigFy, qx, qy);
  58. console.log("verify", verified);
  59. document.getElementById("verified").innerHTML = "signature verification, verified: " + verified;
  60. }