package nizk import ( "testing" . "kesim.org/seal/common" ) func TestStatement(t *testing.T) { id := Curve.RandomScalar() b1 := NewBit(id, true) b2 := NewBit(id, false) if !b1.Commitment.Verify(id, b1.Proof) { t.Fatal("Could not verify st1 with c1, plus=true case") } if !b2.Commitment.Verify(id, b2.Proof) { t.Fatal("Could not verify st2 with c2, plus=false case") } // Use the wrong proof if b2.Commitment.Verify(id, b1.Proof) { t.Fatal("Verify with wrong proof should have failed!") } // Use wrong id x := Curve.RandomScalar() if b1.Commitment.Verify(x, b1.Proof) || b2.Commitment.Verify(x, b2.Proof) { t.Fatal("Verify with wrong id should have failed!") } } func TestStatementFromScalar(t *testing.T) { var α, β, id = Curve.RandomScalar(), Curve.RandomScalar(), Curve.RandomScalar() b1 := NewBitFromScalars(id, true, α, β) b2 := NewBitFromScalars(id, false, α, β) if !b1.Commitment.Verify(id, b1.Proof) { t.Fatal("Could not verify st1 with c1, plus=true case") } if !b2.Commitment.Verify(id, b2.Proof) { t.Fatal("Could not verify st2 with c2, plus=false case") } // Use the wrong proof if b2.Commitment.Verify(id, b1.Proof) { t.Fatal("Verify with wrong proof should have failed!") } // Use the wrong Id x := Curve.RandomScalar() if b1.Commitment.Verify(x, b2.Proof) || b2.Commitment.Verify(x, b2.Proof) { t.Fatal("Verify with wrong id should have failed!") } }