ライブラリ
-
net
/ http (1) -
net
/ imap (2) - openssl (246)
- optparse (1)
-
webrick
/ ssl (1)
クラス
- Integer (1)
-
Net
:: HTTP (1) -
Net
:: IMAP (2) -
OpenSSL
:: ASN1 :: ASN1Data (1) -
OpenSSL
:: ASN1 :: BMPString (2) -
OpenSSL
:: ASN1 :: BitString (2) -
OpenSSL
:: ASN1 :: Boolean (2) -
OpenSSL
:: ASN1 :: Enumerated (2) -
OpenSSL
:: ASN1 :: GeneralString (2) -
OpenSSL
:: ASN1 :: GeneralizedTime (2) -
OpenSSL
:: ASN1 :: GraphicString (2) -
OpenSSL
:: ASN1 :: IA5String (2) -
OpenSSL
:: ASN1 :: ISO64String (2) -
OpenSSL
:: ASN1 :: Integer (2) -
OpenSSL
:: ASN1 :: Null (2) -
OpenSSL
:: ASN1 :: NumericString (2) -
OpenSSL
:: ASN1 :: ObjectId (8) -
OpenSSL
:: ASN1 :: OctetString (2) -
OpenSSL
:: ASN1 :: PrintableString (2) -
OpenSSL
:: ASN1 :: Sequence (2) -
OpenSSL
:: ASN1 :: Set (2) -
OpenSSL
:: ASN1 :: T61String (2) -
OpenSSL
:: ASN1 :: UTCTime (2) -
OpenSSL
:: ASN1 :: UTF8String (2) -
OpenSSL
:: ASN1 :: UniversalString (2) -
OpenSSL
:: ASN1 :: VideotexString (2) -
OpenSSL
:: BN (16) -
OpenSSL
:: Cipher (1) -
OpenSSL
:: Cipher :: AES (1) -
OpenSSL
:: Cipher :: AES128 (1) -
OpenSSL
:: Cipher :: AES192 (1) -
OpenSSL
:: Cipher :: AES256 (1) -
OpenSSL
:: Cipher :: BF (1) -
OpenSSL
:: Cipher :: CAST5 (1) -
OpenSSL
:: Cipher :: DES (1) -
OpenSSL
:: Cipher :: IDEA (1) -
OpenSSL
:: Cipher :: RC2 (2) -
OpenSSL
:: Cipher :: RC4 (2) -
OpenSSL
:: Cipher :: RC5 (1) -
OpenSSL
:: Config (2) -
OpenSSL
:: Digest (1) -
OpenSSL
:: Digest :: DSS (1) -
OpenSSL
:: Digest :: DSS1 (1) -
OpenSSL
:: Digest :: Digest (1) -
OpenSSL
:: Digest :: MD2 (1) -
OpenSSL
:: Digest :: MD4 (1) -
OpenSSL
:: Digest :: MD5 (1) -
OpenSSL
:: Digest :: MDC2 (1) -
OpenSSL
:: Digest :: RIPEMD160 (1) -
OpenSSL
:: Digest :: SHA (1) -
OpenSSL
:: Digest :: SHA1 (1) -
OpenSSL
:: Digest :: SHA224 (1) -
OpenSSL
:: Digest :: SHA256 (1) -
OpenSSL
:: Digest :: SHA384 (1) -
OpenSSL
:: Digest :: SHA512 (1) -
OpenSSL
:: HMAC (1) -
OpenSSL
:: Netscape :: SPKI (2) -
OpenSSL
:: OCSP :: BasicResponse (1) -
OpenSSL
:: OCSP :: CertificateId (1) -
OpenSSL
:: OCSP :: Request (2) -
OpenSSL
:: OCSP :: Response (3) -
OpenSSL
:: PKCS12 (1) -
OpenSSL
:: PKCS7 (3) -
OpenSSL
:: PKCS7 :: RecipientInfo (1) -
OpenSSL
:: PKCS7 :: SignerInfo (1) -
OpenSSL
:: PKey :: DH (3) -
OpenSSL
:: PKey :: DSA (4) -
OpenSSL
:: PKey :: EC (4) -
OpenSSL
:: PKey :: EC :: Group (2) -
OpenSSL
:: PKey :: EC :: Point (3) -
OpenSSL
:: PKey :: RSA (13) -
OpenSSL
:: SSL :: SSLContext (9) -
OpenSSL
:: SSL :: SSLServer (1) -
OpenSSL
:: SSL :: SSLSocket (5) -
OpenSSL
:: SSL :: Session (1) -
OpenSSL
:: X509 :: Attribute (2) -
OpenSSL
:: X509 :: CRL (2) -
OpenSSL
:: X509 :: Certificate (2) -
OpenSSL
:: X509 :: Extension (2) -
OpenSSL
:: X509 :: ExtensionFactory (5) -
OpenSSL
:: X509 :: Name (5) -
OpenSSL
:: X509 :: Request (2) -
OpenSSL
:: X509 :: Revoked (1) -
OpenSSL
:: X509 :: Store (5) -
OpenSSL
:: X509 :: StoreContext (3) -
WEBrick
:: GenericServer (1)
モジュール
-
OpenSSL
:: ASN1 (45)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1) - <=> (1)
- ASN1 (1)
- BMPString (2)
- BitString (2)
- Boolean (2)
- Cipher (1)
-
DEFAULT
_ OBJECT _ TYPE (1) - DH (1)
- DSA (1)
- Digest (1)
- Enumerated (2)
- ExtensionFactory (1)
- GeneralString (2)
- GeneralizedTime (2)
- GraphicString (2)
- IA5String (2)
- ISO64String (2)
- Integer (2)
-
NEWS for Ruby 2
. 0 . 0 (1) -
NEWS for Ruby 2
. 1 . 0 (1) -
NEWS for Ruby 2
. 2 . 0 (1) -
NEWS for Ruby 2
. 3 . 0 (1) -
NEWS for Ruby 2
. 4 . 0 (1) -
NEWS for Ruby 2
. 5 . 0 (1) - Null (2)
- NumericString (2)
-
OBJECT
_ TYPE _ TEMPLATE (1) - OCSP (1)
- ObjectId (2)
- OctetString (2)
- OptionParser (1)
- PKey (1)
- PrintableString (2)
- RSA (1)
- Request (1)
- SSLServer (1)
- SSLSocket (1)
- Sequence (2)
- Set (2)
- T61String (2)
- UTCTime (2)
- UTF8String (2)
- UniversalString (2)
- VideotexString (2)
-
bit
_ set? (1) -
builtin
_ curves (1) - ciphers (1)
-
clear
_ bit! (1) -
client
_ cert _ cb= (1) - cmp (1)
- context (1)
- create (1)
- crl= (1)
- d= (1)
- decode (1)
- dmp1= (1)
- dmq1= (1)
-
drb
/ ssl (1) - e= (1)
- error= (1)
- flags= (1)
- io (1)
- iqmp= (1)
-
issuer
_ certificate= (1) - ln (1)
- load (1)
-
long
_ name (1) -
mod
_ add (1) -
mod
_ exp (1) -
mod
_ mul (1) -
mod
_ sub (1) - n= (1)
-
net
/ imap (1) -
num
_ bits (1) - oid (1)
- p= (1)
-
prime
_ fasttest? (1) -
public
_ key? (1) - purpose= (1)
- q= (1)
- register (1)
-
renegotiation
_ cb= (1) -
ruby 1
. 8 . 2 feature (1) -
ruby 1
. 8 . 3 feature (1) -
ruby 1
. 8 . 4 feature (1) -
session
_ new _ cb (1) -
session
_ new _ cb= (1) -
set
_ bit! (1) -
set
_ params (1) -
short
_ name (1) - sn (1)
-
ssl
_ version= (2) -
subject
_ certificate= (1) -
subject
_ request= (1) -
to
_ bn (1) -
to
_ io (1) -
to
_ s (1) - ucmp (1)
- verify (3)
-
write
_ smime (1)
検索結果
先頭5件
- OpenSSL
:: ASN1 . # UniversalString(value , tag , tagging , tag _ class) -> OpenSSL :: ASN1 :: UniversalString - OpenSSL
:: ASN1 . # VideotexString(value , tag , tagging , tag _ class) -> OpenSSL :: ASN1 :: VideotexString - OpenSSL
:: ASN1 . # Enumerated(value) -> OpenSSL :: ASN1 :: Enumerated - OpenSSL
:: ASN1 . # Enumerated(value , tag , tagging , tag _ class) -> OpenSSL :: ASN1 :: Enumerated - OpenSSL
:: SSL :: SSLSocket # context -> OpenSSL :: SSL :: SSLContext
-
OpenSSL
:: ASN1 . # UniversalString(value , tag , tagging , tag _ class) -> OpenSSL :: ASN1 :: UniversalString (33346.0) -
ASN.1 の UniversalString 型の値を表現する Ruby のオブジェクトを 生成します。
ASN.1 の UniversalString 型の値を表現する Ruby のオブジェクトを
生成します。
OpenSSL::ASN1::UniversalString.new と同じです。
@param value ASN.1 値を表す Ruby のオブジェクト(文字列)
@param tag タグ番号
@param tagging タグ付けの方法(:IMPLICIT もしくは :EXPLICIT)
@param tag_class タグクラス(:UNIVERSAL, :CONTEXT_SPECIFIC, :APPLICATION, :PRIVATE のいずれか) -
OpenSSL
:: ASN1 . # VideotexString(value , tag , tagging , tag _ class) -> OpenSSL :: ASN1 :: VideotexString (33346.0) -
ASN.1 の VideotexString 型の値を表現する Ruby のオブジェクトを 生成します。
ASN.1 の VideotexString 型の値を表現する Ruby のオブジェクトを
生成します。
OpenSSL::ASN1::VideotexString.new と同じです。
@param value ASN.1 値を表す Ruby のオブジェクト(文字列)
@param tag タグ番号
@param tagging タグ付けの方法(:IMPLICIT もしくは :EXPLICIT)
@param tag_class タグクラス(:UNIVERSAL, :CONTEXT_SPECIFIC, :APPLICATION, :PRIVATE のいずれか) -
OpenSSL
:: ASN1 . # Enumerated(value) -> OpenSSL :: ASN1 :: Enumerated (33343.0) -
ASN.1 の Enumerated 型の値を表現する Ruby のオブジェクトを 生成します。
ASN.1 の Enumerated 型の値を表現する Ruby のオブジェクトを
生成します。
OpenSSL::ASN1::Enumerated.new と同じです。
@param value ASN.1 値を表す Ruby のオブジェクト(0以上の整数)
@param tag タグ番号
@param tagging タグ付けの方法(:IMPLICIT もしくは :EXPLICIT)
@param tag_class タグクラス(:UNIVERSAL, :CONTEXT_SPECIFIC, :APPLICATION, :PRIVATE のいずれか) -
OpenSSL
:: ASN1 . # Enumerated(value , tag , tagging , tag _ class) -> OpenSSL :: ASN1 :: Enumerated (33343.0) -
ASN.1 の Enumerated 型の値を表現する Ruby のオブジェクトを 生成します。
ASN.1 の Enumerated 型の値を表現する Ruby のオブジェクトを
生成します。
OpenSSL::ASN1::Enumerated.new と同じです。
@param value ASN.1 値を表す Ruby のオブジェクト(0以上の整数)
@param tag タグ番号
@param tagging タグ付けの方法(:IMPLICIT もしくは :EXPLICIT)
@param tag_class タグクラス(:UNIVERSAL, :CONTEXT_SPECIFIC, :APPLICATION, :PRIVATE のいずれか) -
OpenSSL
:: SSL :: SSLSocket # context -> OpenSSL :: SSL :: SSLContext (33340.0) -
SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。
SSLSocket オブジェクトを生成する時に渡されたコンテクストを返します。
@see OpenSSL::SSL::SSLSocket.new -
OpenSSL
:: PKey :: RSA # d=(new _ d) (33322.0) -
private exponent を設定します。
private exponent を設定します。
通常このメソッドで値を変更することはありません。
よく考えて必要な場合のみ利用してください。
@param new_d 設定する整数値 -
OpenSSL
:: PKey :: RSA # dmp1=(new _ dmp1) (33322.0) -
鍵の exponent1 を設定します。
鍵の exponent1 を設定します。
通常このメソッドで値を変更することはありません。
よく考えて必要な場合のみ利用してください。
@param new_dmp1 設定する整数 -
OpenSSL
:: PKey :: RSA # dmq1=(new _ dmq1) (33322.0) -
鍵の exponent2 を設定します。
鍵の exponent2 を設定します。
通常このメソッドで値を変更することはありません。
よく考えて必要な場合のみ利用してください。
@param new_dmq1 設定する整数 -
OpenSSL
:: PKey :: RSA # e=(new _ e) (33322.0) -
鍵の public exponent を変更します。
鍵の public exponent を変更します。
通常このメソッドで値を変更することはありません。
よく考えて必要な場合のみ利用してください。
@param new_e 設定する public exponent の整数値 -
OpenSSL
:: PKey :: RSA # iqmp=(new _ iqmp) (33322.0) -
鍵の coefficient を設定します。
鍵の coefficient を設定します。
通常このメソッドで値を変更することはありません。
よく考えて必要な場合のみ利用してください。
@param new_iqmp 設定する整数値 -
OpenSSL
:: PKey :: RSA # n=(new _ n) (33322.0) -
鍵の modulus を設定します。
鍵の modulus を設定します。
通常このメソッドで値を変更することはありません。
よく考えて必要な場合のみ利用してください。
@param new_n 設定する整数値 -
OpenSSL
:: PKey :: RSA # p=(new _ p) (33322.0) -
鍵の1つめの素数を設定します。
鍵の1つめの素数を設定します。
通常このメソッドで値を変更することはありません。
よく考えて必要な場合のみ利用してください。
@param new_p 設定する素数 -
OpenSSL
:: PKey :: RSA # q=(new _ q) (33322.0) -
鍵の2つめの素数を設定します。
鍵の2つめの素数を設定します。
通常このメソッドで値を変更することはありません。
よく考えて必要な場合のみ利用してください。
@param new_q 設定する素数 -
OpenSSL
:: BN # <=>(other) -> -1 | 0 | 1 (33289.0) -
自身と other を比較し、自身が小さいときには -1、 等しいときには 0、大きいときには 1 を返します。
自身と other を比較し、自身が小さいときには -1、
等しいときには 0、大きいときには 1 を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new(5) <=> 5 # => 0
OpenSSL::BN.new(5) <=> OpenSSL::BN.new(9) # => -1
OpenSSL::BN.new(5) <=> OpenSSL::BN.new(5) # => 0
OpenSSL::BN.new(5) <=> OpenSSL::BN.new(-5) # => 1
//}
@param othe... -
OpenSSL
:: BN # cmp(other) -> -1 | 0 | 1 (33289.0) -
自身と other を比較し、自身が小さいときには -1、 等しいときには 0、大きいときには 1 を返します。
自身と other を比較し、自身が小さいときには -1、
等しいときには 0、大きいときには 1 を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new(5) <=> 5 # => 0
OpenSSL::BN.new(5) <=> OpenSSL::BN.new(9) # => -1
OpenSSL::BN.new(5) <=> OpenSSL::BN.new(5) # => 0
OpenSSL::BN.new(5) <=> OpenSSL::BN.new(-5) # => 1
//}
@param othe... -
OpenSSL
:: BN # ucmp(other) -> -1 | 0 | 1 (33289.0) -
自身と other の絶対値を比較し、自身の絶対値が小さいときには -1、 等しいときには 0、 大きいときには 1 を返します。
自身と other の絶対値を比較し、自身の絶対値が小さいときには -1、
等しいときには 0、 大きいときには 1 を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new(-5).ucmp(5) # => 0
OpenSSL::BN.new(5).ucmp(OpenSSL::BN.new(-9)) # => -1
OpenSSL::BN.new(-5).ucmp(OpenSSL::BN.new(5)) # => 0
OpenSSL::BN.new(-5).ucmp(OpenSSL::BN.new(2)) # =>... -
OpenSSL
:: OCSP (33253.0) -
OCSP(Online Certificate Status Protocol)を取り扱うための モジュールです。OCSP は 2560 で定義されています。
OCSP(Online Certificate Status Protocol)を取り扱うための
モジュールです。OCSP は 2560 で定義されています。
このモジュールは OCSP のリクエストとレスポンスを取り扱う
機能を持っています。
OCSP レスポンダと通信する機能はありません。ユーザが例えば
OCSP over http などを実装する必要があります。
=== 例
OCSP レスポンダにリクエストを送ってその返答を表示する
require 'openssl'
require 'net/http'
# ...
subject # 問い合わせ対象の証明書(Ce... -
OpenSSL
:: PKCS7 . write _ smime(p7sig , data=nil , flags = 0) -> String (33253.0) -
PKCS7 オブジェクトから S/MIME 形式の文字列を返します。
PKCS7 オブジェクトから S/MIME 形式の文字列を返します。
data には署名対象のデータを渡します。
data に nil を渡すと OpenSSL::PKCS7#data で得られる
文字列を用います。通常は nil を渡してください。
flags には以下の定数の or を渡します。
* OpenSSL::PKCS7::DETACHED
クリア署名をします。これは OpenSSL::PKCS7.sign で
OpenSSL::PKCS7::DETACHED を渡した場合にのみ意味を持ちます。
* OpenSSL::PKCS7::TEXT
... -
OpenSSL
:: PKey :: RSA (33253.0) -
RSA 暗号鍵のクラスです。
RSA 暗号鍵のクラスです。
通常このクラスで利用するのは、
OpenSSL::PKey::RSA.generate, OpenSSL::PKey::RSA.new,
OpenSSL::PKey::RSA#public?, OpenSSL::PKey::RSA#private?,
OpenSSL::PKey::RSA#public_key, OpenSSL::PKey::RSA#to_text,
OpenSSL::PKey::RSA#to_pem, OpenSSL::PKey::RSA#to_der
のいずれかでしょう。これ以外のメソッドを利用するときは
RSA についてよく理解し、必要な場... -
OpenSSL
:: X509 :: Request (33235.0) -
X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす クラスです。
X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす
クラスです。
X.509 CSR については 2986 などを参照してください。
=== 例
CSR を生成する例。
require 'openssl'
# ファイルから秘密鍵を読み込む
rsa = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
# 新しい CSR オブジェクトを生成
csr = OpenSSL::X509::Request.new
# DN を生成
name = OpenSSL::X50... -
OpenSSL
:: X509 :: Store # purpose=(purpose) (33217.0) -
証明書の使用目的を設定します。
証明書の使用目的を設定します。
以下の定数値のうちいずれか1つを渡します。
* OpenSSL::X509::PURPOSE_ANY
* OpenSSL::X509::PURPOSE_CRL_SIGN
* OpenSSL::X509::PURPOSE_NS_SSL_SERVER
* OpenSSL::X509::PURPOSE_SMIME_ENCRYPT
* OpenSSL::X509::PURPOSE_SMIME_SIGN
* OpenSSL::X509::PURPOSE_SSL_CLIENT
* OpenSSL::X509::PURPOSE_SSL_SERVE... -
OpenSSL
:: X509 :: ExtensionFactory (33211.0) -
OpenSSL::X509::Extension を簡便に生成するための クラスです。
OpenSSL::X509::Extension を簡便に生成するための
クラスです。
例
require 'openssl'
# ca_cert: CA の証明書オブジェクト
# req: CSR オブジェクト
# newcert: 新たに生成する証明書のオブジェクト
ca_cert = OpenSSL::X509::Certificate.new(File.read('ca_cert.pem'))
req = OpenSSL::X509::Request.new(File.read('req.pem'))
newcert = OpenSSL::X509::C... -
OpenSSL
:: X509 :: StoreContext # error=(error) (33199.0) -
エラーコードを設定します。
エラーコードを設定します。
OpenSSL::X509::StoreContext#verify を呼びだし、
証明書チェインの各証明書を検証した
コールバック(OpenSSL::X509::Store#verify_callback=)が呼び出され、
StoreContext オブジェクトが渡されますが、このメソッドでエラーコードを
設定し、コールバックの返り値を false にすると、最終的なエラーコードが
ここで設定したものになります。OpenSSL::X509::StoreContext#error_string
もその値に応じた文字列が返るようになります。
例:
requi... -
OpenSSL
:: SSL :: SSLContext # client _ cert _ cb=(cb) (33193.0) -
OpenSSL::SSL::SSLContext#cert= でクライアント証明書を セットしていなかった場合にサーバからクライアント証明書の要求が来たときに 呼びだされるコールバックオブジェクトを設定します。
OpenSSL::SSL::SSLContext#cert= でクライアント証明書を
セットしていなかった場合にサーバからクライアント証明書の要求が来たときに
呼びだされるコールバックオブジェクトを設定します。
コールバックに渡される引数は以下のように
proc{|sslsocket| ... }
1つで、利用している OpenSSL::SSL::SSLSocket
オブジェクトが渡されます。そのオブジェクトから必要な証明書を見つけるのに
必要な情報を取得します。
コールバックはクライアント証明書(OpenSSL::X509::Certificate)
とその秘密鍵(OpenSSL::P... -
OpenSSL
:: ASN1 :: ObjectId . register(oid , short _ name , long _ name) -> true (33157.0) -
オブジェクト識別子に対応する名前(short name と long name)を OpenSSLの内部テーブルに登録します。
オブジェクト識別子に対応する名前(short name と long name)を
OpenSSLの内部テーブルに登録します。
登録した名前は OpenSSL::X509::Extension などで利用できるようになります。
例:
require "openssl"
OpenSSL::ASN1::ObjectId.register(
"2.5.29.9", "subjectDirAttrs", "X509v3 Subject Directory Attributes")
p OpenSSL::ASN1::ObjectId.new("2.5.29.9").long_n... -
OpenSSL
:: BN # prime _ fasttest?(checks=nil , vtrivdiv=true) -> bool (33145.0) -
自身が素数であるなら true を返します。
自身が素数であるなら true を返します。
vtrivdiv が真である場合には、 Miller-Rabin 法での
判定の前に小さな素数で割ることで素数か否かを
調べます。自身が小さな素数である場合にはこの手順
により素数ではないと誤った返り値を返します。
Miller-Rabin 法により確率的に判定します。
checksで指定した回数だけ繰り返します。
checksがnilである場合は OpenSSL が適切な
回数を判断します。
//emlist[][ruby]{
require 'openssl'
# 181 は 「小さな素数」である
OpenSSL::BN.new("18... -
OpenSSL
:: SSL :: SSLServer (33145.0) -
SSL サーバーのためのクラス。
SSL サーバーのためのクラス。
TCPServer をラップするクラスで、TCPServer で接続した
ソケットを OpenSSL::SSL::SSLSocket でラップする機能を持ちます。
おおよそ TCPServer と同様のメソッドを持ちます。
基本的には SSL サーバを簡単に実装するためのクラスであり、
これを利用せずとも SSL サーバを実装することは可能です。
以下はクライアントからの入力を標準出力に出力するだけのサーバです。
require 'socket'
require 'openssl'
include OpenSSL
ctx =... -
OpenSSL
:: BN # num _ bits -> Integer (33127.0) -
自身を表現するのに使っているビット数を返します。
自身を表現するのに使っているビット数を返します。
符号は無視されます。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("127").num_bits # => 7
OpenSSL::BN.new("-127").num_bits # => 7
OpenSSL::BN.new("128").num_bits # => 8
//} -
OpenSSL
:: BN # to _ s(base=10) -> String (33127.0) -
自身を表す文字列を返します。
自身を表す文字列を返します。
base で、変換方法(基数)を指定します。
デフォルトは 10 で、他に 16, 2, 0 を指定できます。
10 10進数の表記
16 16進数の表記
2 big-endianの符号無し整数のバイナリ列
0 MPI形式の文字列(バイト列)
@param base 文字列への変換方法(基数)
@raise OpenSSL::BNError 変換に失敗した場合に発生します
//emlist[][ruby]{
require 'openssl'
p 10.to_bn.to_s # => "10"
p (-5).to_bn.... -
OpenSSL
:: PKey :: DH (33127.0) -
Diffie-Hellman 鍵共有クラス
Diffie-Hellman 鍵共有クラス
Diffie-Hellman 鍵共有プロトコルは署名ができないため、
OpenSSL::PKey::PKey#sign や OpenSSL::PKey::PKey#verify
を呼び署名や署名の検証を行おうとすると例外
OpenSSL::PKey::PKeyError が発生します。
Diffie-Hellman はこのライブラリでは基本的には鍵共有にしか利用できません。
=== 例
鍵共有の例。
require 'openssl'
# パラメータの生成
dh = OpenSSL::PKey::DH.generate(10... -
OpenSSL
:: PKey :: PKey (33127.0) -
公開鍵暗号のための抽象クラスです。
公開鍵暗号のための抽象クラスです。
以下のサブクラスを持ちます。
* OpenSSL::PKey::RSA
* OpenSSL::PKey::DSA
* OpenSSL::PKey::DH
* OpenSSL::PKey::EC
例:
require "openssl"
# 署名用の鍵を新規作成
dsa512 = OpenSSL::PKey::DSA.new(512)
data = 'hoge'
# 署名
sign = dsa512.sign("dss1", data)
# 署名の検証
p dsa512.verify(dss1, sign,... -
OpenSSL
:: X509 :: Store # verify(cert , chain = nil) -> bool (33127.0) -
証明書を証明書ストアに存在する CA 証明書で検証します。
証明書を証明書ストアに存在する CA 証明書で検証します。
chain には検証したい証明書の証明書チェイン全体を
OpenSSL::X509::Certificate の配列で渡します。
検証に成功した場合は true を、失敗した場合は false を返します。
このメソッドをブロック付きで呼び出すと、そのブロックが
検証をフィルタするコールバックと見做されます。このコールバックについては
OpenSSL::X509::Store#verify_callback= を参照してください。
内部では OpenSSL::X509::StoreContext.new と
OpenSSL:... -
OpenSSL
:: X509 :: Store # verify(cert , chain = nil) {|ok , ctx| . . . } -> bool (33127.0) -
証明書を証明書ストアに存在する CA 証明書で検証します。
証明書を証明書ストアに存在する CA 証明書で検証します。
chain には検証したい証明書の証明書チェイン全体を
OpenSSL::X509::Certificate の配列で渡します。
検証に成功した場合は true を、失敗した場合は false を返します。
このメソッドをブロック付きで呼び出すと、そのブロックが
検証をフィルタするコールバックと見做されます。このコールバックについては
OpenSSL::X509::Store#verify_callback= を参照してください。
内部では OpenSSL::X509::StoreContext.new と
OpenSSL:... -
OpenSSL
:: BN # bit _ set?(n) -> bool (33109.0) -
自身の n ビット目が立っているなら true を返します。
自身の n ビット目が立っているなら true を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("129").bit_set?(0) # => true
OpenSSL::BN.new("129").bit_set?(1) # => false
//}
@param n 調べるビットの位置
@see OpenSSL::set_bit! -
OpenSSL
:: BN # set _ bit!(n) -> self (33109.0) -
自身の n ビット目を1にします。
自身の n ビット目を1にします。
//emlist[][ruby]{
require 'openssl'
a = OpenSSL::BN.new("128")
a.set_bit!(0)
a # => 129
//}
@param n 1にするビットの位置
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::clear_bit!, OpenSSL::bit_set? -
OpenSSL
:: PKey :: EC # public _ key? -> bool (33109.0) -
EC オブジェクトが公開鍵を保持していれば真を返します。
EC オブジェクトが公開鍵を保持していれば真を返します。
OpenSSL::PKey::RSA や OpenSSL::PKey::DSA と
異なり、EC オブジェクトが公開鍵を含まない場合が存在します。
例えば、OpenSSL::PKey::EC.new でパラメータとなる群のみを
指定して EC オブジェクトを作った場合は、公開鍵も秘密鍵も
保持していません。この場合 OpenSSL::PKey::EC#generate_key で
鍵を生成するまで、その状態のままです。
このメソッドを呼ぶ前に OpenSSL::Random の各モジュール関数に
よって乱数が適切に初期化されている必... -
OpenSSL
:: X509 :: Store # flags=(flags) (33109.0) -
CRL に関するフラグを設定します。
CRL に関するフラグを設定します。
以下の定数から必要なものを選んで OR 取り、渡します。
* OpenSSL::X509::V_FLAG_CRL_CHECK
* OpenSSL::X509::V_FLAG_CRL_CHECK_ALL
このフラグは OpenSSL::X509::Store#verify で検証する場合に利用されます。
OpenSSL::X509::StoreContext.new で証明書ストアコンテキストを
生成する場合にはそのコンテキストにフラグがコピーされます。
デフォルトではフラグは設定されていません。
@param flags 設定するフラグ(整... -
OpenSSL
:: X509 :: StoreContext # verify -> bool (33109.0) -
証明書を検証します。
証明書を検証します。
OpenSSL::X509::StoreContext.new で設定した証明書を検証します。
検証に成功した場合は true を、失敗した場合は false を返します。
検証の詳細な情報は
* OpenSSL::X509::StoreContext#error
* OpenSSL::X509::StoreContext#error_string
* OpenSSL::X509::StoreContext#chain
* OpenSSL::X509::StoreContext#current_crl -
OpenSSL
:: BN # clear _ bit!(n) -> self (33091.0) -
自身の n ビット目を0にします。
自身の n ビット目を0にします。
//emlist[][ruby]{
require 'openssl'
a = OpenSSL::BN.new("129")
a.clear_bit!(0)
a # => 128
//}
@param n 0にするビットの位置
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::set_bit! -
OpenSSL
:: Digest (33091.0) -
ハッシュ関数のためのインターフェースを提供するクラスです。
ハッシュ関数のためのインターフェースを提供するクラスです。
このインターフェースには2通りの利用法が存在します。
一方は文字列から直接ハッシュを計算する (OpenSSL::Digest.digest,
Digest::Instance#hexdigest) 方法です。短い文字列の
ダイジェストを取るときにはこちらを使えばよいでしょう。
もう一つはダイジェストオブジェクトを作成して、文字列を順次
OpenSSL::Digest#update で渡すことでダイジェストを計算
します。大きなファイルのハッシュ値を計算する場合などに
利用します。
例:
require 'openssl'... -
OpenSSL
:: SSL :: SSLSocket (33091.0) -
ソケットをラップして SSL での認証と暗号通信を実現するためのクラスです。
ソケットをラップして SSL での認証と暗号通信を実現するためのクラスです。
=== 例
SSL/TLS サーバに接続して write します。
require 'socket'
require 'openssl'
include OpenSSL
soc = TCPSocket.new('www.example.com', 443)
ssl = SSL::SSLSocket.new(soc)
ssl.connect
ssl.post_connection_check('www.example.com')
raise "verification er... -
OpenSSL
:: ASN1 :: ObjectId # ln -> String | nil (33073.0) -
オブジェクト識別子に対応する long name を返します。
オブジェクト識別子に対応する long name を返します。
例:
require "openssl"
oid = OpenSSL::ASN1::ObjectId.new("subjectAltName")
p oid.ln #=> "X509v3 Subject Alternative Name"
@see OpenSSL::ASN1::ObjectId#sn -
OpenSSL
:: ASN1 :: ObjectId # long _ name -> String | nil (33073.0) -
オブジェクト識別子に対応する long name を返します。
オブジェクト識別子に対応する long name を返します。
例:
require "openssl"
oid = OpenSSL::ASN1::ObjectId.new("subjectAltName")
p oid.ln #=> "X509v3 Subject Alternative Name"
@see OpenSSL::ASN1::ObjectId#sn -
OpenSSL
:: ASN1 :: ObjectId # oid -> String (33073.0) -
オブジェクト識別子のドット区切り数値を文字列で返します。
オブジェクト識別子のドット区切り数値を文字列で返します。
例:
require "openssl"
oid = OpenSSL::ASN1::ObjectId.new("subjectAltName")
p oid.oid #=> "2.5.29.17"
@raise OpenSSL::ASN1::ASN1Error オブジェクト識別子名が未知である場合に発生します -
OpenSSL
:: ASN1 :: ObjectId # short _ name -> String | nil (33073.0) -
オブジェクト識別子に対応する short name を返します。
オブジェクト識別子に対応する short name を返します。
例:
require "openssl"
oid = OpenSSL::ASN1::ObjectId.new("subjectAltName")
p oid.sn #=> "subjectAltName"
@see OpenSSL::ASN1::ObjectId#ln -
OpenSSL
:: ASN1 :: ObjectId # sn -> String | nil (33073.0) -
オブジェクト識別子に対応する short name を返します。
オブジェクト識別子に対応する short name を返します。
例:
require "openssl"
oid = OpenSSL::ASN1::ObjectId.new("subjectAltName")
p oid.sn #=> "subjectAltName"
@see OpenSSL::ASN1::ObjectId#ln -
OpenSSL
:: PKey :: EC . builtin _ curves -> [[String , String]] (33073.0) -
組み込みの曲線の名前と、それに対する説明を文字列の配列ペアの配列で返します。
組み込みの曲線の名前と、それに対する説明を文字列の配列ペアの配列で返します。
例:
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"],
... -
OpenSSL
:: X509 :: Name :: DEFAULT _ OBJECT _ TYPE -> Integer (33073.0) -
属性値のデフォルトの ASN.1 の型です。
属性値のデフォルトの ASN.1 の型です。
OpenSSL::X509::Name.parse や OpenSSL::X509::Name.new で
template に指定されなかった属性はこの型であると仮定して処理されます。
OpenSSL::ASN1::UTF8STRING を返します。 -
OpenSSL
:: PKey :: DSA (33055.0) -
DSA 公開鍵暗号クラス
DSA 公開鍵暗号クラス
実際には、DSA は署名のためのアルゴリズムであり、暗号化はできません。
以下は、data に署名し、署名をもとに data を検証する簡単な例です。
require "openssl"
dsa512 = OpenSSL::PKey::DSA.new(512)
data = 'hoge'
sign = dsa512.sign('dss1', data)
p dsa512.verify('dss1', sign, data) -
OpenSSL
:: SSL :: SSLContext # ciphers -> [[String , String , Integer , Integer]] (33055.0) -
利用可能な共通鍵暗号の種類を配列で返します。
利用可能な共通鍵暗号の種類を配列で返します。
配列の各要素は以下のような配列です
[暗号方式の名前の文字列, 利用可能なSSL/TLSのバージョン文字列, 鍵長(ビット数), アルゴリズムのビット長]
例:
require 'openssl'
ctx = OpenSSL::SSL::SSLContext.new('TLSv1')
ctx.ciphers
# => [["DHE-RSA-AES256-SHA", "TLSv1/SSLv3", 256, 256],
# ["DHE-DSS-AES256-SHA", "TLSv1/SSLv3", 256, 256]... -
OpenSSL
:: SSL :: SSLContext # renegotiation _ cb=(cb) (33055.0) -
@todo
@todo
ハンドシェイク開始時に呼び出されるコールバックを設定します。
コールバックには OpenSSL::SSL::SSLSocket オブジェクトが
渡されます。
このコールバック内で何らかの例外が生じた場合には
以降のSSLの処理を停止します。
再ネゴシエーションのたびにこのコールバックが呼び出されるため、
何らかの理由で再ネゴシエーションを禁止したい場合などに利用できます。
nil を渡すとコールバックは無効になります。
以下の例は再ネゴシエーションを一切禁止します。
num_handshakes = 0
ctx.renegotiation_cb = lambd... -
OpenSSL
:: X509 :: ExtensionFactory # crl=(crl) (33055.0) -
自身に証明書失効リストオブジェクトを設定します。
自身に証明書失効リストオブジェクトを設定します。
@param crl 設定する証明書失効リスト(OpenSSL::X509::CRL)オブジェクト
@see OpenSSL::X509::ExtensionFactory.new -
OpenSSL
:: X509 :: ExtensionFactory # issuer _ certificate=(cert) (33055.0) -
自身に発行者(issuer)の証明書オブジェクトを設定します。
自身に発行者(issuer)の証明書オブジェクトを設定します。
@param cert 設定する証明書(OpenSSL::X509::Certificate)オブジェクト
@see OpenSSL::X509::ExtensionFactory.new -
OpenSSL
:: X509 :: ExtensionFactory # subject _ certificate=(name) (33055.0) -
自身に所有者(subject)の証明書オブジェクトを設定します。
自身に所有者(subject)の証明書オブジェクトを設定します。
@param cert 設定する証明書(OpenSSL::X509::Certificate)オブジェクト
@see OpenSSL::X509::ExtensionFactory.new -
OpenSSL
:: X509 :: ExtensionFactory # subject _ request=(req) (33055.0) -
自身に証明書署名要求オブジェクトを設定します。
自身に証明書署名要求オブジェクトを設定します。
@param req 設定する証明書署名要求(OpenSSL::X509::Request)オブジェクト
@see OpenSSL::X509::ExtensionFactory.new -
OpenSSL
:: X509 :: Name :: OBJECT _ TYPE _ TEMPLATE -> { String => Integer } (33055.0) -
属性型に対応する ASN.1の型を格納したハッシュです。
属性型に対応する ASN.1の型を格納したハッシュです。
OpenSSL::X509::Name.parse や OpenSSL::X509::Name.new
などでデフォルト値として使われます。
キーは属性型文字列で、ASN.1の型を表わす整数が対応します。
以下の文字列がキーです。
'C', 'countryName', 'serialNumber', 'dnQualifier',
'DC', 'domainComponent', 'emailAddress' -
OpenSSL
:: SSL :: SSLContext # ssl _ version=(ver) (33037.0) -
利用するプロトコルの種類を文字列もしくは シンボルで指定します。
利用するプロトコルの種類を文字列もしくは
シンボルで指定します。
OpenSSL::SSL::SSLContext.new で指定できるものと同じです。
@param ver 利用するプロトコルの種類 -
OpenSSL
:: SSL :: SSLSocket # io -> IO (33037.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new -
OpenSSL
:: SSL :: SSLSocket # to _ io -> IO (33037.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new -
Integer
# to _ bn -> OpenSSL :: BN (24496.0) -
Integer を同じ数を表す OpenSSL::BN のオブジェクトに 変換します。
Integer を同じ数を表す OpenSSL::BN のオブジェクトに
変換します。
//emlist[][ruby]{
require 'openssl'
pp 5.to_bn #=> #<OpenSSL::BN 5>
pp (-5).to_bn #=> #<OpenSSL::BN -5>
//}
なお、実装は、以下のようになっています。
//emlist[][ruby]{
class Integer
def to_bn
OpenSSL::BN::new(self)
end
end
//}
@see OpenSSL::BN.new, OpenSSL::... -
drb
/ ssl (397.0) -
DRb のプロトコルとして SSL/TLS 上で通信する drbssl が使えるようになります。
DRb のプロトコルとして SSL/TLS 上で通信する drbssl が使えるようになります。
require 'drb/ssl'
obj = ''
DRb::DRbServer.new( 'drbssl://localhost:10000',
obj,
{:SSLCertName => [["CN","fqdn.example.com"]]})
DRb::DRbServer.new や DRb.#start_service が
"drbssl" スキームを受け入れるようになります。
また、D... -
OptionParser (73.0)
-
コマンドラインのオプションを取り扱うためのクラスです。
コマンドラインのオプションを取り扱うためのクラスです。
オプションが指定された時に呼ばれるブロックを
OptionParser#on メソッドで登録していきます。
つまり、OptionParser を使う場合、基本的には
(1) OptionParser オブジェクト opt を生成する。
(2) オプションを取り扱うブロックを opt に登録する。
(3) opt.parse(ARGV) でコマンドラインを実際に parse する。
というような流れになります。
//emlist[][ruby]{
require "optparse"
ProgramConfig = Ha... -
net
/ imap (73.0) -
このライブラリは Internet Message Access Protocol (IMAP) の クライアントライブラリです。2060 を元に 実装されています。
このライブラリは Internet Message Access Protocol (IMAP) の
クライアントライブラリです。2060 を元に
実装されています。
=== IMAP の概要
IMAPを利用するには、まずサーバに接続し、
Net::IMAP#authenticate もしくは
Net::IMAP#login で認証します。
IMAP ではメールボックスという概念が重要です。
メールボックスは階層的な名前を持ちます。
各メールボックスはメールを保持することができます。
メールボックスの実装はサーバソフトウェアによって異なります。
Unixシステムでは、ディレクトリ階層上の
... -
Net
:: HTTP # ssl _ version=(ver) (55.0) -
利用するプロトコルの種類を指定します。
利用するプロトコルの種類を指定します。
OpenSSL::SSL::SSLContext.new で指定できるものと同じです。
@param ver 利用するプロトコルの種類(文字列 or シンボル)
@see Net::HTTP#ssl_version, OpenSSL::SSL::SSLContext#ssl_version=