2003年4月17日

[obu:02182] 解決しました。 (Re: OpenSSLのSSL_connectが失敗する)

こんにちわ、わだまん です。

昨日質問しました件、無事解決いたしました。

あの後、さらに調査していましたところ、OpenSSLのデバッグ用に
ERR_print_errors_fp() という関数が準備されている事を見つけました。

その関数を組み込んで実行したところ、エラーの原因が判明しました。
"PRNG not seeded"
がエラーの原因だったのです。

このエラーについてOpenSSLのサイトで調べたところ、乱数処理で
エラーが起きていたのでした。

PC-AT機のRedHat 7.1環境下には/dev/randomが存在しましたが、
OpenBlocksSにはそのデバイスファイルが存在しませんでした。
それが原因だったのです。

このエラーの回避策として、RAND_seed()関数を呼べばいいと
書かれておりました。opensslコマンドのソースを読んでみたところ、
確かにRAND_seed()関数が呼ばれていました。

すなわち、
RedHat 7.1環境下:
/dev/randomが存在したため、エラーは起きなかった。
OpenBlocksS環境下でのopensslコマンド:
/dev/randomは存在しないが、RAND_seed()関数が呼ばれていたため
エラーは起きなかった。
OpenBlocksS環境下でのテストプログラム:
/dev/randomが存在せず、RAND_seed()関数も呼ばれていなかったため
エラーが発生した。
という事だったのです。

無事解決してホッとしました。
これでクロス開発による実験が続けられそうです。

今後ともよろしくお願いいたします。


投稿者 xml-rpc : 2003年4月17日 12:04
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/8177
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。