Ruby 4.0 リファレンスマニュアル

module OpenSSL::PKey

[edit]

要約

公開鍵暗号関連を集めたモジュールです。

目次

モジュール関数

モジュール関数

generate_key(algo_name, options = nil) -> OpenSSL::PKey::PKeyRuby 3.1 から[permalink][rdoc][edit]
generate_key(algo_name, options = nil) { ... } -> OpenSSL::PKey::PKey
generate_key(pkey, options = nil) -> OpenSSL::PKey::PKey
generate_key(pkey, options = nil) { ... } -> OpenSSL::PKey::PKey

新しい鍵(鍵対)を生成します。

第一引数に文字列を指定した場合は、OpenSSL::PKey?.generate_parameters と同様に、その名前のアルゴリズムに対して新しいランダムな鍵を生成します。

第一引数に OpenSSL::PKey::PKey オブジェクトを指定した場合は、その鍵が保持するパラメータを使って、同じアルゴリズムの新しいランダムな鍵を生成します。

options とブロックの詳細は OpenSSL::PKey?.generate_parameters を参照してください。

[PARAM] algo_name:
アルゴリズムを表す文字列
[PARAM] pkey:
パラメータを流用する元になる鍵
[PARAM] options:
アルゴリズム固有のオプションを指定するハッシュ(省略可)
[RETURN]
生成した鍵を保持する OpenSSL::PKey::PKey オブジェクト

[SEE_ALSO] OpenSSL::PKey?.generate_parameters

require "openssl"
pkey_params = OpenSSL::PKey.generate_parameters("DSA", "dsa_paramgen_bits" => 2048)
p pkey_params.priv_key # => nil
pkey = OpenSSL::PKey.generate_key(pkey_params)
p pkey.priv_key.class # => OpenSSL::BN
generate_parameters(algo_name, options = nil) -> OpenSSL::PKey::PKeyRuby 3.1 から[permalink][rdoc][edit]
generate_parameters(algo_name, options = nil) { ... } -> OpenSSL::PKey::PKey

アルゴリズム algo_name の新しい鍵パラメータを生成します。

options はそのアルゴリズムに固有のオプションを指定するハッシュです(省略可)。オプションを指定する順序が意味を持つ場合があります。

ブロックが渡された場合、パラメータ生成の途中経過に関する情報を引数としてブロックが呼び出されます。ブロックに渡される引数の意味はアルゴリズムの実装によって異なります。ブロックは複数回呼び出されることも、まったく呼び出されないこともあります。

指定できるオプションについては、openssl コマンドの genpkey サブコマンドのドキュメントを参照してください。

[PARAM] algo_name:
アルゴリズムを表す文字列
[PARAM] options:
アルゴリズム固有のオプションを指定するハッシュ(省略可)
[RETURN]
生成したパラメータを保持する OpenSSL::PKey::PKey オブジェクト
require "openssl"
pkey = OpenSSL::PKey.generate_parameters("DSA", "dsa_paramgen_bits" => 2048)
p pkey.p.num_bits # => 2048
new_raw_private_key(algo, string) -> OpenSSL::PKey::PKeyRuby 3.3 から[permalink][rdoc][edit]

生の秘密鍵のバイト列 string から、アルゴリズム algo の鍵を生成します。

X25519 や Ed25519 のように、raw private/public key 形式を使う公開鍵アルゴリズム向けのメソッドです。

[PARAM] algo:
アルゴリズムを表す文字列
[PARAM] string:
生の秘密鍵のバイト列
[EXCEPTION] OpenSSL::PKey::PKeyError:
鍵の生成に失敗した場合に発生します

[SEE_ALSO] OpenSSL::PKey::PKey#raw_private_key, OpenSSL::PKey?.new_raw_public_key

new_raw_public_key(algo, string) -> OpenSSL::PKey::PKeyRuby 3.3 から[permalink][rdoc][edit]

生の公開鍵のバイト列 string から、アルゴリズム algo の鍵を生成します。

X25519 や Ed25519 のように、raw private/public key 形式を使う公開鍵アルゴリズム向けのメソッドです。

[PARAM] algo:
アルゴリズムを表す文字列
[PARAM] string:
生の公開鍵のバイト列
[EXCEPTION] OpenSSL::PKey::PKeyError:
鍵の生成に失敗した場合に発生します

[SEE_ALSO] OpenSSL::PKey::PKey#raw_public_key, OpenSSL::PKey?.new_raw_private_key

read(string, pass = nil) -> OpenSSL::PKey::PKeyRuby 1.9.3 から[permalink][rdoc][edit]
read(io, pass = nil) -> OpenSSL::PKey::PKey

DER 形式または PEM 形式でエンコードされた鍵データを読み込み、適切な OpenSSL::PKey::PKey のサブクラスのインスタンスを返します。

[PARAM] string:
任意の秘密鍵または公開鍵を含む、DER 形式または PEM 形式でエンコードされた文字列
[PARAM] io:
任意の秘密鍵または公開鍵を含む、DER 形式または PEM 形式でエンコードされたデータを読み込む IO オブジェクト
[PARAM] pass:
string または io が暗号化された PEM 形式のリソースである場合に使うパスワード(省略可)
[EXCEPTION] OpenSSL::PKey::PKeyError:
鍵の解析に失敗した場合に発生します
require "openssl"
rsa = OpenSSL::PKey::RSA.generate(2048)
pkey = OpenSSL::PKey.read(rsa.public_to_der)
p pkey.class # => OpenSSL::PKey::RSA