diff options
-rw-r--r-- | src/bls.cpp | 4 | ||||
-rw-r--r-- | test/bls_test.cpp | 24 |
2 files changed, 23 insertions, 5 deletions
diff --git a/src/bls.cpp b/src/bls.cpp index a37834c..eb441fe 100644 --- a/src/bls.cpp +++ b/src/bls.cpp @@ -239,7 +239,7 @@ bool Id::isZero() const void Id::set(const uint64_t *p) { - self_->v.setArray(p, keySize); + self_->v.setArrayMask(p, keySize); } Sign::Sign() @@ -423,7 +423,7 @@ void SecretKey::init() void SecretKey::set(const uint64_t *p) { - self_->s.setArray(p, keySize); + self_->s.setArrayMask(p, keySize); } void SecretKey::getPublicKey(PublicKey& pub) const diff --git a/test/bls_test.cpp b/test/bls_test.cpp index 9d3a7cb..013b242 100644 --- a/test/bls_test.cpp +++ b/test/bls_test.cpp @@ -49,13 +49,31 @@ CYBOZU_TEST_AUTO(id) } { /* - exception if the value >= r + mask value to be less than r if the value >= r */ - const uint64_t id1[] = { 0, 0, 0, uint64_t(-1) }; - CYBOZU_TEST_EXCEPTION(id.set(id1), std::exception); + const uint64_t tbl1[] = { 0, 0, 0, uint64_t(-1) }; + id.set(tbl1); + const uint64_t tbl2[] = { 0, 0, 0, uint64_t(-1) & ((uint64_t(1) << 63) - 1) }; + bls::Id id2; + id2.set(tbl2); + CYBOZU_TEST_EQUAL(id, id2); } } +CYBOZU_TEST_AUTO(SecretKey_set) +{ + /* + mask value to be less than r if the value >= r + */ + bls::SecretKey sec1, sec2; + const uint64_t tbl1[] = { 0, 0, 0, uint64_t(-1) }; + sec1.set(tbl1); + const uint64_t tbl2[] = { 0, 0, 0, uint64_t(-1) & ((uint64_t(1) << 63) - 1) }; + bls::Id expected; + sec2.set(tbl2); + CYBOZU_TEST_EQUAL(sec1, sec2); +} + CYBOZU_TEST_AUTO(k_of_n) { const std::string m = "abc"; |