aboutsummaryrefslogtreecommitdiffstats
path: root/test/bls_c_test.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/bls_c_test.hpp')
-rw-r--r--test/bls_c_test.hpp31
1 files changed, 31 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();
}
}