From 8d9d3dc516a0c286baea1555c0af20b8db06740d Mon Sep 17 00:00:00 2001 From: MITSUNARI Shigeo Date: Tue, 6 Sep 2016 22:11:59 +0900 Subject: add recover/set for C api --- include/bls.hpp | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/bls.hpp b/include/bls.hpp index cf251d5..7745f28 100644 --- a/include/bls.hpp +++ b/include/bls.hpp @@ -58,10 +58,15 @@ typedef std::vector IdVec; class Id { impl::Id *self_; - template - friend void LagrangeInterpolation(G& r, const T& vec, const IdVec& idVec); friend class PublicKey; friend class SecretKey; + friend class Sign; + template + friend void LagrangeInterpolation(G& r, const V1& vec, const V2& S); + template + friend struct Wrap; + template + friend struct WrapPointer; public: Id(unsigned int id = 0); ~Id(); @@ -84,8 +89,8 @@ public: */ class SecretKey { impl::SecretKey *self_; - template - friend void LagrangeInterpolation(G& r, const T& vec, const IdVec& idVec); + template + friend void LagrangeInterpolation(G& r, const V1& vec, const V2& S); template friend struct Wrap; template @@ -147,8 +152,8 @@ class PublicKey { impl::PublicKey *self_; friend class SecretKey; friend class Sign; - template - friend void LagrangeInterpolation(G& r, const T& vec, const IdVec& idVec); + template + friend void LagrangeInterpolation(G& r, const V1& vec, const V2& S); template friend struct Wrap; template @@ -174,6 +179,10 @@ public: add public key */ void add(const PublicKey& rhs); + + // the following methods are for C api + void set(const PublicKey *const *mpk, size_t k, const Id& id); + void recover(const PublicKey *const *pubVec, const Id *const *idVec, size_t n); }; /* @@ -183,8 +192,12 @@ class Sign { impl::Sign *self_; friend class PublicKey; friend class SecretKey; - template - friend void LagrangeInterpolation(G& r, const T& vec, const IdVec& idVec); + template + friend void LagrangeInterpolation(G& r, const V1& vec, const V2& S); + template + friend struct Wrap; + template + friend struct WrapPointer; public: Sign(); ~Sign(); @@ -207,6 +220,9 @@ public: add signature */ void add(const Sign& rhs); + + // the following methods are for C api + void recover(const Sign* const *signVec, const Id *const *idVec, size_t n); }; /* -- cgit v1.2.3