関数のソースを見つけてPK11_GenerateRandom()
、関数が失敗する理由を確認しようとしてインターネットを調べています。私はこの機能を完全に使用するプログラムを持っていますが、Linux の新しいフレーバーに移行すると、フォーク後に失敗します ( fork()
) NSS に問題があるとは思わないので、何か間違ったことをしていると思います古いバージョンの Linux ですが、新しいバージョンでは問題があります。
OpenSSL パッケージは、「良い」サーバーと「悪い」サーバーで同じです。
OpenSSL 0.9.8e-fips-rhel5 01 Jul
ただし、NSS rpm は異なります。「良い」には
nss-3.12.2.0-2.el5
ベースにはこのバージョンがあります
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
- グレッグ