class OpenSSL::PKey::EC::Group

要約

楕円曲線から定義される群を表すクラスです。

楕円曲線暗号のパラメータとしての役割をはたします。

目次

特異メソッド
インスタンスメソッド

特異メソッド

new(obj) -> OpenSSL::PKey::EC::Group[permalink][rdoc]
new(sym, p, a, b) -> OpenSSL::PKey::EC::Group

楕円曲線から定義される群を表すオブジェクトを生成します。

引数の種類と個数によって挙動が異なります。

引数が1つの場合は、シンボル、OpenSSL::PKey::EC::Group オブジェクト、文字列のいずれかを渡すことができます。

引数にシンボルを渡した場合は対応する群を返します。以下の4つを指定できます。

この方法で生成された Group オブジェクトは不完全です。

OpenSSL::PKey::EC::Group オブジェクトを渡した場合はそれを複製したオブジェクトを返します。

文字列を渡した場合は、PEM もしくは DER 形式のデータとみなしてデータを読み込み、オブジェクトを生成します。

曲線名文字列を渡した場合は、その曲線で定義される群を表すオブジェクトを返します。

引数が4つの場合は sym で :GFp_simple もしくは :GF2m_simple を指定し、それと p, a, b という 3 つの整数で定義される楕円曲線から定義される群を返します。

[PARAM] obj:
Groupオブジェクト生成のためのデータ(シンボル、Group, 文字列のいずれか)
[PARAM] sym:
Group を定義するためのシンボル
[PARAM] p:
整数(OpenSSL::BN)
[PARAM] a:
整数(OpenSSL::BN)
[PARAM] b:
整数(OpenSSL::BN)
[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
オブジェクトの生成に失敗した場合に発生します。曲線名が不正である場合などに発生します。

インスタンスメソッド

self == other -> bool[permalink][rdoc]
eql?(other) -> bool

自身が other と等しいときは true を返します。

[PARAM] other:
比較対象の OpenSSL::PKey::EC::Group オブジェクト
asn1_flag -> Integer[permalink][rdoc]

自身に設定された ASN1 フラグを返します。

[SEE_ALSO] OpenSSL::PKey::EC::Group#asn1_flag=

asn1_flag=(flags)[permalink][rdoc]

自身に ASN1 フラグを設定します。

現在利用可能なフラグは以下の通りです。

[SEE_ALSO] OpenSSL::PKey::EC::Group#asn1_flag

cofactor -> OpenSSL::BN[permalink][rdoc]

余因子を返します。

[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
余因子の取得に失敗した場合に発生します
curve_name -> String | nil[permalink][rdoc]

曲線の名前を文字列で返します。

名前がない場合は nil を返します。

degree -> Integer[permalink][rdoc]

群の定義の元となっている体の要素を表現するのに必要なビット数を返します。

generator -> OpenSSL::PKey::EC::Point[permalink][rdoc]

群の生成元を返します。

order -> OpenSSL::BN[permalink][rdoc]

生成元の位数を返します。

[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
位数の取得に失敗した場合に発生します
point_conversion_form -> Symbol[permalink][rdoc]

点のエンコーディング方式を返します。

以下のいずれかを返します。

詳しくは X9.62 (ECDSA) などを参照してください。

[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
得られたエンコーディングが未知の値であった場合に発生します。

[SEE_ALSO] OpenSSL::PKey::EC::Group#point_conversion_form=

point_conversion_form=(sym)[permalink][rdoc]

点のエンコーディング方式を設定します。

以下のいずれかを設定します。

詳しくは X9.62 (ECDSA) などを参照してください。

[PARAM] sym:
設定する方式(Symbol)

[SEE_ALSO] OpenSSL::PKey::EC::Group#point_conversion_form

seed -> String | nil[permalink][rdoc]

seed を返します。

seed が設定されていない場合は nil を返します。

[SEE_ALSO] OpenSSL::PKey::EC::Group#seed

seed=(s)[permalink][rdoc]

seed を設定します。

[PARAM] s:
seed(文字列)
[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
seedの設定に失敗した場合に発生します。

[SEE_ALSO] OpenSSL::PKey::EC::Group#seed

set_generator(generator, order, cofactor) -> self[permalink][rdoc]

群のパラメータを設定します。

[PARAM] generator:
生成元(OpenSSL::PKey::EC::Point オブジェクト)
[PARAM] order:
生成元の位数(OpenSSL::BN オブジェクト)
[PARAM] cofactor:
余因子OpenSSL::BN オブジェクト
[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
設定に失敗した場合に発生します
to_der -> String[permalink][rdoc]

自身を DER 形式の文字列に変換します。

[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
変換に失敗した場合に発生します。
to_pem -> String[permalink][rdoc]

自身を PEM 形式の文字列に変換します。

[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
変換に失敗した場合に発生します。
to_text -> String[permalink][rdoc]

自身を人間に可読な形式の文字列に変換します。

[EXCEPTION] OpenSSL::PKey::EC::Group::Error:
変換に失敗した場合に発生します。