aboutsummaryrefslogtreecommitdiffstats
path: root/include/bls/bls.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/bls/bls.h')
-rw-r--r--include/bls/bls.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/bls/bls.h b/include/bls/bls.h
index b2b8604..71e3d02 100644
--- a/include/bls/bls.h
+++ b/include/bls/bls.h
@@ -124,6 +124,11 @@ BLS_DLL_API int blsPublicKeyIsValidOrder(const blsPublicKey *pub);
#ifndef BLS_MINIMUM_API
/*
+ set h to a point of G1
+ return 0 if success else -1
+*/
+BLS_DLL_API int blsG1SetHash(mclBnG1 *g1, const void *h, mclSize size);
+/*
sign the hash
use the low (bitSize of r) - 1 bit of h
return 0 if success else -1
@@ -132,6 +137,12 @@ BLS_DLL_API int blsPublicKeyIsValidOrder(const blsPublicKey *pub);
BLS_DLL_API int blsSignHash(blsSignature *sig, const blsSecretKey *sec, const void *h, mclSize size);
// return 1 if valid
BLS_DLL_API int blsVerifyHash(const blsSignature *sig, const blsPublicKey *pub, const void *h, mclSize size);
+/*
+ verify aggSig with pubVec[0, n) and g1Vec[0, n)
+ e(aggSig, Q) = prod_i e(g1Vec[i], pubVec[i])
+ return 1 if valid
+*/
+BLS_DLL_API int blsVerifyAggregation(const blsSignature *aggSig, const blsPublicKey *pubVec, const mclBnG1 *g1Vec, mclSize n);
// sub
BLS_DLL_API void blsSecretKeySub(blsSecretKey *sec, const blsSecretKey *rhs);