1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package ldp

import (
	"fmt"
	fr "github.com/consensys/gnark-crypto/ecc/bn254/fr"
	"github.com/consensys/gnark/test"
	"math/big"
	"testing"
)

func TestLDP(t *testing.T) {
	assert := test.NewAssert(t)
	//c := twistededwards.GetEdwardsCurve()
	//rho := elgamal.GenScalar(&c.Order)

	var rho fr.Element
	_, err := rho.SetRandom()
	assert.NoError(err)
	c0, c1 := GetCoinsFromRho(rho)

	id := big.NewInt(int64(1))

	delta, _, _ := RandomResponse(rho, id)

	//fmt.Println("delta = ", delta.Text(2))

	if c0 == 0 {
		assert.Equal(id, &delta)
		fmt.Println("c0 == 0, print ID == ", delta)
	} else {
		if c1 == 0 {
			fmt.Println("c0 == 1, c1 == 0, print 1")
		} else {
			fmt.Println("c0 == 1, c1 == 1, print 0")
		}
	}

	// Output:
	// Decryption succeeded: 1
}