经过MinGW的大量努力,我一直在Windows上使用PBC,现在我注意到(我已经开始使用BLS签名了)运行静态MinGW编译版本的PBC时,我总是得到以下警告:
“ 警告:无法打开/ dev / urandom,使用确定性随机数生成器 ”
根据PBC手册 ,不应该在Windows上发生,因为PBC声称使用CryptGenRandom()。 所以,我相信我使用的–host = i386-pc-mingw32选项是错误的,但是我尝试了–host = i386-pc-winnt ,但没有成功。
最后,我必须做一个观察:当使用ExeInfoPE检查最终的“有问题的.exe”时,我看到没有从advapi32.dll(它是CryptGenRandom()所在的位置导入,而PBC网站中的MinGW编译的DLL实际上具有这样的导入。
因此,我相信在使用./configure时,必须使用一些特殊命令来指导PBC编译“arith \ init_random.win32.c”文件,而不是“arith \ init_random.c”。 (你可以在PBC来源find这些资料)。 所以,我的问题是:如何纠正上述警告? (根据上述PBC手册,这意味着PBCfunction的随机输出不应encryption使用)
注意:您可以在我的答案中看到我的编译选项, 在Windows中运行PBC – Visual Studio ,并从这里下载PBC二进制文件和源代码。