diff options
author | Özgür Kesim <oec@codeblau.de> | 2024-11-21 17:13:47 +0100 |
---|---|---|
committer | Özgür Kesim <oec@codeblau.de> | 2024-11-21 17:13:47 +0100 |
commit | 0ada8c47427bfe604024d383ed7a250b04c82fee (patch) | |
tree | 4bc5e6432512a8060308413d303b675b0658bd1b /stage1_test.go | |
parent | 32cee46e39527a09504615b822cc61969c46184d (diff) |
Diffstat (limited to 'stage1_test.go')
-rw-r--r-- | stage1_test.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/stage1_test.go b/stage1_test.go new file mode 100644 index 0000000..0df915a --- /dev/null +++ b/stage1_test.go @@ -0,0 +1,56 @@ +package seal + +import ( + "testing" + + . "kesim.org/seal/common" +) + +func TestStage1Simple(t *testing.T) { + id := Curve.RandomScalar() + b1 := NewBit(id, true) + b2 := NewBit(id, false) + + c1 := b1.StageCommit() + c2 := b2.StageCommit() + r1, pr1 := b1.RevealStage1(c1.X, c2.X) + r2, pr2 := b2.RevealStage1(c2.X) + if !b1.Commitment.VerifyStage1(c1, r1, pr1) { + t.Fatal("Could not verify st1 with c1 and pr1, plus=true case") + } + if !b2.Commitment.VerifyStage1(c2, r2, pr2) { + t.Fatal("Could not verify st2 with c2 and pr2, plus=false case") + } + // Wrong proof test + if b1.Commitment.VerifyStage1(c1, r1, pr2) { + t.Fatal("Shouldn't be able to verify c1 with pr2") + } +} + +func TestStage1FromScalars(t *testing.T) { + var id, α, β, x, r *Scalar + for _, s := range []**Scalar{&id, &α, &β, &x, &r} { + *s = Curve.RandomScalar() + } + + b1 := NewBitFromScalars(id, true, α, β) + b2 := NewBitFromScalars(id, false, α, β) + + c1 := b1.StageFromScalars(r, x) + c2 := b2.StageFromScalars(x, r) + r1, pr1 := b1.RevealStage1(c1.X) + r2, pr2 := b2.RevealStage1(c2.X) + if !b1.Commitment.VerifyStage1(c1, r1, pr1) { + t.Fatal("Could not verify st1 with c1 and pr1, plus=true case") + } + if !b2.Commitment.VerifyStage1(c2, r2, pr2) { + t.Fatal("Could not verify st2 with c2 and pr2, plus=false case") + } + // Wrong proof test + if b2.Commitment.VerifyStage1(c1, r1, pr2) || + b1.Commitment.VerifyStage1(c2, r2, pr2) || + b2.Commitment.VerifyStage1(c1, r1, pr2) || + b2.Commitment.VerifyStage1(c2, r2, pr1) { + t.Fatal("Shouldn't be able to verify bc_i with c_j or pr_j") + } +} |