別のキーワード
クラス
- Integer (1)
-
OpenSSL
:: ASN1 :: ObjectId (8) -
OpenSSL
:: BN (25) -
OpenSSL
:: Cipher (1) -
OpenSSL
:: Config (1) -
OpenSSL
:: PKCS7 (1) -
OpenSSL
:: PKey :: EC (1) -
OpenSSL
:: SSL :: SSLContext (3) -
OpenSSL
:: X509 :: Extension (2) -
OpenSSL
:: X509 :: ExtensionFactory (1) -
OpenSSL
:: X509 :: Name (7) -
OpenSSL
:: X509 :: StoreContext (1)
モジュール
-
OpenSSL
:: ASN1 (2) -
OpenSSL
:: OCSP (1)
キーワード
- <=> (1)
- >> (1)
- ASN1 (1)
- Cipher (1)
- Config (1)
- DH (1)
- DSA (1)
- Digest (1)
- ExtensionFactory (1)
- METHODS (1)
- OCSP (1)
- PKey (1)
-
RESPONSE
_ STATUS _ SIGREQUIRED (1) - RSA (1)
- Request (1)
- SSLServer (1)
- SSLSocket (1)
-
UNIVERSAL
_ TAG _ NAME (1) -
bit
_ set? (1) -
builtin
_ curves (1) - ciphers (2)
-
clear
_ bit! (1) -
client
_ cert _ cb= (1) - cmp (1)
- coerce (1)
- config= (1)
- decode (1)
- each (1)
- error= (1)
- ln (1)
-
long
_ name (1) - lshift! (1)
-
mask
_ bits! (1) -
mod
_ add (1) -
mod
_ exp (1) -
mod
_ inverse (1) -
mod
_ mul (1) -
mod
_ sub (1) - negative? (1)
- new (10)
-
num
_ bits (1) -
num
_ bytes (1) - oid (1)
- parse (1)
-
parse
_ openssl (1) -
pretty
_ print (1) -
prime
_ fasttest? (1) - register (1)
- rshift! (1)
-
set
_ bit! (1) -
short
_ name (1) - sn (1)
-
to
_ a (1) -
to
_ bn (1) -
to
_ s (2) - ucmp (1)
-
write
_ smime (1)
検索結果
先頭5件
-
OpenSSL
:: OCSP :: RESPONSE _ STATUS _ SIGREQUIRED -> Integer (18307.0) -
OpenSSL::OCSP::Response#status のステータスコードで 、 サーバがクライアントにリクエストへの署名を要求していることを意味します。
...OpenSSL::OCSP::Response#status のステータスコードで 、
サーバがクライアントにリクエストへの署名を要求していることを意味します。
詳しくは 2560 2.3 を見てください。... -
OpenSSL
:: ASN1 . # decode(der) -> OpenSSL :: ASN1 :: ASN1Data (43.0) -
DER 表現の文字列を解析し、そこにエンコードされている ASN.1 の値を OpenSSL::ASN1::ASN1Data のサブクラスのインスタンスとして返します。
...DER 表現の文字列を解析し、そこにエンコードされている ASN.1 の値を
OpenSSL::ASN1::ASN1Data のサブクラスのインスタンスとして返します。
複数の ASN.1 の値が含まれている場合、先頭の値だけを返します。
ASN.1 オブジェクトが......-e '
require "openssl"
require "pp"
pem = File.read(ARGV[0])
cert = OpenSSL::X509::Certificate.new(pem)
pp OpenSSL::ASN1.decode(cert.to_der)
' mycert.pem
#<OpenSSL::ASN1::Sequence:0x814e9fc
@tag=16,
@tag_class=:UNIVERSAL,
@tagging=nil,
@value=
[#<OpenSSL::ASN1::Sequence......@tag=16,
@tag_class=:UNIVERSAL,
@tagging=nil,
@value=
[#<OpenSSL::ASN1::ASN1Data:0x814f690
@tag=0,
@tag_class=:CONTEXT_SPECIFIC,
@value=
[#<OpenSSL::ASN1::Integer:0x814f6a4
@tag=2,
@tag_class=:UNIVERSAL,... -
OpenSSL
:: ASN1 :: UNIVERSAL _ TAG _ NAME -> [String] (43.0) -
タグ番号が表す ASN.1 オブジェクト名を収録した配列です。
...例:
require 'openssl'
p OpenSSL::ASN1::UNIVERSAL_TAG_NAME[0] # => "EOC"
p OpenSSL::ASN1::UNIVERSAL_TAG_NAME[12] # => "UTF8STRING"
ASN.1 オブジェクトのタグ番号を表す定数が以下のように定義されています。
require 'openssl'
p OpenSSL::ASN1::UTF8STRING # =>... -
OpenSSL
:: OCSP (43.0) -
OCSP(Online Certificate Status Protocol)を取り扱うための モジュールです。OCSP は 2560 で定義されています。
...示する
require 'openssl'
require 'net/http'
# ...
subject # 問い合わせ対象の証明書(Certificate オブジェクト)
issuer # subject の発行者の証明書(Certificate オブジェクト)
store # 信頼している証明書ストア
cid = OpenSSL::OCSP::CertificateId.new......issuer)
req = OpenSSL::OCSP::Request.new
req.add_certid(cid)
req.add_nonce
http = Net::HTTP.new('ocsp.example.com', 80)
httpres = http.post("/", req.to_der, 'content-type' => 'application/ocsp-request')
raise "HTTP error" if !httpres.kind_of?(Net::HTTPOK)
res = OpenSSL::OCSP::Respon......se.new(httpres.body)
puts "Response status: #{res.status_string}"
exit if res.status != OpenSSL::OCSP::RESPONSE_STATUS_SUCCESSFUL
basic_resp = res.basic
raise "nonce error" unless [-1, 1].include?(req.check_nonce(basic_resp))
unless basic_resp.verify([], store)
puts "verify respons... -
OpenSSL
:: SSL :: SSLServer (43.0) -
SSL サーバーのためのクラス。
...SSL サーバーのためのクラス。
TCPServer をラップするクラスで、TCPServer で接続した
ソケットを OpenSSL::SSL::SSLSocket でラップする機能を持ちます。
おおよそ TCPServer と同様のメソッドを持ちます。
基本的には SSL サーバを簡単......。
以下はクライアントからの入力を標準出力に出力するだけのサーバです。
require 'socket'
require 'openssl'
include OpenSSL
ctx = SSL::SSLContext.new()
ctx.cert = X509::Certificate.new(File.read('cert.pem'))
ctx.key = PKey::RSA.new(File.read('privke... -
OpenSSL
:: SSL :: SSLSocket (43.0) -
ソケットをラップして SSL での認証と暗号通信を実現するためのクラスです。
...。
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 error" if ssl.verify_result != OpenSSL::X509::V_OK
ssl.write('hoge')
p... -
Integer
# to _ bn -> OpenSSL :: BN (25.0) -
Integer を同じ数を表す OpenSSL::BN のオブジェクトに 変換します。
...す 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::n......ew(self)
end
end
//}
@see OpenSSL::BN.new, OpenSSL::BN#to_i... -
OpenSSL
:: ASN1 (25.0) -
ASN.1(Abstract Syntax Notation One) のデータを取り扱うためのモジュールです。
...ASN.1(Abstract Syntax Notation One)
のデータを取り扱うためのモジュールです。
OpenSSLで証明書などを取り扱うのに必要になります。
このモジュールには、ASN.1関連のモジュール関数や定数、
ASN.1 のデータ型に対応するクラスが定......において、
ASN.1 のデータ型は OpenSSL::ASN1::ASN1Data および
そのサブクラスにマップされています。
ASN.1 の単純型(simple type)は OpenSSL::ASN1::Primitive の
各サブクラスに、構造型(structured type)は OpenSSL::ASN1::Constructive
の各サブクラス......タグクラスは UNIVERSAL です。
その値は OpenSSL::ASN1::ASN1Data#value で取り出せます。
単純型は通常の Ruby のオブジェクト、構造型は配列
UNIVERSAL以外のタグクラスを付けられた型は、
OpenSSL::ASN1::ASN1Data に対応します。UNIVERSAL以外... -
OpenSSL
:: ASN1 :: ObjectId # ln -> String | nil (25.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 (25.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 (25.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 (25.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 (25.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 . new(value) -> OpenSSL :: ASN1 :: ObjectId (25.0) -
ASN.1 のオブジェクト識別子を表わす OpenSSL::ASN1::ObjectId の オブジェクトを生成します。
...す OpenSSL::ASN1::ObjectId の
オブジェクトを生成します。
value としては、ドット区切り数字表記、short name、long name の文字列の
をいずれかを渡します。
value 以外の引数を省略した場合はタグクラスは :UNIVERSAL、
タグ は OpenSSL::A......SN1::OBJECT となります。
例:
require "openssl"
include OpenSSL
p ASN1::ObjectId.new("1.2.840.10040.4.3").long_name # => "dsaWithSHA1"
p ASN1::ObjectId.new("dsaWithSHA1").oid # => "1.2.840.10040.4.3"
@param value ASN.1 オブジェクト識別子を表す文字列
@param... -
OpenSSL
:: ASN1 :: ObjectId . new(value , tag , tagging , tag _ class) -> OpenSSL :: ASN1 :: ObjectId (25.0) -
ASN.1 のオブジェクト識別子を表わす OpenSSL::ASN1::ObjectId の オブジェクトを生成します。
...す OpenSSL::ASN1::ObjectId の
オブジェクトを生成します。
value としては、ドット区切り数字表記、short name、long name の文字列の
をいずれかを渡します。
value 以外の引数を省略した場合はタグクラスは :UNIVERSAL、
タグ は OpenSSL::A......SN1::OBJECT となります。
例:
require "openssl"
include OpenSSL
p ASN1::ObjectId.new("1.2.840.10040.4.3").long_name # => "dsaWithSHA1"
p ASN1::ObjectId.new("dsaWithSHA1").oid # => "1.2.840.10040.4.3"
@param value ASN.1 オブジェクト識別子を表す文字列
@param... -
OpenSSL
:: ASN1 :: ObjectId . register(oid , short _ name , long _ name) -> true (25.0) -
オブジェクト識別子に対応する名前(short name と long name)を OpenSSLの内部テーブルに登録します。
...
OpenSSLの内部テーブルに登録します。
登録した名前は OpenSSL::X509::Extension などで利用できるようになります。
例:
require "openssl"
OpenSSL::ASN1::ObjectId.register(
"2.5.29.9", "subjectDirAttrs", "X509v3 Subject Directory Attributes")
p OpenSSL::AS......t Directory Attributes"
@param oid 登録する識別子(ドット区切り数字表記の文字列)
@param short_name short nameとして登録する文字列
@param long_name long nameとして登録する文字列
@raise OpenSSL::ASN1::ASN1Error 登録に失敗した場合に発生します。... -
OpenSSL
:: BN # <=>(other) -> -1 | 0 | 1 (25.0) -
自身と other を比較し、自身が小さいときには -1、 等しいときには 0、大きいときには 1 を返します。
...ときには 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 other 比較する整数
@r......aise TypeError 比較できないときに発生します。
@see OpenSSL::BN#ucmp... -
OpenSSL
:: BN # >>(other) -> OpenSSL :: BN (25.0) -
自身を other ビット右シフトした値を返します。
...自身を other ビット右シフトした値を返します。
//emlist[][ruby]{
require 'openssl'
bn = 2.to_bn
bn >> 1 # => #<OpenSSL::BN 1>
bn # => #<OpenSSL::BN 2>
//}
@param other シフトするビット数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#rshift!... -
OpenSSL
:: BN # bit _ set?(n) -> bool (25.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 # clear _ bit!(n) -> self (25.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
:: BN # cmp(other) -> -1 | 0 | 1 (25.0) -
自身と other を比較し、自身が小さいときには -1、 等しいときには 0、大きいときには 1 を返します。
...ときには 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 other 比較する整数
@r......aise TypeError 比較できないときに発生します。
@see OpenSSL::BN#ucmp... -
OpenSSL
:: BN # coerce(other) -> Array (25.0) -
自身と other が同じクラスになるよう、自身か other を変換し [other, self] という配列にして返します。
...換後オブジェクト] にして返します。
それ以外の場合は例外 TypeError を発生させます。
//emlist[][ruby]{
require 'openssl'
p 1.to_bn.coerce(2) # => [2, 1]
//}
@param other 変換の基準となるオブジェクト
@raise TypeError 変換に失敗した場合に発... -
OpenSSL
:: BN # lshift!(n) -> self (25.0) -
自身を n ビット左シフトします。 OpenSSL::BN#<<と異なり、破壊的メソッドです。
...す。
OpenSSL::BN#<<と異なり、破壊的メソッドです。
//emlist[][ruby]{
require 'openssl'
bn = 1.to_bn
bn.lshift!(2) # => #<OpenSSL::BN 4>
bn # => #<OpenSSL::BN 4>
//}
@param n シフトするビット数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#<<... -
OpenSSL
:: BN # mask _ bits!(n) -> self (25.0) -
自身を下位 n ビットでマスクし、破壊的に変更します。
...きい場合は例外 OpenSSL::BNError
が発生します。
//emlist[][ruby]{
require 'openssl'
bn = 0b1111_1111.to_bn
bn.mask_bits!(8)
p "%b" % bn # => "11111111"
bn.mask_bits!(3)
p "%b" % bn # => "111"
//}
@param n マスクするビット数
@raise OpenSSL::BNError 計算時... -
OpenSSL
:: BN # mod _ add(other , m) -> OpenSSL :: BN (25.0) -
(self + other) % m を返します。
...(self + other) % m を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("7").mod_add(OpenSSL::BN.new("3"), OpenSSL::BN.new("6")) # => 4
//}
@param other 和を取る数
@param m 剰余を取る数
@raise OpenSSL::BNError 計算時エラー... -
OpenSSL
:: BN # mod _ exp(other , m) -> OpenSSL :: BN (25.0) -
(self ** other) % m を返します。
...(self ** other) % m を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("7").mod_exp(OpenSSL::BN.new("3"), OpenSSL::BN.new("6")) # => 1
//}
@param other 指数
@param m 剰余を取る数
@raise OpenSSL::BNError 計算時エラー... -
OpenSSL
:: BN # mod _ inverse(m) -> OpenSSL :: BN (25.0) -
自身の mod m における逆元を返します。
...(self * r) % m == 1 となる r を返します。
存在しない場合は例外 OpenSSL::BNError が発生します。
//emlist[][ruby]{
require 'openssl'
p 3.to_bn.mod_inverse(5) # => 2
p (3 * 2) % 5 # => 1
//}
@param m mod を取る数
@raise OpenSSL::BNError 計算時エラー... -
OpenSSL
:: BN # mod _ mul(other , m) -> OpenSSL :: BN (25.0) -
(self * other) % m を返します。
...(self * other) % m を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("7").mod_mul(OpenSSL::BN.new("3"), OpenSSL::BN.new("6")) # => 3
//}
@param other 積を取る数
@param m 剰余を取る数
@raise OpenSSL::BNError 計算時エラー... -
OpenSSL
:: BN # mod _ sub(other , m) -> OpenSSL :: BN (25.0) -
(self - other) % m を返します。
...(self - other) % m を返します。
//emlist[][ruby]{
require 'openssl'
OpenSSL::BN.new("27").mod_sub(OpenSSL::BN.new("3"), OpenSSL::BN.new("5")) # => 4
//}
@param other 引く数
@param m 剰余を取る数
@raise OpenSSL::BNError 計算時エラー... -
OpenSSL
:: BN # negative? -> bool (25.0) -
自身が負である場合に true を返します。Ruby 2.5, OpenSSL 2.1.0 から利用できます。
...自身が負である場合に true を返します。Ruby 2.5, OpenSSL 2.1.0 から利用できます。
//emlist[][ruby]{
require 'openssl'
p 15.to_bn.negative? # => false
p 0.to_bn.negative? # => false
p (-5).to_bn.negative? # => true
//}... -
OpenSSL
:: BN # num _ bits -> Integer (25.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 # num _ bytes -> Integer (25.0) -
自身を表現するのに使っているバイト数を返します。
...自身を表現するのに使っているバイト数を返します。
//emlist[][ruby]{
require 'openssl'
p 0.to_bn.num_bytes # => 0
p 255.to_bn.num_bytes # => 1
p 256.to_bn.num_bytes # => 2
p 0b111_11111.to_bn.num_bytes # => 1
p 0b1000_00000.to_bn.num_bytes # => 2
//}... -
OpenSSL
:: BN # pretty _ print(pp) (25.0) -
Kernel.#pp でオブジェクトの内容を出力するときに、内部で呼ばれるメソッドです。
...Kernel.#pp でオブジェクトの内容を出力するときに、内部で呼ばれるメソッドです。
//emlist[][ruby]{
require 'openssl'
pp 5.to_bn #=> #<OpenSSL::BN 5>
pp (-5).to_bn #=> #<OpenSSL::BN -5>
//}
@param pp PP クラスのインスタンスオブジェクト... -
OpenSSL
:: BN # prime _ fasttest?(checks=nil , vtrivdiv=true) -> bool (25.0) -
自身が素数であるなら true を返します。
...繰り返します。
checksがnilである場合は OpenSSL が適切な
回数を判断します。
//emlist[][ruby]{
require 'openssl'
# 181 は 「小さな素数」である
OpenSSL::BN.new("181").prime_fasttest?(nil, true) # => false
OpenSSL::BN.new("181").prime_fasttest?(nil, false) # => tr......ue
//}
@param checks Miller-Robin法の繰り返しの回数
@param vtrivdiv 真なら小さな素数で割ることでの素数判定を試みます
@raise OpenSSL::BNError 判定時にエラーが発生
@see OpenSSL::BN#prime?... -
OpenSSL
:: BN # rshift!(n) -> self (25.0) -
自身を n ビット右シフトします。 [[m:OpenSSL::BN#>>]と異なり、破壊的メソッドです。
...[[m:OpenSSL::BN#>>]と異なり、破壊的メソッドです。
//emlist[][ruby]{
require 'openssl'
bn = 8.to_bn
bn.rshift!(1) # => #<OpenSSL::BN 4>
bn # => #<OpenSSL::BN 4>
//}
@param n シフトするビット数
@raise OpenSSL::BNError 計算時エラー
@see OpenSSL::BN#>>... -
OpenSSL
:: BN # set _ bit!(n) -> self (25.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
:: BN # to _ s(base=10) -> String (25.0) -
自身を表す文字列を返します。
...列
0 MPI形式の文字列(バイト列)
@param base 文字列への変換方法(基数)
@raise OpenSSL::BNError 変換に失敗した場合に発生します
//emlist[][ruby]{
require 'openssl'
p 10.to_bn.to_s # => "10"
p (-5).to_bn.to_s # => "-5"
p 0.to_bn.to_s(16) # => "0"
p 9.to_......o_s(2) # => "\a"
p 0.to_bn.to_s(0) # => "\x00\x00\x00\x00"
p 6.to_bn.to_s(0) # => "\x00\x00\x00\x01\x06"
p 7.to_bn.to_s(0) # => "\x00\x00\x00\x01\a"
//}
反対に、文字列から OpenSSL::BN クラスのインスタンスを作るには
OpenSSL::BN.new を用います。
@see OpenSSL::BN.new... -
OpenSSL
:: BN # ucmp(other) -> -1 | 0 | 1 (25.0) -
自身と other の絶対値を比較し、自身の絶対値が小さいときには -1、 等しいときには 0、 大きいときには 1 を返します。
...には 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)) # => 1
//}
@param other 比較する整......数
@raise TypeError 比較できないときに発生します。
@see OpenSSL::BN#cmp... -
OpenSSL
:: BN . new(str , base=10) -> OpenSSL :: BN (25.0) -
文字列を多倍長整数オブジェクト(OpenSSL::BN)を生成します。
...文字列を多倍長整数オブジェクト(OpenSSL::BN)を生成します。
base で、変換方法(基数)を指定します。
デフォルトは 10 で、他に 16, 2, 0 を指定できます。
10 引数の文字列を 10進数とみなして、変換します。
16 引数の文字......{
require 'openssl'
OpenSSL::BN.new("-241") # => -241
OpenSSL::BN.new("ff00",16) # => 65280
OpenSSL::BN.new("\x81",2) # => 129
OpenSSL::BN.new("\xff\x81",2) # => 65409
OpenSSL::BN.new("\x00\x00\x00\x02\x00\x81", 0) # => 129
OpenSSL::BN.new("\x00\x00\x00\x02\x80\x81", 0) # => -129
OpenSSL::BN.new(12......を表す文字列
@param base 文字列から整数に変換するときの基数
@raise OpenSSL::BNError 変換に失敗した場合に発生します
反対に、OpenSSL::BN クラスのオブジェクトを文字列にするには、
OpenSSL::BN#to_s を用います。
@see OpenSSL::BN#to_s... -
OpenSSL
:: Cipher (25.0) -
共通鍵暗号のために抽象化されたインターフェースを提供するクラスです。
...通常はより高水準なインターフェースが利用可能な
はずです。必要なのは暗号アルゴリズムを指定するため
OpenSSL::Cipher.new で暗号オブジェクトを生成することだけでしょう。
もし、このクラスを直接利用して暗号化する......。
* OpenSSL::Cipher.new や OpenSSL::Cipher::AES256.new
などで暗号オブジェクトを生成する
* OpenSSL::Cipher#encrypt, OpenSSL::Cipher#decrypt で
暗号、復号のいずれをするかを設定する
* OpenSSL::Cipher#key=, OpenSSL::Cipher#iv=,
OpenSSL::Cipher#ra......ndom_key, OpenSSL::Cipher#random_iv などで
鍵と IV(initialization vector) を設定する
* OpenSSL::Cipher#update, OpenSSL::Cipher#final で
暗号化/復号化をする
ruby 1.8.3 から Cast5 と Idea が CAST5 と IDEA に改名されました。
=== ブロック暗号モード... -
OpenSSL
:: Cipher . ciphers -> [String] (25.0) -
利用可能な暗号方式名を文字列の配列で返します。
...利用可能な暗号方式名を文字列の配列で返します。
require 'openssl'
OpenSSL::Cipher.ciphers
# => ["AES-128-CBC", "AES-128-CFB", "AES-128-CFB1", "AES-128-CFB8", "AES-128-ECB", "AES-128-OFB", "AES-192-CBC", ... ]... -
OpenSSL
:: Config (25.0) -
OpenSSL の設定ファイルを表すクラスです。
...OpenSSL の設定ファイルを表すクラスです。
OpenSSL の設定ファイルは、キーと文字列を対応付けた単純な構造をしています。
また、キーはセクションによってグループ分けされています。
どのセクションにも属さないグロー......バルなキーを作ることもできます。
デフォルトの設定ファイルを読み込む例
require 'openssl'
conf = OpenSSL::Config.load(OpenSSL::Config::DEFAULT_CONFIG_FILE)
p conf.sections # => ["req_distinguished_name", "req_attributes", "proxy_cert_ext", "policy_anything", "C... -
OpenSSL
:: Config # each {|section , key , value| . . . } -> self (25.0) -
オブジェクトに含まれる全ての設定情報を順にブロックに渡し 呼び出します。
...を表す文字列、キーを表す文字列、キーに
割り当てられた値の文字列、の3つです。
require 'openssl'
conf = OpenSSL::Config.load(OpenSSL::Config::DEFAULT_CONFIG_FILE)
conf.each{|section, key, value| p [section, key, value]}
# => ["req_distinguished_name", "cou... -
OpenSSL
:: Digest (25.0) -
ハッシュ関数のためのインターフェースを提供するクラスです。
...を計算する (OpenSSL::Digest.digest,
Digest::Instance#hexdigest) 方法です。短い文字列の
ダイジェストを取るときにはこちらを使えばよいでしょう。
もう一つはダイジェストオブジェクトを作成して、文字列を順次
OpenSSL::Digest#update で......ストを計算
します。大きなファイルのハッシュ値を計算する場合などに
利用します。
例:
require 'openssl'
digest = OpenSSL::Digest.new("sha256")
File.open(filename){|f|
while data = f.read(1024)
digest.update(data)
end
}
puts digest.hexdig... -
OpenSSL
:: PKCS7 . write _ smime(p7sig , data=nil , flags = 0) -> String (25.0) -
PKCS7 オブジェクトから S/MIME 形式の文字列を返します。
...l を渡すと OpenSSL::PKCS7#data で得られる
文字列を用います。通常は nil を渡してください。
flags には以下の定数の or を渡します。
* OpenSSL::PKCS7::DETACHED
クリア署名をします。これは OpenSSL::PKCS7.sign で
OpenSSL::PKCS7::DETAC......。
* OpenSSL::PKCS7::TEXT
MIME ヘッダに text/plain を付加します。
これは OpenSSL::PKCS7.sign で
OpenSSL::PKCS7::DETACHED を渡した場合にのみ意味を持ちます。
例:
require 'openssl'
data = "foobar"
p7 = OpenSSL::PKCS7.sign( OpenSSL::X509::Ce......ert.pem')),
OpenSSL::PKey::RSA.new(File.read('privkey.pem')),
data)
smime = PKCS7.write_smime(p7)
@param p7sig PKCS#7 オブジェクト
@param data 署名されたデータ文字列
@param flags フラグ(整数値)
@raise OpenSSL::PKCS::PK... -
OpenSSL
:: PKey :: DH (25.0) -
Diffie-Hellman 鍵共有クラス
...有クラス
Diffie-Hellman 鍵共有プロトコルは署名ができないため、
OpenSSL::PKey::PKey#sign や OpenSSL::PKey::PKey#verify
を呼び署名や署名の検証を行おうとすると例外
OpenSSL::PKey::PKeyError が発生します。
Diffie-Hellman はこのライブラリで......は基本的には鍵共有にしか利用できません。
=== 例
鍵共有の例。
require 'openssl'
# パラメータの生成
dh = OpenSSL::PKey::DH.generate(1024, 5)
# パラメータのチェック
raise "bad DH parameter" unless dh.params_ok?
# 以下、dh1 と dh2 が通......つ複製することにしている
# dh1 は dh をそのまま使う
dh1 = dh
# パラメータを複製して dh2 に渡す
dh2 = OpenSSL::PKey::DH.new(dh)
# 両端が鍵パラメータから鍵対を生成する
dh1.generate_key!
dh2.generate_key!
# 通信の両端で公... -
OpenSSL
:: PKey :: DSA (25.0) -
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
:: PKey :: EC . builtin _ curves -> [[String , String]] (25.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 prim......e field"],
# ["secp128r1", "SECG curve over a 128 bit prime field"],
# ["secp128r2", "SECG curve over a 128 bit prime field"],
# ... ]
@see OpenSSL::PKey::EC::Group.new... -
OpenSSL
:: PKey :: PKey (25.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.sig... -
OpenSSL
:: PKey :: RSA (25.0) -
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
のいずれかでしょう。......ついてよく理解し、必要な場合のみにすべきです。
例:
require 'openssl'
# initialize random seed
OpenSSL::Random.seed(File.read("/dev/random", 16))
# 鍵対を生成
rsa = OpenSSL::PKey::RSA.generate(2048)
# 秘密鍵をAES256で暗号化して private_key.pem に......PEM 形式で保存
passphrase = "!secret passphrase!"
File.open("private_key.pem", "w") do |f|
f.write(rsa.export(OpenSSL::Cipher.new("aes256"), passphrase))
end
# 公開鍵をpublic_key.pemに保存
public_key = rsa.public_key
File.open("public_key.pem", "w") do |f|
f.write(pu... -
OpenSSL
:: SSL :: SSLContext # ciphers -> [[String , String , Integer , Integer]] (25.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", "TLS... -
OpenSSL
:: SSL :: SSLContext # client _ cert _ cb=(cb) (25.0) -
OpenSSL::SSL::SSLContext#cert= でクライアント証明書を セットしていなかった場合にサーバからクライアント証明書の要求が来たときに 呼びだされるコールバックオブジェクトを設定します。
...OpenSSL::SSL::SSLContext#cert= でクライアント証明書を
セットしていなかった場合にサーバからクライアント証明書の要求が来たときに
呼びだされるコールバックオブジェクトを設定します。
コールバックに渡される引数は以下......している OpenSSL::SSL::SSLSocket
オブジェクトが渡されます。そのオブジェクトから必要な証明書を見つけるのに
必要な情報を取得します。
コールバックはクライアント証明書(OpenSSL::X509::Certificate)
とその秘密鍵(OpenSSL::PKey::PKey)......のコールバック内で例外が発生すると、適当な証明書が見付からなかったと
判断されます。このとき例外は OpenSSL のライブラリによって握り潰されて
しまいます。
デフォルトは nil で、コールバックなしを意味します。こ... -
OpenSSL
:: SSL :: SSLContext :: METHODS -> [Symbol] (25.0) -
利用可能なメソッド(プロトコル)を Symbol の配列で返します。
...利用可能なメソッド(プロトコル)を Symbol の配列で返します。
require 'openssl'
OpenSSL::SSL::SSLContext::METHODS
# => [:TLSv1, :TLSv1_server, :TLSv1_client, :SSLv2, :SSLv2_server, ...]... -
OpenSSL
:: X509 :: Extension . new(der) -> OpenSSL :: X509 :: Extension (25.0) -
OpenSSL::X509::Extension オブジェクトを生成します。
...OpenSSL::X509::Extension オブジェクトを生成します。
引数が1つの場合は DER 形式の文字列を渡します。
引数が2つ以上の場合は、oid には拡張領域の OID の ドット区切り表記、
short name、long name のいずれかである文字列を与えま......す。
value にはその値を表す DER 形式の文字列、もしくは
OpenSSL::ASN1::ASN1Data のサブクラスを与えます。
例;
require 'openssl'
include OpenSSL
oid = "subjectKeyIdentifier"
val = "\004\024\206\312\245\"\201b\357\255\n\211\274\255rA,)I\364\206V"
ex = X509:... -
OpenSSL
:: X509 :: Extension . new(oid , value , critical=false) -> OpenSSL :: X509 :: Extension (25.0) -
OpenSSL::X509::Extension オブジェクトを生成します。
...OpenSSL::X509::Extension オブジェクトを生成します。
引数が1つの場合は DER 形式の文字列を渡します。
引数が2つ以上の場合は、oid には拡張領域の OID の ドット区切り表記、
short name、long name のいずれかである文字列を与えま......す。
value にはその値を表す DER 形式の文字列、もしくは
OpenSSL::ASN1::ASN1Data のサブクラスを与えます。
例;
require 'openssl'
include OpenSSL
oid = "subjectKeyIdentifier"
val = "\004\024\206\312\245\"\201b\357\255\n\211\274\255rA,)I\364\206V"
ex = X509:... -
OpenSSL
:: X509 :: ExtensionFactory (25.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::Certificate.new
# 新しい ExtensionFactory オブジェクトを生成し、 CA の証明書オブジェクト
# を設定
factory = OpenSSL::X509::ExtensionFactory.new(ca_cert)
# CSR オ... -
OpenSSL
:: X509 :: ExtensionFactory # config=(config) (25.0) -
自身にコンフィグファイルオブジェクトを設定します。
...自身にコンフィグファイルオブジェクトを設定します。
例
require 'openssl'
factory.config = OpenSSL::Config.load(OpenSSL::Config::DEFAULT_CONFIG_FILE)
@param config 設定ファイル(OpenSSL::Config オブジェクト)... -
OpenSSL
:: X509 :: Name # to _ a -> [[String , String , Integer]] (25.0) -
内容を配列にして返します。
...、[属性型文字列、属性値文字列、属性値の型を表す整数(OpenSSL::ASN1以下の各定数で定義されているASN1の型)] という3要素の配列です。
例:
require 'openssl'
n = OpenSSL::X509::Name.parse('/C=JP/ST=Kanagawa/L=Yokohama/O=Example Company/OU=Lab3/CN=foo... -
OpenSSL
:: X509 :: Name # to _ s(flags=nil) -> String (25.0) -
DNの文字列表現を返します。
...は通常は以下のいずれかを渡します。
* nil
* OpenSSL::X509::Name::COMPAT
* OpenSSL::X509::Name::RFC2253
* OpenSSL::X509::Name::ONELINE
* OpenSSL::X509::Name::MULTILINE
*
例:
require 'openssl'
n = OpenSSL::X509::Name.parse('/C=JP/ST=Kanagawa/L=Yokohama/O=Example Compan......y/OU=Lab3/CN=foobar/emailAddress=foobar@lab3.example.co.jp"
n.to_s(OpenSSL::X509::Name::COMPAT)
# => "C=JP, ST=Kanagawa, L=Yokohama, O=Example Company, OU=Lab3, CN=foobar/emailAddress=foobar@lab3.example.co.jp"
n.to_s(OpenSSL::X509::Name::RFC2253)
# => "emailAddress=foobar@lab3.example.co.jp......Lab3,O=Example Company,L=Yokohama,ST=Kanagawa,C=JP"
n.to_s(OpenSSL::X509::Name::ONELINE)
# => "C = JP, ST = Kanagawa, L = Yokohama, O = Example Company, OU = Lab3, CN = foobar, emailAddress = foobar@lab3.example.co.jp"
n.to_s(OpenSSL::X509::Name::MULTILINE)
# => "countryName =... -
OpenSSL
:: X509 :: Name . new -> OpenSSL :: X509 :: Name (25.0) -
OpenSSL::X509::Name オブジェクトを生成します。
...OpenSSL::X509::Name オブジェクトを生成します。
引数を与えなかった場合は空のオブジェクトを返します。
第1引数として配列を与えた場合には、
その内容が属性型と属性値の文字列のペアであると仮定して、オブジェクトを......obj が OpenSSL::X509::Name である場合には内容を複製した
オブジェクトを返します。
それ以外の場合は obj の to_der メソッドを読んで DER 形式のバイト列に変換し、
そこから内容を作ります。
例:
require 'openssl'
OpenSSL::X509::......anagawa"], ["L", "Yokohama"], ["O", "Example Company"], ["OU", "Lab3"], ["CN", "foobar"], ["emailAddress", "foobar@lab3.example.co.jp"]])
# => OpenSSL::X509::Name object: /C=JP/ST=Kanagawa/L=Yokohama/O=Example Company/OU=Lab3/CN=foobar/emailAddress=foobar@lab3.example.co.jp
@param ary 属性型... -
OpenSSL
:: X509 :: Name . new(ary , template = OBJECT _ TYPE _ TEMPLATE) -> OpenSSL :: X509 :: Name (25.0) -
OpenSSL::X509::Name オブジェクトを生成します。
...OpenSSL::X509::Name オブジェクトを生成します。
引数を与えなかった場合は空のオブジェクトを返します。
第1引数として配列を与えた場合には、
その内容が属性型と属性値の文字列のペアであると仮定して、オブジェクトを......obj が OpenSSL::X509::Name である場合には内容を複製した
オブジェクトを返します。
それ以外の場合は obj の to_der メソッドを読んで DER 形式のバイト列に変換し、
そこから内容を作ります。
例:
require 'openssl'
OpenSSL::X509::......anagawa"], ["L", "Yokohama"], ["O", "Example Company"], ["OU", "Lab3"], ["CN", "foobar"], ["emailAddress", "foobar@lab3.example.co.jp"]])
# => OpenSSL::X509::Name object: /C=JP/ST=Kanagawa/L=Yokohama/O=Example Company/OU=Lab3/CN=foobar/emailAddress=foobar@lab3.example.co.jp
@param ary 属性型... -
OpenSSL
:: X509 :: Name . new(obj) -> OpenSSL :: X509 :: Name (25.0) -
OpenSSL::X509::Name オブジェクトを生成します。
...OpenSSL::X509::Name オブジェクトを生成します。
引数を与えなかった場合は空のオブジェクトを返します。
第1引数として配列を与えた場合には、
その内容が属性型と属性値の文字列のペアであると仮定して、オブジェクトを......obj が OpenSSL::X509::Name である場合には内容を複製した
オブジェクトを返します。
それ以外の場合は obj の to_der メソッドを読んで DER 形式のバイト列に変換し、
そこから内容を作ります。
例:
require 'openssl'
OpenSSL::X509::......anagawa"], ["L", "Yokohama"], ["O", "Example Company"], ["OU", "Lab3"], ["CN", "foobar"], ["emailAddress", "foobar@lab3.example.co.jp"]])
# => OpenSSL::X509::Name object: /C=JP/ST=Kanagawa/L=Yokohama/O=Example Company/OU=Lab3/CN=foobar/emailAddress=foobar@lab3.example.co.jp
@param ary 属性型... -
OpenSSL
:: X509 :: Name . parse(str , template=OBJECT _ TYPE _ TEMPLATE) -> OpenSSL :: X509 :: Name (25.0) -
文字列をパースして OpenSSL::X509::Name オブジェクトを返します。
...文字列をパースして OpenSSL::X509::Name オブジェクトを返します。
例:
require 'openssl'
OpenSSL::X509::Name.parse('/C=JP/ST=Kanagawa/L=Yokohama/O=Example Company/OU=Lab3/CN=foobar/emailAddress=foobar@lab3.example.co.jp')
@param str パースする文字列
@param template... -
OpenSSL
:: X509 :: Name . parse _ openssl(str , template=OBJECT _ TYPE _ TEMPLATE) -> OpenSSL :: X509 :: Name (25.0) -
文字列をパースして OpenSSL::X509::Name オブジェクトを返します。
...文字列をパースして OpenSSL::X509::Name オブジェクトを返します。
例:
require 'openssl'
OpenSSL::X509::Name.parse('/C=JP/ST=Kanagawa/L=Yokohama/O=Example Company/OU=Lab3/CN=foobar/emailAddress=foobar@lab3.example.co.jp')
@param str パースする文字列
@param template... -
OpenSSL
:: X509 :: Request (25.0) -
X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす クラスです。
...CSR を生成する例。
require 'openssl'
# ファイルから秘密鍵を読み込む
rsa = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
# 新しい CSR オブジェクトを生成
csr = OpenSSL::X509::Request.new
# DN を生成
name = OpenSSL::X509::Name.new
name.add_entry('C......sa.public_key
# attribute を設定
factory = OpenSSL::X509::ExtensionFactory.new
exts = [ factory.create_ext("subjectAltName", "DNS:foo.example.com") ]
asn1exts = OpenSSL::ASN1::Set([OpenSSL::ASN1::Sequence(exts)])
csr.add_attribute(OpenSSL::X509::Attribute.new("extReq", asn1exts))
#... -
OpenSSL
:: X509 :: StoreContext # error=(error) (25.0) -
エラーコードを設定します。
...エラーコードを設定します。
OpenSSL::X509::StoreContext#verify を呼びだし、
証明書チェインの各証明書を検証した
コールバック(OpenSSL::X509::Store#verify_callback=)が呼び出され、
StoreContext オブジェクトが渡されますが、このメソッド......こで設定したものになります。OpenSSL::X509::StoreContext#error_string
もその値に応じた文字列が返るようになります。
例:
require 'openssl'
store = OpenSSL::X509::Store.new
store.set_default_paths
cert = OpenSSL::X509::Certificate.new(...)
store.verify(c......ctx.error = OpenSSL::X509::V_ERR_APPLICATION_VERIFICATION;
false} # => false
p store.error # => OpenSSL::X509::V_ERR_APPLICATION_VERIFICATION
p store.error_string # => "application verification failure"
@param error エラーコードの整数値
@see OpenSSL::X509::StoreContext#error... -
OpenSSL
:: BN . new(bn) -> OpenSSL :: BN (10.0) -
OpenSSL::BN を複製して返します。
...
OpenSSL::BN を複製して返します。
@param bn 複製する OpenSSL::BN オブジェクト... -
OpenSSL
:: BN . new(integer) -> OpenSSL :: BN (10.0) -
整数オブジェクト(Integer)から多倍長整数オブジェクト (OpenSSL::BN)を生成します。
...整数オブジェクト(Integer)から多倍長整数オブジェクト
(OpenSSL::BN)を生成します。
@param integer 整数オブジェクト
@see Integer#to_bn...