diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2018-09-25 09:32:22 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2018-09-25 09:40:28 +0800 |
commit | e9c72f18ab9bc09923da739151821cc588c0d295 (patch) | |
tree | 8dfc3b93f219134d166c033a723b63338a62f67c /ffi/go | |
parent | 75f107fe3b59274e6be072320a1b59420b5447d8 (diff) | |
download | dexon-bls-e9c72f18ab9bc09923da739151821cc588c0d295.tar dexon-bls-e9c72f18ab9bc09923da739151821cc588c0d295.tar.gz dexon-bls-e9c72f18ab9bc09923da739151821cc588c0d295.tar.bz2 dexon-bls-e9c72f18ab9bc09923da739151821cc588c0d295.tar.lz dexon-bls-e9c72f18ab9bc09923da739151821cc588c0d295.tar.xz dexon-bls-e9c72f18ab9bc09923da739151821cc588c0d295.tar.zst dexon-bls-e9c72f18ab9bc09923da739151821cc588c0d295.zip |
add SerializeToHexStr and DeserializeHexStr
Diffstat (limited to 'ffi/go')
-rw-r--r-- | ffi/go/bls/bls.go | 30 | ||||
-rw-r--r-- | ffi/go/bls/bls_test.go | 36 | ||||
-rw-r--r-- | ffi/go/bls/mcl.go | 3 |
3 files changed, 69 insertions, 0 deletions
diff --git a/ffi/go/bls/bls.go b/ffi/go/bls/bls.go index 4d89baf..2448c3c 100644 --- a/ffi/go/bls/bls.go +++ b/ffi/go/bls/bls.go @@ -89,6 +89,16 @@ func (sec *SecretKey) SetLittleEndian(buf []byte) error { return sec.v.SetLittleEndian(buf) } +// SerializeToHexStr -- +func (sec *SecretKey) SerializeToHexStr() string { + return sec.v.GetString(IoSerializeHexStr) +} + +// DeserializeHexStr -- +func (sec *SecretKey) DeserializeHexStr(s string) error { + return sec.v.SetString(s, IoSerializeHexStr) +} + // GetHexString -- func (sec *SecretKey) GetHexString() string { return sec.v.GetString(16) @@ -184,6 +194,16 @@ func (pub *PublicKey) Deserialize(buf []byte) error { return pub.v.Deserialize(buf) } +// SerializeToHexStr -- +func (pub *PublicKey) SerializeToHexStr() string { + return pub.v.GetString(IoSerializeHexStr) +} + +// DeserializeHexStr -- +func (pub *PublicKey) DeserializeHexStr(s string) error { + return pub.v.SetString(s, IoSerializeHexStr) +} + // GetHexString -- func (pub *PublicKey) GetHexString() string { return pub.v.GetString(16) @@ -237,6 +257,16 @@ func (sign *Sign) Deserialize(buf []byte) error { return sign.v.Deserialize(buf) } +// SerializeToHexStr -- +func (sign *Sign) SerializeToHexStr() string { + return sign.v.GetString(IoSerializeHexStr) +} + +// DeserializeHexStr -- +func (sign *Sign) DeserializeHexStr(s string) error { + return sign.v.SetString(s, IoSerializeHexStr) +} + // GetHexString -- func (sign *Sign) GetHexString() string { return sign.v.GetString(16) diff --git a/ffi/go/bls/bls_test.go b/ffi/go/bls/bls_test.go index 400f90d..adc2806 100644 --- a/ffi/go/bls/bls_test.go +++ b/ffi/go/bls/bls_test.go @@ -280,6 +280,41 @@ func testData(t *testing.T) { } } +func testSerializeToHexStr(t *testing.T) { + t.Log("testSerializeToHexStr") + var sec1, sec2 SecretKey + sec1.SetByCSPRNG() + s := sec1.SerializeToHexStr() + err := sec2.DeserializeHexStr(s) + if err != nil { + t.Fatal(err) + } + if !sec1.IsEqual(&sec2) { + t.Error("SecretKey not same") + } + pub1 := sec1.GetPublicKey() + s = pub1.SerializeToHexStr() + var pub2 PublicKey + err = pub2.DeserializeHexStr(s) + if err != nil { + t.Fatal(err) + } + if !pub1.IsEqual(&pub2) { + t.Error("PublicKey not same") + } + m := "doremi" + sign1 := sec1.Sign(m) + s = sign1.SerializeToHexStr() + var sign2 Sign + err = sign2.DeserializeHexStr(s) + if err != nil { + t.Fatal(err) + } + if !sign1.IsEqual(&sign2) { + t.Error("Sign not same") + } +} + func testOrder(t *testing.T, c int) { var curve string var field string @@ -337,6 +372,7 @@ func test(t *testing.T, c int) { testStringConversion(t) testOrder(t, c) testDHKeyExchange(t) + testSerializeToHexStr(t) } func TestMain(t *testing.T) { diff --git a/ffi/go/bls/mcl.go b/ffi/go/bls/mcl.go index 713a8cc..9771201 100644 --- a/ffi/go/bls/mcl.go +++ b/ffi/go/bls/mcl.go @@ -20,6 +20,9 @@ const CurveFp382_2 = C.mclBn_CurveFp382_2 // BLS12_381 const BLS12_381 = C.MCL_BLS12_381 +// IoSerializeHexStr +const IoSerializeHexStr = C.MCLBN_IO_SERIALIZE_HEX_STR + // GetMaxOpUnitSize -- func GetMaxOpUnitSize() int { return int(C.MCLBN_FP_UNIT_SIZE) |