Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ
OpenSSL(http://www.openssl.org) を Ruby から扱うためのライブラリです。
このドキュメントでは SSL/TLS の一般的事項については 解説をしません。利用者は、SSL/TLSの各概念、例えば 以下の事項について理解している必要があります。
SSLのようなセキュリティ技術は、その利用者に無条件に安全性を 提供することはできません。利用者、とくにSSLでソフトウェアを実装する プログラマは、 SSL/TLS の技術、それが基づいている概念を理解し、 ライブラリを適切に利用する必要があります。
この文章の内容は無保証です。この文章は内容を検証して書かれて いますが、間違っている可能性もあります。このライブラリを セキュリティ的に重大な用途に用いるのであれば、 自分自身でこのドキュメントの内容を検証してください。
OpenSSL は SSL/TLS による通信を提供する高水準なインターフェースと より基本的な機能を提供する低水準なインターフェースがあります。 基本的には高水準なインターフェースのみを利用すべきです。
低水準なインターフェースを利用する場合には、利用したい機能に 関する十分な知識と注意深さが必要となります。
自己署名証明書の作成の例です。自分の秘密鍵で自分の公開鍵に署名しているから自己署名です。
require 'openssl' key = OpenSSL::PKey::RSA.new(1024) digest = OpenSSL::Digest::SHA1.new() issu = sub = OpenSSL::X509::Name.new() sub.add_entry('C', 'JP') sub.add_entry('ST', 'Shimane') sub.add_entry('CN', 'Ruby Taro') cer = OpenSSL::X509::Certificate.new() cer.not_before = Time.at(0) cer.not_after = Time.at(0) cer.public_key = key # <= 署名する対象となる公開鍵 cer.serial = 1 cer.issuer = issu cer.subject = sub cer.sign(key, digest) # <= 署名するのに使う秘密鍵とハッシュ関数 print cer.to_text
ASN.1 データ型を表すクラス。
ASN.1 の構造型を表すクラスです。
ASN.1 の Sequence 型(Universal タグのタグ番号16)を表すクラスです。
ASN.1 の Set 型(Universal タグのタグ番号17)を表すクラスです。
ASN.1 の単純型を表すクラスです。
ASN.1 の BMPString 型(Universal タグのタグ番号30)を表すクラスです。
ASN.1 の Bit String 型(Universal タグのタグ番号3)を表すクラスです。
ASN.1 の Boolean 型(Universal タグのタグ番号1)を表すクラスです。
ASN.1 の Enumerated 型(Universal タグのタグ番号10)を表すクラスです。
ASN.1 の GeneralString 型(Universal タグのタグ番号27)を表すクラスです。
ASN.1 の GeneralizedTime 型(Universal タグのタグ番号23)を表すクラスです。
ASN.1 の GraphicString 型(Universal タグのタグ番号25)を表すクラスです。
ASN.1 の IA5String 型(Universal タグのタグ番号22)を表すクラスです。
ASN.1 の ISO64String 型(Universal タグのタグ番号26)を表すクラスです。
ASN.1 の Integer 型(Universal タグのタグ番号2)を表すクラスです。
ASN.1 の Null 型(Universal タグのタグ番号5)を表すクラスです。
ASN.1 の NumericString 型(Universal タグのタグ番号18)を表すクラスです。
ASN.1 のオブジェクト識別子を表すクラス。
ASN.1 の Octet String 型(Universal タグのタグ番号4)を表すクラスです。
ASN.1 の PrintableString 型(Universal タグのタグ番号19)を表すクラスです。
ASN.1 の T61String 型(Universal タグのタグ番号20)を表すクラスです。
ASN.1 の UTCTime 型(Universal タグのタグ番号23)を表すクラスです。
ASN.1 の UTF8String 型(Universal タグのタグ番号12)を表すクラスです。
ASN.1 の UniversalString 型(Universal タグのタグ番号28)を表すクラスです。
ASN.1 の VideotexString 型(Universal タグのタグ番号21)を表すクラスです。
OpenSSL内で利用される多倍長整数クラスです。
共通鍵暗号のために抽象化されたインターフェースを提供するクラスです。
AES 暗号を表すクラス
鍵長 128 ビットの AES 暗号を表すクラス
鍵長 192 ビットの AES 暗号を表すクラス
鍵長 256 ビットの AES 暗号を表すクラス
BF(BlowFish)暗号を表すクラス
CAST5 暗号を表すクラス
このクラスは互換性のために存在します。
DES 暗号を表すクラス
IDEA 暗号を表すクラス
RC2 暗号を表すクラス
RC4 暗号を表すクラス
RC5 暗号を表すクラス
OpenSSL の設定ファイルを表すクラスです。
OpenSSL の Engine (プラグイン)を表すオブジェクトです。
HMAC を表すクラス。
Netscape SPKI、もしくは SPKAC(Signed Public Key And Challenge) と呼ばれる データフォーマットを扱うためのクラスです。
OCSP の Basic OCSP Response を表すクラスです。
失効状態を問い合わせたい個々の証明書を表すクラスです。
OCSP リクエストを表すクラスです。
OCSP レスポンダからのレスポンスを表わすオブジェクトです。
PKCS #7 クラス
このクラスは 1.8.6 以前との互換性のために存在します。
PKCS7 の送信先を表すクラスです。
署名者の情報を表すクラスです。
楕円曲線から定義される群を表すクラスです。
楕円曲線暗号の公開鍵となる曲線上の点を表します。
公開鍵暗号のための抽象クラスです。
Diffie-Hellman 鍵共有クラス
DSA 公開鍵暗号クラス
EC(Ellicptic Curve,楕円曲線)暗号鍵のクラスです。
RSA 暗号鍵のクラスです。
SSL コンテキストクラス。
SSL サーバーのためのクラス。
ソケットをラップして SSL での認証と暗号通信を実現するためのクラスです。
SSL/TLS セッションを表すクラスです。
X.509 証明書署名要求の attribute を表すクラスです。
CRL(証明書失効リスト) クラス。
X509 証明書クラス
X.509 v3 証明書の拡張領域のためのクラスです。
OpenSSL::X509::Extension を簡便に生成するための クラスです。
X.500の識別名(DN, Distinguished Name)を表わすクラス。
X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす クラスです。
失効した証明書のクラス。
証明書ストアクラス。
証明書ストアコンテキストクラス。
ハッシュ関数のためのインターフェースを提供するクラスです。
ハッシュ関数 DSS を表すクラス
ハッシュ関数 DSS1 を表すクラス
このクラスは互換性のために存在します。
ハッシュ関数 MD2 を表すクラス
ハッシュ関数 MD4 を表すクラス
ハッシュ関数 MD5 を表すクラス
ハッシュ関数 MDC2 を表すクラス
ハッシュ関数 RIPEMD160 を表すクラス
ハッシュ関数 SHA を表すクラス
ハッシュ関数 SHA1 を表すクラス
ハッシュ関数 SHA224 を表すクラス
ハッシュ関数 SHA256 を表すクラス
ハッシュ関数 SHA384 を表すクラス
ハッシュ関数 SHA512 を表すクラス
OpenSSL のすべてのクラス、モジュール、メソッド、定数を 保持しているモジュールです。
OpenSSL::SSL::SSLSocket にバッファリング付きIO機能を提供する モジュールです。
OCSP(Online Certificate Status Protocol)を取り扱うための モジュールです。OCSP は [RFC2560] で定義されています。
PKCS#12 (秘密鍵、証明書、関連するCA証明書を1つのファイルに保存する形式) を表すクラスです。
OpenSSL PKCS#5 関連の機能を集めたモジュール
公開鍵暗号関連を集めたモジュールです。
OpenSSL が利用する疑似乱数生成器関連のモジュールです。
to_io で返されるソケットオブジェクトにメソッドを フォワードするモジュールです。
OpenSSL の X509 証明書、CRL(証明書失効リスト)、 CSR(証明書署名要求)、証明書ストアなどに関するモジュールです。
すべての OpenSSL 関連の例外クラスのベースとなる例外クラスです。
OpenSSLの ASN.1 関連のエラーが起きたときに発生する例外です。
OpenSSL::BN 関連のエラーを表す例外です。
共通鍵暗号関連のエラーで発生する例外のクラス。
設定ファイル関連のエラーが生じた場合に発生する例外のクラス。
OpenSSL のハッシュ関数関連のエラーが起きたときに発生する例外のクラスです。
Engine(OpenSSL::Engine) 関連のエラーが生じたときに発生する例外です。
OpenSSL の HMAC 関連のエラーが起きた場合に発生する例外
Netscape SPKI 関連のエラーが生じた場合に発生する例外です。
OCSP 関連のエラーが生じた場合に発生する例外です。
PKCS#12 関連のエラーが生じた場合に発生する例外です。
OpenSSL PKCS#5 関連のエラーが起きた場合に発生する例外
PKCS7 関連のエラーが生じた場合に発生する例外です。
OpenSSL::PKey::EC::Group 関連のエラーを表す例外クラスです。
OpenSSL::PKey::EC::Point 関連のエラーを表す例外クラスです。
OpenSSL の公開鍵関連のエラーの場合に発生する例外
DH 鍵共有プロトコル関連のエラーが生じた場合に発生する例外です。
DSA 関連のエラーが起きた場合に発生する例外です。
楕円曲線暗号関連のエラーが生じた場合に発生する例外です。
RSA 関連のエラーが起きた場合に発生する例外のクラスです。
OpenSSL の乱数関連のエラーが起きた場合に発生する例外
OpenSSL::SSL 関連のエラーが生じたときに発生する例外です。
セッション(OpenSSL::SSL::Session)関連のエラーが 生じた場合に発生する例外です。
OpenSSL::X509::Attribute 関連のエラーが起きた場合に 発生する例外です。
OpenSSL::X509::CRL 関連のエラーが生じたときに発生します。
X509 証明書関連のエラーを表す例外くクラスです。
OpenSSL::X509::Extension 関連のエラーが起きたときに発生します。
OpenSSL::X509::Name 固有のエラーの場合に発生する例外です。
OpenSSL::X509::Request 関連のエラーを表す例外クラスです。
OpenSSL::X509::Revoked 関連のエラーが生じたときに発生します。
OpenSSL::X509::Store 関連のエラーを表す例外クラスです。