0

関数のソースを見つけて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
  • グレッグ
4

1 に答える 1