diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2019-02-20 10:22:26 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2019-02-20 10:22:26 +0800 |
commit | 72f03798cf9ab0c13798a4c5a703f511a818bd7d (patch) | |
tree | 6d1bea6cb99065f9fc6cd75bdc7667223c02c3a1 /test | |
parent | 69b1c624b7bb70eebb16046f0d3aafbd50cf732c (diff) | |
download | dexon-bls-72f03798cf9ab0c13798a4c5a703f511a818bd7d.tar dexon-bls-72f03798cf9ab0c13798a4c5a703f511a818bd7d.tar.gz dexon-bls-72f03798cf9ab0c13798a4c5a703f511a818bd7d.tar.bz2 dexon-bls-72f03798cf9ab0c13798a4c5a703f511a818bd7d.tar.lz dexon-bls-72f03798cf9ab0c13798a4c5a703f511a818bd7d.tar.xz dexon-bls-72f03798cf9ab0c13798a4c5a703f511a818bd7d.tar.zst dexon-bls-72f03798cf9ab0c13798a4c5a703f511a818bd7d.zip |
add trivial test of Share/Recover for k = 1
Diffstat (limited to 'test')
-rw-r--r-- | test/bls_c_test.hpp | 31 | ||||
-rw-r--r-- | test/bls_test.hpp | 10 |
2 files changed, 41 insertions, 0 deletions
diff --git a/test/bls_c_test.hpp b/test/bls_c_test.hpp index 085c4bd..cb5c912 100644 --- a/test/bls_c_test.hpp +++ b/test/bls_c_test.hpp @@ -320,6 +320,36 @@ void blsAddSubTest() CYBOZU_TEST_ASSERT(blsSignatureIsEqual(&sig[2], &sig[0])); } +void blsTrivialShareTest() +{ + blsSecretKey sec1, sec2; + blsPublicKey pub1, pub2; + blsId id; + blsIdSetInt(&id, 123); + + blsSecretKeySetByCSPRNG(&sec1); + blsGetPublicKey(&pub1, &sec1); + int ret; + + memset(&sec2, 0, sizeof(sec2)); + ret = blsSecretKeyShare(&sec2, &sec1, 1, &id); + CYBOZU_TEST_EQUAL(ret, 0); + CYBOZU_TEST_ASSERT(blsSecretKeyIsEqual(&sec1, &sec2)); + memset(&sec2, 0, sizeof(sec2)); + ret = blsSecretKeyRecover(&sec2, &sec1, &id, 1); + CYBOZU_TEST_EQUAL(ret, 0); + CYBOZU_TEST_ASSERT(blsSecretKeyIsEqual(&sec1, &sec2)); + + memset(&pub2, 0, sizeof(pub2)); + ret = blsPublicKeyShare(&pub2, &pub1, 1, &id); + CYBOZU_TEST_EQUAL(ret, 0); + CYBOZU_TEST_ASSERT(blsPublicKeyIsEqual(&pub1, &pub2)); + memset(&pub2, 0, sizeof(pub2)); + ret = blsPublicKeyRecover(&pub2, &pub1, &id, 1); + CYBOZU_TEST_EQUAL(ret, 0); + CYBOZU_TEST_ASSERT(blsPublicKeyIsEqual(&pub1, &pub2)); +} + void blsBench() { blsSecretKey sec; @@ -377,6 +407,7 @@ CYBOZU_TEST_AUTO(all) blsSerializeTest(); if (tbl[i].curveType == MCL_BLS12_381) blsVerifyOrderTest(); blsAddSubTest(); + blsTrivialShareTest(); blsBench(); } } diff --git a/test/bls_test.hpp b/test/bls_test.hpp index ad91020..346fafe 100644 --- a/test/bls_test.hpp +++ b/test/bls_test.hpp @@ -259,6 +259,16 @@ void k_of_nTest() CYBOZU_TEST_ASSERT(sig != sig0); } } + // return same value if n = 1 + sigVec.resize(1); + idVec.resize(1); + sigVec[0] = allSigVec[0]; + idVec[0] = allIdVec[0]; + { + bls::Signature sig; + sig.recover(sigVec, idVec); + CYBOZU_TEST_EQUAL(sig, sigVec[0]); + } // share and recover publicKey { bls::PublicKeyVec pubVec(k); |