EC(Ellicptic Curve,楕円曲線)暗号鍵のクラスです。
このクラスのメソッドについてより詳しく知りたい場合は openssl のドキュメントの対応する関数の項を見てください。
builtin_curves -> [[String, String]]
[permalink][rdoc]組み込みの曲線の名前と、それに対する説明を文字列の配列ペアの配列で返します。
例:
require 'openssl' OpenSSL::PKey::EC.builtin_curves # => [["secp112r1", "SECG/WTLS curve over a 112 bit prime field"], # ["secp112r2", "SECG curve over a 112 bit prime field"], # ["secp128r1", "SECG curve over a 128 bit prime field"], # ["secp128r2", "SECG curve over a 128 bit prime field"], # ... ]
[SEE_ALSO] OpenSSL::PKey::EC::Group.new
new -> OpenSSL::PKey::EC
[permalink][rdoc]new(obj) -> OpenSSL::PKey::EC
OpenSSL::PKey::EC オブジェクトを生成します。
引数の種類や内容によって異なる挙動をします。
引数なしの場合は、空の EC オブジェクトを生成します。これにはパラメータ(曲線から定義される群)も鍵対も含まれていません。
引数が OpenSSL::PKey::EC オブジェクトである場合には、そのオブジェクトのコピーを返します。
引数が OpenSSL::PKey::EC::Group のオブジェクトである場合には、それを群として設定されます。鍵対は含まれません。
引数が DER 形式もしくは PEM 形式の文字列である場合は、その内容を読み込んで EC オブジェクトを出力します。その内容によって鍵対の両方、もしくは公開鍵のみ含まれています。
引数が曲線の名前の文字列である場合には、その曲線で定義される群がパラメータとして設定されます。鍵対は含まれません。
check_key -> true
[permalink][rdoc]パラメータと鍵対をチェックします。
なんらかの意味で鍵対に問題がある場合には例外 ECError を発生します。
dh_compute_key(pubkey) -> String
[permalink][rdoc]自分の秘密鍵と相手の公開鍵から ECDH によって鍵文字列を計算し、返します。
相手の公開鍵は OpenSSL::PKey::EC::Point オブジェクトである必要があります。
dsa_sign_asn1(data) -> String
[permalink][rdoc]秘密鍵を用い、data に ECDSA で署名します。
結果は文字列として返します。
data のダイジェストを取る処理はこのメソッドに含まれていません。自身で適当なダイジェストを取る必要があります。
[SEE_ALSO] OpenSSL::PKey::EC#dsa_verify_asn1
dsa_verify_asn1(data, sig) -> bool
[permalink][rdoc]公開鍵を用い、署名を ECDSA で検証します。
data のダイジェストを取る処理はこのメソッドに含まれていません。自身で適当なダイジェストを取る必要があります。
検証に成功した場合は true を返します。
[SEE_ALSO] OpenSSL::PKey::EC#dsa_sign_asn1
generate_key -> self
[permalink][rdoc]鍵ペアを乱数で生成します。
group -> OpenSSL::PKey::EC::Group
[permalink][rdoc]鍵パラメータとなる群を表すオブジェクトを返します。
[SEE_ALSO] OpenSSL::PKey::EC#group=
group=(gr)
[permalink][rdoc]鍵パラメータとなる群を表すオブジェクトを設定します。
通常このメソッドで値を変更することはありません。よく考えて必要な場合のみ利用してください。
[SEE_ALSO] OpenSSL::PKey::EC#group
private_key -> OpenSSL::BN|nil
[permalink][rdoc]秘密鍵となる整数を返します。
鍵が設定されていない場合は nil を返します。
[SEE_ALSO] OpenSSL::PKey::EC#private_key=
private_key=(privkey)
[permalink][rdoc]秘密鍵となる整数を設定します。
nil を渡すことで EC オブジェクトが公開鍵のみを持つ状態に変更できます。
[SEE_ALSO] OpenSSL::PKey::EC#private_key
private_key? -> bool
[permalink][rdoc]EC オブジェクトが秘密鍵を保持していれば真を返します。
public_key -> OpenSSL::PKey::EC::Point|nil
[permalink][rdoc]公開鍵となる楕円曲線上の点を表すオブジェクトを返します。
鍵が設定されていない場合は nil を返します。
[SEE_ALSO] OpenSSL::PKey::EC#public_key=
public_key=(pubkey)
[permalink][rdoc]公開鍵となる楕円曲線上の点を表すオブジェクトを設定します。
通常このメソッドで値を変更することはありません。よく考えて必要な場合のみ利用してください。
[SEE_ALSO] OpenSSL::PKey::EC#public_key
public_key? -> bool
[permalink][rdoc]EC オブジェクトが公開鍵を保持していれば真を返します。
OpenSSL::PKey::RSA や OpenSSL::PKey::DSA と異なり、EC オブジェクトが公開鍵を含まない場合が存在します。例えば、OpenSSL::PKey::EC.new でパラメータとなる群のみを指定して EC オブジェクトを作った場合は、公開鍵も秘密鍵も保持していません。この場合 OpenSSL::PKey::EC#generate_key で鍵を生成するまで、その状態のままです。
このメソッドを呼ぶ前に OpenSSL::Random の各モジュール関数によって乱数が適切に初期化されている必要があります。
to_der -> String
[permalink][rdoc]鍵を DER 形式の文字列に変換します。
to_pem -> String
[permalink][rdoc]鍵を PEM 形式の文字列に変換します。
現在の仕様では OpenSSL::PKey::RSA#to_pem のように出力をパスフレーズで暗号化することはできません。
to_text -> String
[permalink][rdoc]鍵を人間が読める形式に変換します。
NAMED_CURVE -> Integer
[permalink][rdoc]その群が名前を持つ曲線から定義されていることを意味するフラグです。
OpenSSL::PKey::EC::Group#asn1_flag= で利用されます。