From f84c000e102ed889a607a63819e305798359418a Mon Sep 17 00:00:00 2001 From: MITSUNARI Shigeo Date: Wed, 14 Jun 2017 06:55:51 +0900 Subject: add blsDHKeyExchange --- go/bls/bls.go | 6 ++++++ go/bls/bls_test.go | 14 ++++++++++++++ 2 files changed, 20 insertions(+) (limited to 'go') diff --git a/go/bls/bls.go b/go/bls/bls.go index 2812697..61a96f5 100644 --- a/go/bls/bls.go +++ b/go/bls/bls.go @@ -288,3 +288,9 @@ func (sign *Sign) Verify(pub *PublicKey, m string) bool { func (sign *Sign) VerifyPop(pub *PublicKey) bool { return C.blsVerifyPop(sign.getPointer(), pub.getPointer()) == 1 } + +// DHKeyExchange -- +func DHKeyExchange(sec *SecretKey, pub *PublicKey) (out PublicKey) { + C.blsDHKeyExchange(out.getPointer(), sec.getPointer(), pub.getPointer()) + return out +} diff --git a/go/bls/bls_test.go b/go/bls/bls_test.go index 31f7f8a..998dd1f 100644 --- a/go/bls/bls_test.go +++ b/go/bls/bls_test.go @@ -305,6 +305,19 @@ func testOrder(t *testing.T, c int) { } } +func testDHKeyExchange(t *testing.T) { + var sec1, sec2 SecretKey + sec1.SetByCSPRNG() + sec2.SetByCSPRNG() + pub1 := sec1.GetPublicKey() + pub2 := sec2.GetPublicKey() + out1 := DHKeyExchange(&sec1, pub2) + out2 := DHKeyExchange(&sec2, pub1) + if !out1.IsEqual(&out2) { + t.Errorf("DH key is not equal") + } +} + func test(t *testing.T, c int) { err := Init(c) if err != nil { @@ -321,6 +334,7 @@ func test(t *testing.T, c int) { testData(t) testStringConversion(t) testOrder(t, c) + testDHKeyExchange(t) } func TestMain(t *testing.T) { -- cgit v1.2.3