aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2019-02-20 10:22:26 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2019-02-20 10:22:26 +0800
commit72f03798cf9ab0c13798a4c5a703f511a818bd7d (patch)
tree6d1bea6cb99065f9fc6cd75bdc7667223c02c3a1
parent69b1c624b7bb70eebb16046f0d3aafbd50cf732c (diff)
downloaddexon-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
-rw-r--r--test/bls_c_test.hpp31
-rw-r--r--test/bls_test.hpp10
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);