我正在通过互联网寻找函数的来源,PK11_GenerateRandom()
看看函数为什么会失败。我有一个程序可以完美地使用这个功能,但是当我们迁移到新版本的 Linux 时,它在 fork ( fork()
) 后失败了因为我不相信 NSS 有问题,我怀疑我们做错了一些在旧版本的 Linux 但使用新版本时存在问题。
OpenSSL 包在“好”和“坏”服务器上是相同的:
OpenSSL 0.9.8e-fips-rhel5 01 Jul
NSS rpm 不同。“好”有
nss-3.12.2.0-2.el5
bas有这个版本
nss-3.15.3-4.el5_10
“好”服务器使用相当过时的 Linux:
Linux GOOD 2.6.18-128.el5 #1 SMP Wed Jan 21 08:45:05 EST 2009 x86_64 x86_64 x86_64 GNU/Linux
Enterprise Linux Enterprise Linux Server release 5.3 (Carthage)
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
“坏”服务器较新:
Linux BAD 2.6.18-371.4.1.el5 #1 SMP Wed Jan 29 11:05:49 PST 2014 x86_64 x86_64 x86_64 GNU/Linux
Oracle Linux Server release 5.10
Red Hat Enterprise Linux Server release 5.10 (Tikanga)
关于我在哪里可以找到来源或失败原因(如副作用来自fork()
)的任何线索将不胜感激。
- 格雷格
编辑
这是代码,非常简单,我认为不需要它。
/* random points to properly allocated memory, let=32 */
SECStatus rv = PK11_GenerateRandom((unsigned char *)random, (int)len);
if ( rv != SECSuccess )
printf( "PK11_GenerateRandom error = %d\n", PR_GetError()) ;
输出消息当然是:
PK11_GenerateRandom error = -8023
- 格雷格