From 9b6af7cbc8965c2f166f0979e1d64ec7369aaf9c Mon Sep 17 00:00:00 2001 From: MITSUNARI Shigeo Date: Wed, 7 Sep 2016 07:31:11 +0900 Subject: add SecretKey::setArray --- go/bls/bls.go | 8 ++++++++ go/main.go | 5 +++++ include/bls_if.h | 1 + src/bls_if.cpp | 4 ++++ 4 files changed, 18 insertions(+) diff --git a/go/bls/bls.go b/go/bls/bls.go index 0506c10..2f7e8ca 100644 --- a/go/bls/bls.go +++ b/go/bls/bls.go @@ -88,6 +88,14 @@ func (sec *SecretKey) SetStr(s string) error { return nil } +func (sec *SecretKey) SetArray(v []uint64) error { + if len(v) != 4 { + return fmt.Errorf("bad size", len(v)) + } + C.blsSecretKeySetArray(sec.self, (*C.uint64_t)(unsafe.Pointer(&v[0]))) + return nil +} + func (sec *SecretKey) Init() { C.blsSecretKeyInit(sec.self) } diff --git a/go/main.go b/go/main.go index 880e3ce..956b8b2 100644 --- a/go/main.go +++ b/go/main.go @@ -115,6 +115,11 @@ func main() { id2.SetStr(id.String()) fmt.Println("id2:", id2) } + { + sec := bls.NewSecretKey() + sec.SetArray([]uint64{1, 2, 3, 4}) + fmt.Println("sec=", sec) + } fmt.Println("create secret key") m := "this is a bls sample for go" diff --git a/include/bls_if.h b/include/bls_if.h index 84b5f34..9b9012d 100644 --- a/include/bls_if.h +++ b/include/bls_if.h @@ -40,6 +40,7 @@ void blsIdSet(blsId *id, const uint64_t *p); blsSecretKey* blsSecretKeyCreate(void); void blsSecretKeyDestroy(blsSecretKey *sec); void blsSecretKeyPut(const blsSecretKey *sec); +void blsSecretKeySetArray(blsSecretKey *sec, const uint64_t *p); int blsSecretKeySetStr(blsSecretKey *sec, const char *buf, size_t bufSize); size_t blsSecretKeyGetStr(const blsSecretKey *sec, char *buf, size_t maxBufSize); void blsSecretKeyAdd(blsSecretKey *sec, const blsSecretKey *rhs); diff --git a/src/bls_if.cpp b/src/bls_if.cpp index 6021c30..9054bb4 100644 --- a/src/bls_if.cpp +++ b/src/bls_if.cpp @@ -87,6 +87,10 @@ void blsSecretKeyPut(const blsSecretKey *sec) { std::cout << *(const bls::SecretKey*)sec << std::endl; } +void blsSecretKeySetArray(blsSecretKey *sec, const uint64_t *p) +{ + ((bls::SecretKey*)sec)->set(p); +} int blsSecretKeySetStr(blsSecretKey *sec, const char *buf, size_t bufSize) { -- cgit v1.2.3