diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2018-09-17 10:43:16 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2018-09-17 10:43:16 +0800 |
commit | af2e557d9eb824a0c8d5c42a8cf1c8f09c8d16a7 (patch) | |
tree | 920ea3ff57d5fe3dbacd7d4841394dcf25aeaa47 /src | |
parent | 5aac84e9ab6b14d6c6402389d28fc1d488766444 (diff) | |
download | dexon-bls-af2e557d9eb824a0c8d5c42a8cf1c8f09c8d16a7.tar dexon-bls-af2e557d9eb824a0c8d5c42a8cf1c8f09c8d16a7.tar.gz dexon-bls-af2e557d9eb824a0c8d5c42a8cf1c8f09c8d16a7.tar.bz2 dexon-bls-af2e557d9eb824a0c8d5c42a8cf1c8f09c8d16a7.tar.lz dexon-bls-af2e557d9eb824a0c8d5c42a8cf1c8f09c8d16a7.tar.xz dexon-bls-af2e557d9eb824a0c8d5c42a8cf1c8f09c8d16a7.tar.zst dexon-bls-af2e557d9eb824a0c8d5c42a8cf1c8f09c8d16a7.zip |
add signHash and verifyHash for hashed value
Diffstat (limited to 'src')
-rw-r--r-- | src/bls_c_impl.hpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/bls_c_impl.hpp b/src/bls_c_impl.hpp index 75e5a44..768c206 100644 --- a/src/bls_c_impl.hpp +++ b/src/bls_c_impl.hpp @@ -267,6 +267,29 @@ int blsPublicKeyIsValidOrder(const blsPublicKey *pub) } #ifndef BLS_MINIMUM_API +inline bool toG1(G1& Hm, const void *h, mclSize size) +{ + Fp t; + t.setArrayMask((const char *)h, size); + bool b; + BN::mapToG1(&b, Hm, t); + return b; +} +int blsSignHash(blsSignature *sig, const blsSecretKey *sec, const void *h, mclSize size) +{ + G1 Hm; + if (!toG1(Hm, h, size)) return -1; + mclBnG1_mulCT(&sig->v, cast(&Hm), &sec->v); + return 0; +} + +int blsVerifyHash(const blsSignature *sig, const blsPublicKey *pub, const void *h, mclSize size) +{ + G1 Hm; + if (!toG1(Hm, h, size)) return 0; + return isEqualTwoPairings(*cast(&sig->v), getQcoeff().data(), Hm, *cast(&pub->v)); +} + void blsSecretKeySub(blsSecretKey *sec, const blsSecretKey *rhs) { mclBnFr_sub(&sec->v, &sec->v, &rhs->v); |