names=generate
visibility=public
kind=defined

--- generate(size) -> OpenSSL::PKey::DSA
--- generate(size){|u,n| ... } -> OpenSSL::PKey::DSA
乱数により DSA 公開鍵と秘密鍵のペアを生成して、DSA オブジェクトとして
返します。

このメソッドを呼ぶ前に [[c:OpenSSL::Random]] の各モジュール関数に
よって乱数が適切に初期化されている必要があります。

size は DSA パラメータの素数のビット数を指定します。最大 1024 まで
指定できます。通常 512 か 1024 を使います。

このメソッドにブロックが渡された場合には、鍵パラメータ生成の途中経過の
情報を引数としてブロックが呼び出されます。
  * n個目の素数候補を生成した場合、u=0 でブロックが呼びだされる
  * 生成した素数候補が小さな素数で割りきれてしまった場合は
    u=1, n=-1 でブロックが呼びだされる
  * 生成した素数候補がn回目の素数テスト(Miller-Robin)に成功した
    場合、u=1 でブロックが呼び出される
  * 適当な1つめの素数が見付かった場合は、u=2, n=0 と
    u=3, n=0 でブロックが呼び出される
  * もう1つ素数を見付けるために、上の1,2,3をもう一度繰り返す
  * 適当な2つめの素数が見付かった場合は、u=2, n=1 でブロックが
    呼び出される
  * パラメータ g (generator) が見付かった場合には、
    u=3, n=1 でブロックが呼び出される
DSA パラメータの生成には時間がかかるため、生成の途中経過を
ユーザに表示したい場合にこの機能を使います。

