aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2017-07-07 18:15:45 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2017-07-07 18:15:45 +0800
commite9012b679e31306f85e87d9de3ae1320a85e0492 (patch)
tree87e139981e2d1c667f0fe5a87a23f0687df444e3
parentd1f1c8081c37eb9890c4e2952681f1d73745fbea (diff)
downloaddexon-bls-e9012b679e31306f85e87d9de3ae1320a85e0492.tar
dexon-bls-e9012b679e31306f85e87d9de3ae1320a85e0492.tar.gz
dexon-bls-e9012b679e31306f85e87d9de3ae1320a85e0492.tar.bz2
dexon-bls-e9012b679e31306f85e87d9de3ae1320a85e0492.tar.lz
dexon-bls-e9012b679e31306f85e87d9de3ae1320a85e0492.tar.xz
dexon-bls-e9012b679e31306f85e87d9de3ae1320a85e0492.tar.zst
dexon-bls-e9012b679e31306f85e87d9de3ae1320a85e0492.zip
move mclBn_* to mcl
-rw-r--r--include/bls/bls.h19
-rw-r--r--src/bls_c.cpp82
2 files changed, 0 insertions, 101 deletions
diff --git a/include/bls/bls.h b/include/bls/bls.h
index a56120c..f063ca6 100644
--- a/include/bls/bls.h
+++ b/include/bls/bls.h
@@ -121,25 +121,6 @@ BLS_DLL_API void blsSign(blsSignature *sig, const blsSecretKey *sec, const void
BLS_DLL_API int blsVerify(const blsSignature *sig, const blsPublicKey *pub, const void *m, size_t size);
BLS_DLL_API int blsVerifyPop(const blsSignature *sig, const blsPublicKey *pub);
-/*
- Lagrange interpolation
- recover out = y(0) by { (xVec[i], yVec[i]) }
- return 0 if success else -1
- @note k >= 2, xVec[i] != 0, xVec[i] != xVec[j] for i != j
-*/
-BLS_DLL_API int mclBn_FrLagrangeInterpolation(mclBnFr *out, const mclBnFr *xVec, const mclBnFr *yVec, size_t k);
-BLS_DLL_API int mclBn_G1LagrangeInterpolation(mclBnG1 *out, const mclBnFr *xVec, const mclBnG1 *yVec, size_t k);
-BLS_DLL_API int mclBn_G2LagrangeInterpolation(mclBnG2 *out, const mclBnFr *xVec, const mclBnG2 *yVec, size_t k);
-
-/*
- evaluate polynomial
- out = f(x) = c[0] + c[1] * x + c[2] * x^2 + ... + c[cSize - 1] * x^(cSize - 1)
- @note cSize >= 2
-*/
-BLS_DLL_API int mclBn_FrEvaluatePolynomial(mclBnFr *out, const mclBnFr *cVec, size_t cSize, const mclBnFr *x);
-BLS_DLL_API int mclBn_G1EvaluatePolynomial(mclBnG1 *out, const mclBnG1 *cVec, size_t cSize, const mclBnFr *x);
-BLS_DLL_API int mclBn_G2EvaluatePolynomial(mclBnG2 *out, const mclBnG2 *cVec, size_t cSize, const mclBnFr *x);
-
//////////////////////////////////////////////////////////////////////////
// the following apis will be removed
diff --git a/src/bls_c.cpp b/src/bls_c.cpp
index df6eda3..4ce038e 100644
--- a/src/bls_c.cpp
+++ b/src/bls_c.cpp
@@ -47,63 +47,6 @@ static inline const G2 *cast(const blsPublicKey* x) { return (const G2 *)x; }
static inline const mclBnG1 *cast(const G1* x) { return (const mclBnG1*)x; }
static inline const mclBnG2 *cast(const G2* x) { return (const mclBnG2*)x; }
-/*
- recover out = f(0) by { (x, y) | x = S[i], y = f(x) = vec[i] }
-*/
-template<class G, class F>
-int LagrangeInterpolation(G& out, const F *S, const G *vec, size_t k)
-{
- /*
- delta_{i,S}(0) = prod_{j != i} S[j] / (S[j] - S[i]) = a / b
- where a = prod S[j], b = S[i] * prod_{j != i} (S[j] - S[i])
- */
- if (k < 2) return -1;
- std::vector<F> delta(k);
- F a = S[0];
- for (size_t i = 1; i < k; i++) {
- a *= S[i];
- }
- if (a.isZero()) return -1;
- for (size_t i = 0; i < k; i++) {
- F b = S[i];
- for (size_t j = 0; j < k; j++) {
- if (j != i) {
- F v = S[j] - S[i];
- if (v.isZero()) return -1;
- b *= v;
- }
- }
- delta[i] = a / b;
- }
-
- /*
- f(0) = sum_i f(S[i]) delta_{i,S}(0)
- */
- G r, t;
- r.clear();
- for (size_t i = 0; i < delta.size(); i++) {
- G::mul(t, vec[i], delta[i]);
- r += t;
- }
- out = r;
- return 0;
-}
-
-/*
- out = f(x) = c[0] + c[1] * x + c[2] * x^2 + ... + c[cSize - 1] * x^(cSize - 1)
-*/
-template<class G, class T>
-int evalPoly(G& out, const G *c, size_t cSize, const T& x)
-{
- if (cSize < 2) return -1;
- G y = c[cSize - 1];
- for (int i = (int)cSize - 2; i >= 0; i--) {
- G::mul(y, y, x);
- G::add(y, y, c[i]);
- }
- out = y;
- return 0;
-}
/*
e(P1, Q1) == e(P2, Q2)
@@ -122,31 +65,6 @@ bool isEqualTwoPairings(const G1& P1, const Fp6* Q1coeff, const G1& P2, const G2
return e.isOne();
}
-int mclBn_FrLagrangeInterpolation(mclBnFr *out, const mclBnFr *xVec, const mclBnFr *yVec, size_t k)
-{
- return LagrangeInterpolation(*cast(out), cast(xVec), cast(yVec), k);
-}
-int mclBn_G1LagrangeInterpolation(mclBnG1 *out, const mclBnFr *xVec, const mclBnG1 *yVec, size_t k)
-{
- return LagrangeInterpolation(*cast(out), cast(xVec), cast(yVec), k);
-}
-int mclBn_G2LagrangeInterpolation(mclBnG2 *out, const mclBnFr *xVec, const mclBnG2 *yVec, size_t k)
-{
- return LagrangeInterpolation(*cast(out), cast(xVec), cast(yVec), k);
-}
-int mclBn_FrEvaluatePolynomial(mclBnFr *out, const mclBnFr *cVec, size_t cSize, const mclBnFr *x)
-{
- return evalPoly(*cast(out), cast(cVec), cSize, *cast(x));
-}
-int mclBn_G1EvaluatePolynomial(mclBnG1 *out, const mclBnG1 *cVec, size_t cSize, const mclBnFr *x)
-{
- return evalPoly(*cast(out), cast(cVec), cSize, *cast(x));
-}
-int mclBn_G2EvaluatePolynomial(mclBnG2 *out, const mclBnG2 *cVec, size_t cSize, const mclBnFr *x)
-{
- return evalPoly(*cast(out), cast(cVec), cSize, *cast(x));
-}
-
size_t checkAndCopy(char *buf, size_t maxBufSize, const std::string& s)
{
if (s.size() > maxBufSize + 1) {