mirror of
https://github.com/arnaucube/snarkjs.git
synced 2026-02-28 05:56:44 +01:00
Fix pairing calc
This commit is contained in:
@@ -145,54 +145,30 @@ describe("F12 testing", () => {
|
||||
|
||||
describe("Pairing", () => {
|
||||
it("Should match pairing", () => {
|
||||
const bn128 = new BN128();
|
||||
for (let i=0; i<1; i++) {
|
||||
const bn128 = new BN128();
|
||||
|
||||
const g1a = bn128.G1.mulEscalar(bn128.G1.g, 25);
|
||||
const g2a = bn128.G2.mulEscalar(bn128.G2.g, 30);
|
||||
|
||||
const g1b = bn128.G1.mulEscalar(bn128.G1.g, 30);
|
||||
const g2b = bn128.G2.mulEscalar(bn128.G2.g, 25);
|
||||
|
||||
|
||||
const g1a = bn128.G1.mulEscalar(bn128.G1.g, 25);
|
||||
const g2a = bn128.G2.mulEscalar(bn128.G2.g, 30);
|
||||
const pre1a = bn128.precomputeG1(g1a);
|
||||
const pre2a = bn128.precomputeG2(g2a);
|
||||
const pre1b = bn128.precomputeG1(g1b);
|
||||
const pre2b = bn128.precomputeG2(g2b);
|
||||
|
||||
const g1b = bn128.G1.mulEscalar(bn128.G1.g, 30);
|
||||
const g2b = bn128.G2.mulEscalar(bn128.G2.g, 25);
|
||||
const r1 = bn128.millerLoop(pre1a, pre2a);
|
||||
const r2 = bn128.millerLoop(pre1b, pre2b);
|
||||
|
||||
const rbe = bn128.F12.mul(r1, bn128.F12.inverse(r2));
|
||||
|
||||
const pre1a = bn128.precomputeG1(g1a);
|
||||
const pre2a = bn128.precomputeG2(g2a);
|
||||
const pre1b = bn128.precomputeG1(g1b);
|
||||
const pre2b = bn128.precomputeG2(g2b);
|
||||
const res = bn128.finalExponentiation(rbe);
|
||||
|
||||
const r1 = bn128.millerLoop(pre1a, pre2a);
|
||||
const r2 = bn128.millerLoop(pre1b, pre2b);
|
||||
|
||||
const rbe = bn128.F12.mul(r1, bn128.F12.inverse(r2));
|
||||
|
||||
const res = bn128.finalExponentiation(rbe);
|
||||
|
||||
assert(bn128.F12.equals(res, bn128.F12.one));
|
||||
assert(bn128.F12.equals(res, bn128.F12.one));
|
||||
}
|
||||
}).timeout(10000);
|
||||
|
||||
it("Should match pairing 2", () => {
|
||||
const bn128 = new BN128();
|
||||
|
||||
|
||||
const g1a = bn128.G1.mulEscalar(bn128.G1.g, 25);
|
||||
const g2a = bn128.G2.mulEscalar(bn128.G2.g, 30);
|
||||
|
||||
const g1b = bn128.G1.mulEscalar(bn128.G1.g, 30);
|
||||
const g2b = bn128.G2.mulEscalar(bn128.G2.g, 25);
|
||||
|
||||
|
||||
const pre1a = bn128.precomputeG1(g1a);
|
||||
const pre2a = bn128.precomputeG2(g2a);
|
||||
const pre1b = bn128.precomputeG1(g1b);
|
||||
const pre2b = bn128.precomputeG2(g2b);
|
||||
|
||||
const r1 = bn128.millerLoop(pre1a, pre2a);
|
||||
const r2 = bn128.millerLoop(pre1b, pre2b);
|
||||
|
||||
const rbe = bn128.F12.mul(r1, bn128.F12.inverse(r2));
|
||||
|
||||
const res = bn128.finalExponentiation(rbe);
|
||||
|
||||
assert(bn128.F12.equals(res, bn128.F12.one));
|
||||
}).timeout(10000);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user