class OpenSSL::Engine

[edit]

要約

OpenSSL の Engine (プラグイン)を表すオブジェクトです。

このインターフェースからハードウェアアクレラレータなどを利用できます。

詳しくは openssl のドキュメントの engine の項を見てください。

目次

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

特異メソッド

by_id(id) -> OpenSSL::Engine[permalink][rdoc][edit]

id で指定した engine をロードします。

OpenSSL::Engine#load ではコンパイル時に決められた engine しか読み込めませんが、これは動的なロードが可能です。

[PARAM] id:
engine の名前(文字列)
[EXCEPTION] OpenSSL::Engine::EngineError:
ロードが失敗した場合に発生します。
cleanup -> nil[permalink][rdoc][edit]

ロードされている engine を全て破棄します。

engine が利用していたリソースを開放します。

[SEE_ALSO] OpenSSL::Engine.load

engines -> [OpenSSL::Engine][permalink][rdoc][edit]

ロードされていて利用可能な engine を配列で返します。

[SEE_ALSO] OpenSSL::Engine.load

load(name = nil) -> true | nil[permalink][rdoc][edit]

Engine をロードします。

このメソッドは openssl のコンパイル時に静的にコンパイルされたものを読み込みます。

name で指定した engine をロードします。以下が指定可能です。

  • "dynamic"
  • "cswift"
  • "chil"
  • "atalla"
  • "nuron"
  • "ubsec"
  • "aep"
  • "sureware"
  • "4758cca"
  • "openbsd_dev_crypto"
  • "openssl"

引数を省略した場合はロード可能なすべての engine をロードします。

動的な読み込みをしたい場合は OpenSSL::Engine#by_id を用います。

ロードに成功した場合は true を返します。

[PARAM] name:
ロードする engine の名前(文字列)

[SEE_ALSO] OpenSSL::Engine.cleanup

インスタンスメソッド

cipher(name) -> OpenSSL::Cipher[permalink][rdoc][edit]

engine から暗号化/復号化オブジェクトを生成します。

[PARAM] name:
暗号化方式名(文字列)
[EXCEPTION] OpenSSL::Engine::EngineError:
指定した暗号化方式が存在しない、もしくは engine がサポートしていない場合に発生します。
cmds -> [[String, String, String]][permalink][rdoc][edit]

その engine がサポートしているコマンドの一覧を配列で返します。

配列の各要素は

[コマンド名、コマンドの説明、コマンドのフラグ]

という3つの文字列の配列です。

[SEE_ALSO] OpenSSL::Engine#ctrl_cmd

ctrl_cmd(cmd, val=nil) -> self[permalink][rdoc][edit]

engine にコマンドを送ります。

[PARAM] cmd:
コマンド名(文字列)
[PARAM] val:
コマンド引数(文字列)

[SEE_ALSO] OpenSSL::Engine#ctrl_cmd

digest(name) -> OpenSSL::Digest[permalink][rdoc][edit]

engine からメッセージダイジェストオブジェクトを生成します。

[PARAM] name:
メッセージダイジェストアルゴリズム名(文字列)
[EXCEPTION] OpenSSL::Engine::EngineError:
指定したアルゴリズムが存在しない、もしくは engine がサポートしていない場合に発生します。
finish -> nil[permalink][rdoc][edit]

engine を終了させ、内部に保持しているデータを破棄します。

id -> String[permalink][rdoc][edit]

engine の識別子を文字列で返します。

[SEE_ALSO] OpenSSL::Engine#name

load_private_key(id=nil, data=nil) -> OpenSSL::PKey::PKey[permalink][rdoc][edit]

秘密鍵を engine にロードします。

[PARAM] id:
key id(文字列)
[PARAM] data:
文字列
load_public_key(id=nil, data=nil) -> OpenSSL::PKey::PKey[permalink][rdoc][edit]

公開鍵を engine にロードします。

[PARAM] id:
key id(文字列)
[PARAM] data:
文字列
name -> String[permalink][rdoc][edit]

engine の(人間に読みやすい)名称を文字列で返します。

例:

engine.name # => "Atalla hardware engine support"

[SEE_ALSO] OpenSSL::Engine#id

set_default(flags) -> true[permalink][rdoc][edit]

engine をデフォルトで利用するようにします。

flags は engine を openssl のどの機能に関してデフォルトにするかを指定します。

flags は以下の値の OR を取ります。

また、 OpenSSL::Engine::METHOD_ALLOpenSSL::Engine::METHOD_NONE が利用可能です。

定数

METHOD_ALL -> Integer[permalink][rdoc][edit]

engine が持っている機能をすべて openssl のデフォルトにすることを意味します。

OpenSSL::Engine#set_default のフラグとして使います。

METHOD_CIPHERS -> Integer[permalink][rdoc][edit]

デフォルトの暗号化のための engine に設定することを意味します。

OpenSSL::Engine#set_default のフラグとして使います。

METHOD_DH -> Integer[permalink][rdoc][edit]

デフォルトの DH アルゴリズムのための engine に設定することを意味します。

OpenSSL::Engine#set_default のフラグとして使います。

METHOD_DIGESTS -> Integer[permalink][rdoc][edit]

デフォルトのダイジェストのための engine に設定することを意味します。

OpenSSL::Engine#set_default のフラグとして使います。

METHOD_DSA -> Integer[permalink][rdoc][edit]

デフォルトの DSA アルゴリズムのための engine に設定することを意味します。

OpenSSL::Engine#set_default のフラグとして使います。

METHOD_NONE -> Integer[permalink][rdoc][edit]

engine をデフォルトに設定しないことを意味します。

OpenSSL::Engine#set_default のフラグとして使います。

METHOD_RAND -> Integer[permalink][rdoc][edit]

デフォルトのセキュアな乱数生成のための engine に設定することを意味します。

OpenSSL::Engine#set_default のフラグとして使います。

METHOD_RSA -> Integer[permalink][rdoc][edit]

デフォルトの RSA アルゴリズムのための engine に設定することを意味します。

OpenSSL::Engine#set_default のフラグとして使います。