diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2018-05-14 15:48:14 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2018-05-14 15:48:14 +0800 |
commit | e6c316cbbd2e75a158578aed0f592141e85bf754 (patch) | |
tree | b7f56d5694ffd6bae5a4edc51a4577781e496609 | |
parent | 241e38efe91d06e54a180a85e21d2e1cba22ad18 (diff) | |
download | tangerine-mcl-e6c316cbbd2e75a158578aed0f592141e85bf754.tar.gz tangerine-mcl-e6c316cbbd2e75a158578aed0f592141e85bf754.tar.zst tangerine-mcl-e6c316cbbd2e75a158578aed0f592141e85bf754.zip |
call cryptoGetRandomValues
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | include/mcl/randgen.hpp | 10 |
2 files changed, 9 insertions, 3 deletions
@@ -259,7 +259,7 @@ endif emcc -o $@ src/fp.cpp src/she_c384.cpp $(EMCC_OPT) -s TOTAL_MEMORY=67108864 ../mcl-wasm/mcl_c.js: src/bn_c256.cpp $(MCL_C_DEP) - emcc -o $@ src/fp.cpp src/bn_c256.cpp $(EMCC_OPT) -DMCL_MAX_BIT_SIZE=256 -DCYBOZU_MINIMUM_EXCEPTION + emcc -o $@ src/fp.cpp src/bn_c256.cpp $(EMCC_OPT) -DMCL_MAX_BIT_SIZE=256 -DCYBOZU_MINIMUM_EXCEPTION -DMCL_USE_WEB_CRYPTO_API ../mcl-wasm/mcl_c512.js: src/bn_c512.cpp $(MCL_C_DEP) emcc -o $@ src/fp.cpp src/bn_c512.cpp $(EMCC_OPT) -DMCL_MAX_BIT_SIZE=512 -DCYBOZU_MINIMUM_EXCEPTION diff --git a/include/mcl/randgen.hpp b/include/mcl/randgen.hpp index 2e28378..30225e5 100644 --- a/include/mcl/randgen.hpp +++ b/include/mcl/randgen.hpp @@ -9,13 +9,15 @@ #ifdef MCL_USE_WEB_CRYPTO_API #include <emscripten.h> -struct RandomGenerator { +namespace mcl { +struct RandomGeneratorJS { void read(void *buf, size_t bufSize) { // use crypto.getRandomValues - EM_ASM({mod.cryptoGetRandomValues($0, $1)}, buf, bufSize); + EM_ASM({Module.cryptoGetRandomValues($0, $1)}, buf, bufSize); } }; +} // mcl #else #include <cybozu/random_generator.hpp> @@ -88,7 +90,11 @@ public: bool isZero() const { return self_ == 0 && readFunc_ == 0; } static RandGen& get() { +#ifdef MCL_USE_WEB_CRYPTO_API + static mcl::RandomGeneratorJS rg; +#else static cybozu::RandomGenerator rg; +#endif static RandGen wrg(rg); return wrg; } |