68userさん はじめまして、鈴木と申します。 SSLクライアント接続のプログラムを作成していた友人から 「SSL_connect() を実行すると -1 が返る。」という相談を受けて、調べている中で、 68userさんの下記ページの、RAND_seed() の説明で解決することができました。 http://x68000.q-e-d.net/~68user/net/ssl-1.html 本当にありがとうございました。 今回、書き込みさせていただいたのは、その続きなのですが もし、ご存知でしたら教えていただけないでしょうか。 【質問の内容】 (1)XPでは、RAND_seed()を実行しなくても、乱数の種が不足することはないのでしょうか? (2)ユーザプログラムでRAND_seed()実行しない場合、OpenSSLは、OS(Windows)からどのようにして 乱数の種を取得するのでしょうか? 以下に、質問に至った経緯を記します。 【友人との話の経緯】 当初、前述の友人が作成したRAND_seed()していないSSLクライアントプログラムを 私の環境(WindowsXP Pro(SP2))で実行しても、SSL_connect()ではエラー(-1)は 発生しませんでした。 友人の環境を確認するとWindowsNT4.0ワークステーション(SP3)でした。 どうしても、この古い環境でSSLクライアント接続のプログラムを動かしたいとのこと。 結局、友人の環境(WindowsNT4.0ワークステーション(SP3))では発生しますが、 私の環境(WindowsXP Pro(SP2))では100回ほどテストしましたが発生しませんでした。 【試した内容】 前述の内容を下記にまとめます。 (友人の環境) WindowsNT4.0ワークステーション(SP3):× SSL_connect() ⇒ (-1)が返る (私の環境) WindowsXP Professional(SP2) :○ SSL_connect() ⇒ 正常 どちらも、PCの電源オン後に自動ログインして、SSLクライアントプログラムを 自動起動するようにしています。 使っているOpenSSLのバージョンは私も友人も0.9.8Gです。 という経緯があって、以下の点についてご存じであれば教えていただけないでしょうか。 ・XPでは、RAND_seed()を実行しなくても、乱数の種が不足することはないのでしょうか? ・ユーザプログラムでRAND_seed()実行しない場合、OpenSSLは、OS(Windows)からどのようにして 乱数の種を取得するのでしょうか? 何卒よろしくお願い致します。 |