names=new
visibility=public
kind=defined

--- new -> OpenSSL::PKey::DSA
--- new(size) -> OpenSSL::PKey::DSA
--- new(obj, pass=nil) -> OpenSSL::PKey::DSA
--- new(obj, pass=nil){|flag| ... } -> OpenSSL::PKey::DSA
DSA オブジェクトを生成します。

引数なしの場合は空の DSA オブジェクトを返します。

第一引数に整数を指定した場合には、[[m:OpenSSL::PKey::DSA.generate]] により
公開鍵と秘密鍵のペアを生成し、それを返します。

それ以外の場合には、以下のようにして鍵データを読みこみ、DSA オブジェクト
を生成します。
  * 第一引数が文字列の場合は、PEM 形式もしくは DER 形式と仮定して
    鍵データを読み込みます
  * 第一引数が [[c:IO]] オブジェクトの場合は、その内容を
    読み込んで DSA オブジェクトを生成します。
  * 第一引数が to_der メソッドを持つ場合は、それにより DER 形式の
    文字列に変換してから読み込みます
pass が指定された場合は、秘密鍵を pass を使って復号化します。

鍵データにパスフレーズが設定されているにもかかわらず、passが省略された場合は、
渡されたブロックを呼びだしてパスフレーズを要求します。ブロックの返り値を
パスフレーズとみなして復号します。ブロックの引数は通常は false が渡されますが、
これはそのパスフレーズが秘密鍵の復号に使われることを意味します。
ブロックが渡されなかった場合にはターミナルに問い合わせをします。

@param size 鍵を生成する時の素数のビット数
@param obj 鍵データ
@param pass 鍵データに設定したパスフレーズ
@raise OpenSSL::PKey::RSAError 鍵の読み込みに失敗した場合に発生します。

