diff --git a/rln/rln.go b/rln/rln.go index bc5d617..8ce4c73 100644 --- a/rln/rln.go +++ b/rln/rln.go @@ -17,7 +17,12 @@ func New(depth int, parameters []byte) *RLN { r := &RLN{} buf := toBuffer(parameters) - C.new_circuit_from_params(C.ulong(depth), &buf, &r.ptr) + + size := int(unsafe.Sizeof(buf)) + in := (*C.Buffer)(C.malloc(C.size_t(size))) + *in = buf + + C.new_circuit_from_params(C.ulong(depth), in, &r.ptr) return r } diff --git a/rln/rln_test.go b/rln/rln_test.go index be1cd0e..2cb3052 100644 --- a/rln/rln_test.go +++ b/rln/rln_test.go @@ -1,10 +1,19 @@ package rln import ( + "io/ioutil" "testing" ) -func TestHash(t *testing.T) { - rln := New(0, []byte{}) - rln.Hash([]byte{1, 2, 3}) +func TestNew(t *testing.T) { + params, err := ioutil.ReadFile("./testdata/parameters.key") + if err != nil { + t.Fatal(err) + } + + rln := New(32, params) + + if rln.ptr == nil { + t.Fatal("pointer not initialized.") + } } diff --git a/rln/testdata/parameters.key b/rln/testdata/parameters.key new file mode 100644 index 0000000..8691479 Binary files /dev/null and b/rln/testdata/parameters.key differ