要約
PKCS#12 (秘密鍵、証明書、関連するCA証明書を1つのファイルに保存する形式) を表すクラスです。
目次
特異メソッド
create(pass, name, pkey, cert, ca=nil, key_nid=nil, cert_nid=nil, key_iter=nil, mac_iter=nil, keytype=nil) -> OpenSSL::PKCS12[permalink][rdoc][edit]-
PKCS#12 オブジェクトを生成します。
pass はデータを暗号化するためのパスフレーズです。 name は利用者の利便性のためにオブジェクトに与える名前です。 pkey は秘密鍵、certは証明書、caはCA証明書の配列です。 ca に nil を渡すのは空の配列を渡すのと同じ意味です。 key_nid と cert_nid は 秘密鍵、証明書の暗号化方式を文字列で指定します。 key_iter は暗号化アルゴリズムにイテレーション回数、 mac_iter は MAC のイテレーション回数、 keytype は鍵の種類を渡します。
key_nid, cert_nid, key_iter, mac_iter, keytype すべてに nil を渡すとデフォルトとして、証明書は 40 bit RC2 で暗号化、秘密鍵は triple DES で暗号化、key_iter は2048、mac_iter は1、keytypeなしとなります。
mac_iter がデフォルトで1なのは古いソフトウェアとの互換性のためです。互換性が問題でなければ 2048(PKCS12_DEFAULT_ITER)を用いてください。
- [PARAM]
pass: - パスフレーズ文字列
- [PARAM]
name: - 名前文字列
- [PARAM]
pkey: - 秘密鍵(OpenSSL::PKey::PKey のサブクラスのオブジェクト)
- [PARAM]
cert: - 証明書(OpenSSL::X509::Certificate のオブジェクト)
- [PARAM]
ca: - CA証明書群(OpenSSL::X509::Certificate の配列)
- [PARAM]
key_nid: - 秘密鍵の暗号化方式を表す文字列
- [PARAM]
cert_nid: - 証明書の暗号化方式を表す文字列
- [PARAM]
key_iter: - 暗号化アルゴリズムにイテレーション回数
- [PARAM]
mac_iter: - MAC のイテレーション回数
- [PARAM]
keytype: - 鍵の種類(整数)
- [EXCEPTION]
OpenSSL::PKCS12::PKCS12Error: - オブジェクト生成に失敗した場合に発生します
- [PARAM]
new(obj=nil, pass=nil) -> OpenSSL::PKCS12[permalink][rdoc][edit]-
文字列もしくは IO オブジェクトから PKCS#12 オブジェクトを生成します。
データは通常パスフレーズで暗号化されているため、pass でそのパスワードを渡します。
- [PARAM]
obj: - PKCS#12データを読み込むオブジェクト(文字列もしくは IO)
- [PARAM]
pass: - パスフレーズ文字列
- [EXCEPTION]
OpenSSL::PKCS12::PKCS12Error: - データの読み込みに失敗した場合に発生します
- [PARAM]
インスタンスメソッド
ca_certs -> [OpenSSL::X509::Certificate][permalink][rdoc][edit]-
自身が保持しているCA証明書を配列で返します。
certificate -> OpenSSL::X509::Certificate[permalink][rdoc][edit]-
自身が保持している証明書を返します。
key -> OpenSSL::PKey::PKey[permalink][rdoc][edit]-
自身が保持している鍵を返します。
set_mac(pass, salt = nil, iter = nil, md_type = nil) -> nilRuby 3.4 から[permalink][rdoc][edit]-
MAC のパラメータを設定し、PKCS#12 構造全体に対する MAC を計算しなおします。
HMAC と、PKCS#12 独自のパスワードベース鍵導出関数(KDF)を使って計算します。
- [PARAM]
pass: - MAC の計算に用いるパスワード文字列
- [PARAM]
salt: - MAC の計算に用いる salt 文字列。省略した場合は自動的に生成されます
- [PARAM]
iter: - 鍵導出の繰り返し回数。省略した場合は既定の回数が使われます
- [PARAM]
md_type: - 使用するハッシュアルゴリズムを表す文字列もしくは OpenSSL::Digest のオブジェクト。省略した場合は既定のアルゴリズムが使われます
- [EXCEPTION]
OpenSSL::PKCS12::PKCS12Error: - MAC の設定に失敗した場合に発生します
- [PARAM]
to_der -> String[permalink][rdoc][edit]-
自身を DER 形式の文字列に変換します。
- [EXCEPTION]
OpenSSL::PKCS12::PKCS12Error: - 変換に失敗した場合に発生します
- [EXCEPTION]