singleton method OpenSSL::PKey::DH.generate

generate(size, generator = 2) -> PKey::DH[permalink][rdoc][edit]
generate(size, generator = 2) {|u,n| ... } -> PKey::DH

DH 鍵共有プロトコルのパラメータを生成し、DH オブジェクトを返します。

size は無作為に生成する素数 p (鍵パラメータ)のサイズで、単位はビットです。 generatorは1より大きい小さい数で、通常2か5を指定します。

生成した値は OpenSSL::PKey::DH#params_ok? で安全かどうかチェックしてから利用してください。

このメソッドにブロックが渡された場合には、パラメータ生成の途中経過の情報を引数としてブロックが呼び出されます。

  • n個目の素数候補を生成した場合、u=0 でブロックが呼びだされる
  • 生成した素数候補がn回目の素数テスト(Miller-Robin)に成功した 場合、u=1 でブロックが呼び出される
  • n個目に生成した素数が鍵として不適切な場合には、u=2 でブロックが 呼びだされる
  • パラメータとして適当な素数 p が見付かった場合には、 u=3, n=0 でブロックが呼び出される

DH パラメータの生成には時間がかかるため、鍵生成の途中経過をユーザに表示したい場合にこの機能を使います。

この場合鍵対も同時に生成されます。

[PARAM] size:
鍵パラメータの素数のサイズ(ビット数)
[PARAM] generator:
鍵パラメータの生成元(2以上の整数、通常2か5)
[EXCEPTION] OpenSSL::PKey::DHError:
パラメータの生成に失敗した場合に発生します

[SEE_ALSO] OpenSSL::PKey::DH#generate_key!