要約
X.500の識別名(DN, Distinguished Name)を表わすクラス。
eql? と hash が定義されているため、Hash のキーとして利用できます。
目次
- 特異メソッド
- インスタンスメソッド
- 定数
特異メソッド
new -> OpenSSL::X509::Name
[permalink][rdoc][edit]new(ary, template = OBJECT_TYPE_TEMPLATE) -> OpenSSL::X509::Name
new(obj) -> OpenSSL::X509::Name
-
OpenSSL::X509::Name オブジェクトを生成します。
引数を与えなかった場合は空のオブジェクトを返します。
第1引数として配列を与えた場合には、その内容が属性型と属性値の文字列のペアであると仮定して、オブジェクトを生成します。この場合値のデータ型(ASN.1の型)は template で与えたハッシュによって定まります。
obj が OpenSSL::X509::Name である場合には内容を複製したオブジェクトを返します。
それ以外の場合は obj の to_der メソッドを読んで DER 形式のバイト列に変換し、そこから内容を作ります。
例:
require 'openssl' OpenSSL::X509::Name.new([["C", "JP"], ["ST", "Kanagawa"], ["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:
- 属性型と属性値のペアの配列
- [PARAM] obj:
- 識別子オブジェクトを生成するための情報
- [PARAM] template:
- objに配列を与えた場合には属性型に対応するデータ型を表わすハッシュ
- [EXCEPTION] OpenSSL::X509::NameError:
- 与えたデータが不正である場合など、オブジェクトが生成できなかった場合に発生します
parse(str, template=OBJECT_TYPE_TEMPLATE) -> OpenSSL::X509::Name
[permalink][rdoc][edit]parse_openssl(str, template=OBJECT_TYPE_TEMPLATE) -> 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:
- 属性型に対応するデータ型を表わすハッシュ
parse_rfc2253(str, template=OBJECT_TYPE_TEMPLATE) -> OpenSSL::X509::Name
[permalink][rdoc][edit]-
RFC2253形式の文字列をパースして OpenSSL::X509::Name オブジェクトを返します。
- [PARAM] str:
- パースする文字列
- [PARAM] template:
- 属性型に対応するデータ型を表わすハッシュ
インスタンスメソッド
cmp(other) -> -1 | 0 | 1
[permalink][rdoc][edit]self <=> ohter -> -1 | 0 | 1
-
他の OpenSSL::X509::Name オブジェクトと比較します。
自身が other と一致する場合は 0、otherより大きい場合は1、小さい場合は -1 を返します。
- [PARAM] other:
- 比較するオブジェクト
add_entry(oid, value, type = nil)
[permalink][rdoc][edit]-
新しい属性を追加します。
- [PARAM] oid:
- 属性型文字列
- [PARAM] value:
- 属性値文字列
- [PARAM] type:
- 属性値の(ASN.1の)型、省略時は OpenSSL::X509::Name::OBJECT_TYPE_TEMPLATE と oid から型が決まる
- [EXCEPTION] OpenSSL::X509::NameError:
- 属性の追加に失敗した場合に発生します
hash_old -> Integer
[permalink][rdoc][edit]-
OpenSSL 0.9.8 と互換な古い方式のハッシュ関数のハッシュ値を返します。
内部では OpenSSL の X509_NAME_hash_old を呼び出します。
to_a -> [[String, String, Integer]]
[permalink][rdoc][edit]-
内容を配列にして返します。
配列の各要素は、[属性型文字列、属性値文字列、属性値の型を表す整数(OpenSSL::ASN1以下の各定数で定義されているASN1の型)] という3要素の配列です。
例:
require 'openssl' n = OpenSSL::X509::Name.parse('/C=JP/ST=Kanagawa/L=Yokohama/O=Example Company/OU=Lab3/CN=foobar/emailAddress=foobar@lab3.example.co.jp') n.to_a # => [["C", "JP", 19], ["ST", "Kanagawa", 12], ["L", "Yokohama", 12], ["O", "Example Company", 12], ["OU", "Lab3", 12], ["CN", "foobar", 12], ["emailAddress", "foobar@lab3.example.co.jp", 22]]
to_der -> String
[permalink][rdoc][edit]-
DER 形式のバイト列を返します。
to_s(flags=nil) -> String
[permalink][rdoc][edit]-
DNの文字列表現を返します。
flags には通常は以下のいずれかを渡します。
- 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 Company/OU=Lab3/CN=foobar/emailAddress=foobar@lab3.example.co.jp') n.to_s # => "/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::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,CN=foobar,OU=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 = JP\nstateOrProvinceName = Kanagawa\nlocalityName = Yokohama\norganizationName = Example Company\norganizationalUnitName = Lab3\ncommonName = foobar\nemailAddress = foobar@lab3.example.co.jp"
定数
COMPAT -> Integer
[permalink][rdoc][edit]-
OpenSSL::X509::Name#to_s のフラグとして使います。
DEFAULT_OBJECT_TYPE -> Integer
[permalink][rdoc][edit]-
属性値のデフォルトの ASN.1 の型です。
OpenSSL::X509::Name.parse や OpenSSL::X509::Name.new で template に指定されなかった属性はこの型であると仮定して処理されます。
OpenSSL::ASN1::UTF8STRING を返します。
MULTILINE -> Integer
[permalink][rdoc][edit]-
OpenSSL::X509::Name#to_s のフラグとして使います。
複数行でフォーマットされます。
OBJECT_TYPE_TEMPLATE -> { String => Integer }
[permalink][rdoc][edit]-
属性型に対応する ASN.1の型を格納したハッシュです。
OpenSSL::X509::Name.parse や OpenSSL::X509::Name.new などでデフォルト値として使われます。
キーは属性型文字列で、ASN.1の型を表わす整数が対応します。
以下の文字列がキーです。
'C', 'countryName', 'serialNumber', 'dnQualifier', 'DC', 'domainComponent', 'emailAddress'
ONELINE -> Integer
[permalink][rdoc][edit]-
OpenSSL::X509::Name#to_s のフラグとして使います。
1行で読みやすくフォーマットされます。
RFC2253 -> Integer
[permalink][rdoc][edit]-
OpenSSL::X509::Name#to_s のフラグとして使います。
[RFC2253] 互換方式でフォーマットされます。