aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/bls_test.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/bls_test.cpp b/test/bls_test.cpp
index ebd3d6c..c81a41a 100644
--- a/test/bls_test.cpp
+++ b/test/bls_test.cpp
@@ -344,6 +344,27 @@ void addTest()
CYBOZU_TEST_ASSERT((sig1 + sig2).verify(pub1 + pub2, m));
}
+void aggregateTest()
+{
+ const size_t n = 10;
+ bls::SecretKey secs[n];
+ bls::PublicKey pubs[n], pub;
+ bls::Signature sigs[n], sig;
+ const std::string m = "abc";
+ for (size_t i = 0; i < n; i++) {
+ secs[i].init();
+ secs[i].getPublicKey(pubs[i]);
+ secs[i].sign(sigs[i], m);
+ }
+ pub = pubs[0];
+ sig = sigs[0];
+ for (size_t i = 1; i < n; i++) {
+ pub.add(pubs[i]);
+ sig.add(sigs[i]);
+ }
+ CYBOZU_TEST_ASSERT(sig.verify(pub, m));
+}
+
void dataTest()
{
const size_t size = bls::getOpUnitSize() * sizeof(uint64_t);
@@ -395,6 +416,7 @@ void testAll()
popTest();
addTest();
dataTest();
+ aggregateTest();
}
CYBOZU_TEST_AUTO(all)
{