IA5String
PrintableString
[3] X.400 (RFC 987, RFC 1138, RFC 1148, RFC 1327, RFC 2156) で定義されています。
[34] RFC 4517 - Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules ( 版) http://tools.ietf.org/html/rfc4517#section-3.3.29
printable-string = *(ps-delim / ps-restricted-char) ps-restricted-char = DIGIT / ALPHA / " " / "'" / "+" / "," / "-" / "." / "/" / ":" / "=" / "?" ps-delim = "(" / ")"
ps-encoded = *( ps-restricted-char / ps-encoded-char ) ps-encoded-char = "(a)" ; (@) / "(p)" ; (%) / "(b)" ; (!) / "(q)" ; (") / "(u)" ; (_) / "(l)" ; "(" / "(r)" ; ")" / "(" 3DIGIT ")" ; 000 - 127 (= ASCII %x00-7E)
大文字・小文字は区別しませんが、常に小文字で生成します。
(l), (r) は RFC 987 では定義されていませんでした。
'a demo.' <-> 'a demo.' foo(a)bar <-> foo@bar (q)(u)(p)(q) <-> "_%" (a) <-> @ (A) -> @ (l)a(r) <-> (a) (126) <-> ~ ( -> ( (l) <-> (
DirectoryString
[11] DirectoryString
は、 TeletexString
,
PrintableString
, UniversalString
,
UTF8String
, BMPString
のいずれかによる空でない列です >>1。
[14] RFC 5280 プロファイルに適合する CA は、
原則として PrintableString
か UTF8String
を用いなければなりません >>1, >>20。
[15] CA が従来 issuer
欄において
TeletexString
, BMPString
,
UniversalString
で証明書を発行していたなら、
後方互換性のため引き続きこれを利用しても構いません >>1。
[16] 既存の CA が >>15 のような証明書を発行しているところに新しい CA を追加する場合、既存の CA が使っているものと同じ方法で属性を符号化して構いません。 >>1
[22] 証明書の subject
が CA の場合には、 >>15 のような
issuer
が CA の証明書で使われているなら、それと同じ方法で符号化しなければなりません >>20。
[23] 証明書の subject
が CRL発行者の場合には、
当該CRL発行者の発行する CRL の issuer
欄と同じ方法で符号化しなければなりません >>20。
[24] 既存の subject に新しい証明書を発行する場合や、
他の subject に発行した証明書で既に符号化された属性を新たな
subject に発行する場合には、 TeletexString
, BMPString
,
UniversalString
で subject
を符号化して構いません。 >>20
[25] 証明書の利用者は、 TeletexString
, BMPString
,
UniversalString
の subject
の受信にも備えるべきです >>20。しかし対応は義務ではありません >>27。
[10] RFC 4518 の LDAP 用 stringprep においては、 転符号化手順において Unicode に変換する方法が規定されています。
[12] PrintableString
は、直接 Unicode へと転符号化します >>9。
[13] UniversalString
, UTF8String
, bmpString
は、既に Unicode なので転符号化は不要です >>9。
[17] TeletexString
は、 Unicode に転符号化します。
ただし標準の写像はありませんから、実装に委ねられます。
これもあって、 TeletexString
は使うべきではありません。 >>9
[7] RFC 4517 は、文字列に関する次の比較演算を規定しています >>6。
[8] これらは RFC 4518 の Stringprep 変種を使って正規化して比較します。
[18] インターネットPKIにおいては、実装は PrintableString
や
UTF8String
の distinguished name 属性の比較に当たり
RFC 4518 が規定する stringprep プロファイルを適用しなければなりません。
実装は caseIgnoreMatch
による比較に対応しなければなりません。
それ以外の比較方式を使う属性型への対応は必須ではありません。 >>27
caseIgnoreMatch
のための stringprep では、
Map 手順で RFC 3453 表B.2 を用いた case folding を行います。
また Insignificant Character Removal 手順で Insignificant Space Handling
を用います。 >>27 詳しくは stringprep を参照。[26] 自堕落な技術者の日記 : OpenSSLで対応しているDirectoryStringType一覧 - livedoor Blog(ブログ) ( 版) http://blog.livedoor.jp/k_urushima/archives/597202.html
[30] 1089104 – ssl_error_bad_cert_domain when subjectAltName extension is missing and Subject CN is encoded as TeletexString ( ()) https://bugzilla.mozilla.org/show_bug.cgi?id=1089104
[32] 1089104 - ssl_error_bad_cert_domain when subjectAltName extension is missing and Subject CN is encoded as TeletexString () https://bugzilla.mozilla.org/show_bug.cgi?id=1089104
[33] 245609 - Mozilla not getting certificate issuer from Authority Information Access CA Issuers () https://bugzilla.mozilla.org/show_bug.cgi?id=245609#c20
IA5String
は含まれていません。