diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2016-08-11 11:10:27 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2016-08-11 11:10:27 +0800 |
commit | 0ed60fb7254d28bc682feb3150ea1e3df79b2b77 (patch) | |
tree | 1b54a1ece9581bbfa2c7fee2a4135b91d90c6c42 /src | |
parent | 6293942d3896de58eacf8282bf6c055bedf59a63 (diff) | |
download | dexon-bls-0ed60fb7254d28bc682feb3150ea1e3df79b2b77.tar.gz dexon-bls-0ed60fb7254d28bc682feb3150ea1e3df79b2b77.tar.zst dexon-bls-0ed60fb7254d28bc682feb3150ea1e3df79b2b77.zip |
add PublicKey::recover
Diffstat (limited to 'src')
-rw-r--r-- | src/bls.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bls.cpp b/src/bls.cpp index 8c6ff4a..8577c95 100644 --- a/src/bls.cpp +++ b/src/bls.cpp @@ -152,6 +152,7 @@ struct PublicKey { BN::pairing(e2, sQ, Hm); // e(sQ, Hm) return e1 == e2; } + const G2& get() const { return sQ; } }; struct PrivateKey { @@ -292,6 +293,14 @@ bool PublicKey::verify(const Sign& sign, const std::string& m) const return self_->verify(*sign.self_, m); } +void PublicKey::recover(const std::vector<PublicKey>& pubVec) +{ + G2 sQ; + LagrangeInterpolation(sQ, pubVec); + self_->sQ = sQ; + id_ = 0; +} + PrivateKey::PrivateKey() : self_(new impl::PrivateKey()) , id_(0) |