<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASN.1</anchor> にはいろいろな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列型</anchor>があります。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en">RFC 4517 - Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules</cite>
(<time>2015-03-08 19:15:43 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc4517#section-3.3.15">http://tools.ietf.org/html/rfc4517#section-3.3.15</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="en">RFC 4517 - Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules</cite> (<time>2015-03-08 19:15:43 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc4517#section-4.2">http://tools.ietf.org/html/rfc4517#section-4.2</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite xml:lang="en">RFC 4518 - Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation</cite> (<time>2014-12-29 00:45:51 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc4518#section-2.1">http://tools.ietf.org/html/rfc4518#section-2.1</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <strong><cite xml:lang="en">RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</cite> (<time>2015-02-22 15:44:10 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc5280#section-4.1.2.4">http://tools.ietf.org/html/rfc5280#section-4.1.2.4</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en">RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</cite> (<time>2015-02-22 15:44:10 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc5280#section-4.1.2.6">http://tools.ietf.org/html/rfc5280#section-4.1.2.6</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="en">RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</cite> (<time>2015-02-22 15:44:10 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc5280#section-7.1">http://tools.ietf.org/html/rfc5280#section-7.1</anchor-external></li></ul></refs></section><section><h1><code>IA5String</code></h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></figcaption><blockquote><p>A value of the IA5 String syntax is a string of zero, one, or more
characters from International Alphabet 5 (IA5) [T.50], the
international version of the ASCII character set.  The LDAP-specific
encoding of a value of this syntax is the unconverted string of
characters, which conforms to the &lt;IA5String&gt; rule in Section 3.2.</p><p>The LDAP definition for the IA5 String syntax is:<pre>      ( 1.3.6.1.4.1.1466.115.121.1.26 DESC 'IA5 String' )</pre></p><p>This syntax corresponds to the IA5String ASN.1 type from [ASN.1].</p></blockquote></figure></section><section><h1><code>PrintableString</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X.400</anchor>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 987</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1138</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1148</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 1327</anchor>, 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2156</anchor>)
で定義されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <cite xml:lang="en">RFC 4517 - Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules</cite>
(<time>2015-03-08 19:15:43 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc4517#section-3.3.29">http://tools.ietf.org/html/rfc4517#section-3.3.29</anchor-external></p><section><h1>構文</h1><pre> printable-string   = *(ps-delim / ps-restricted-char)
 ps-restricted-char = DIGIT / ALPHA / &quot; &quot; / &quot;'&quot; / &quot;+&quot;
                    / &quot;,&quot; / &quot;-&quot; / &quot;.&quot; / &quot;/&quot; / &quot;:&quot; / &quot;=&quot; / &quot;?&quot;
 ps-delim           = &quot;(&quot; / &quot;)&quot;</pre><pre> ps-encoded       = *( ps-restricted-char / ps-encoded-char )
 ps-encoded-char  = &quot;(a)&quot;               ; (@)
                  / &quot;(p)&quot;               ; (%)
                  / &quot;(b)&quot;               ; (!)
                  / &quot;(q)&quot;               ; (&quot;)
                  / &quot;(u)&quot;               ; (_)
                  / &quot;(l)&quot;               ; &quot;(&quot;
                  / &quot;(r)&quot;               ; &quot;)&quot;
                  / &quot;(&quot; 3DIGIT &quot;)&quot;      ; 000 - 127 (= ASCII %x00-7E)</pre><p>大文字・小文字は区別しませんが、常に小文字で生成します。</p><p>(l), (r) は RFC 987 では定義されていませんでした。</p></section><section><h1>例</h1><pre>         'a demo.'         &lt;-&gt;   'a demo.'
         foo(a)bar         &lt;-&gt;   foo@bar
         (q)(u)(p)(q)      &lt;-&gt;   &quot;_%&quot;
         (a)               &lt;-&gt;   @
         (A)               -&gt;    @
         (l)a(r)           &lt;-&gt;   (a)
         (126)             &lt;-&gt;   ~
         (                 -&gt;    (
         (l)               &lt;-&gt;   (</pre></section></section><section><h1><code>DirectoryString</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DirectoryString</anchor></code></dfn> は、 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TeletexString</anchor></code>,
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PrintableString</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UniversalString</anchor></code>,
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF8String</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMPString</anchor></code> のいずれかによる空でない列です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IA5String</anchor></code> は含まれていません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5280</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル</anchor>に適合する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CA</anchor> は、
原則として <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PrintableString</anchor></code> か <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF8String</anchor></code>
を用いなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CA</anchor> が従来 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">issuer</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">欄</anchor>において
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TeletexString</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMPString</anchor></code>,
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UniversalString</anchor></code> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発行</anchor>していたなら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">後方互換性</anchor>のため引き続きこれを利用しても構いません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 既存の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CA</anchor> が <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal> のような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>を発行しているところに新しい <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CA</anchor>
を追加する場合、既存の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CA</anchor> が使っているものと同じ方法で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>して構いません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>の <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subject</anchor></code> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CA</anchor> の場合には、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;15</anchor-internal> のような
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">issuer</anchor></code> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CA</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>で使われているなら、それと同じ方法で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>の <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subject</anchor></code> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRL発行者</anchor>の場合には、 
当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRL発行者</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発行</anchor>する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRL</anchor> の <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">issuer</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">欄</anchor>と同じ方法で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 既存の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subject</anchor> に新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>を発行する場合や、
他の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subject</anchor> に発行した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>で既に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>を新たな
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subject</anchor> に発行する場合には、 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TeletexString</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMPString</anchor></code>,
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UniversalString</anchor></code> で <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subject</anchor></code> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>して構いません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">証明書</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>は、 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TeletexString</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMPString</anchor></code>,
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UniversalString</anchor></code> の <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subject</anchor></code> の受信にも備える<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src>。しかし対応は義務ではありません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;27</anchor-internal></src>。</p></section><section><h1>Unicode への変換</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4518</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LDAP</anchor> 用 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">stringprep</anchor> においては、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>転符号化</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">Transcoding</rt></rubyb>手順において <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> に変換する方法が規定されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PrintableString</anchor></code> は、直接 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> へと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">転符号化</anchor>します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UniversalString</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF8String</anchor></code>, <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bmpString</anchor></code>
は、既に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> なので<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">転符号化</anchor>は不要です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TeletexString</anchor></code> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">転符号化</anchor>します。
ただし標準の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>はありませんから、実装に委ねられます。
これもあって、 <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TeletexString</anchor></code> は使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきではありません</strong></anchor>。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p></section><section><h1>比較</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4517</anchor> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>に関する次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">比較</anchor>演算を規定しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal></src>。</p><figure class="short list"><ul><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">numericStringMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">numericStringSubstringsMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseExactMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseExactOrderingMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseExactSubstringsMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseExactIA5Match</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreIA5Match</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreIA5SubstringsMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreListMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreListSubstringsMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreOrderingMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreSubstringsMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">directoryStringFirstComponentMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">telephoneNumberMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">telephoneNumberSubstringsMatch</anchor></code></li><li><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">wordMatch</anchor></code></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> これらは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4518</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Stringprep</anchor> 変種を使って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正規化</anchor>して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">比較</anchor>します。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターネットPKI</anchor>においては、実装は <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PrintableString</anchor></code> や
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF8String</anchor></code> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">distinguished name</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">比較</anchor>に当たり
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 4518</anchor> が規定する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">stringprep</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロファイル</anchor>を適用しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
実装は <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreMatch</anchor></code> による比較に対応しなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
それ以外の比較方式を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性型</anchor>への対応は必須ではありません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;27</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caseIgnoreMatch</anchor></code> のための <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">stringprep</anchor> では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Map</anchor> 手順で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3453</anchor> 表B.2 を用いた <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">case folding</anchor> を行います。
また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Insignificant Character Removal</anchor> 手順で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Insignificant Space Handling</anchor>
を用います。 <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;27</anchor-internal></src> 詳しくは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">stringprep</anchor> を参照。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CN</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ドメイン名</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IPアドレス</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">service identity</anchor>
検証のために比較する場合も理論上は本規定が適用されるのかもしれませんが、
実際には <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII文字</anchor>のみで構成されるため (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDN</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Aラベル</anchor>に変換され、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IPアドレス</anchor>もバイト列ではなく文字列表現となるため)、事実上本規定の影響は受けません。
<code xmlns="http://www.w3.org/1999/xhtml"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CN</anchor></code> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">service identity</anchor> を参照。</comment-p></section><section><h1>関連</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <code xmlns="http://www.w3.org/1999/xhtml">T51String</code> </sw-see></p></section><section><h1>メモ</h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="en">RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</cite>
(<time>2015-02-22 15:44:10 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc5280#page-104">http://tools.ietf.org/html/rfc5280#page-104</anchor-external></figcaption><blockquote><p>Some legacy implementations support names encoded in the ISO 8859-1</p><p>character set (Latin1String) <strong>[</strong>ISO8859<strong>]</strong> but tag them as TeletexString.</p><p>TeletexString encodes a larger character set than ISO 8859-1, but it</p><p>encodes some characters differently.  The name comparison rules</p><p>specified in Section 7.1 assume that TeletexStrings are encoded as</p><p>described in the ASN.1 standard.  When comparing names encoded using</p><p>the Latin1String character set, false positives and negatives are</p><p>possible.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite xml:lang="ja">自堕落な技術者の日記 : OpenSSLで対応しているDirectoryStringType一覧 - livedoor Blog(ブログ)</cite>
(<time>2015-04-04 20:40:23 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://blog.livedoor.jp/k_urushima/archives/597202.html">http://blog.livedoor.jp/k_urushima/archives/597202.html</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <cite xml:lang="en">RFC 7612 - Lightweight Directory Access Protocol (LDAP): Schema for Printer Services</cite>
(<time>2015-07-01 10:20:12 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7612#section-1.4.1">https://tools.ietf.org/html/rfc7612#section-1.4.1</anchor-external></figcaption><blockquote><p>DirectoryString</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <cite xml:lang="en">1088998 – ssl_error_bad_cert_domain on some Akamai-hosted sites (developer.nvidia.com, schwabcdn.com) due to lack of subjectAltName and TeletexString-encoded Subject CN</cite>
( (<time>2016-05-08 22:16:11 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=1088998">https://bugzilla.mozilla.org/show_bug.cgi?id=1088998</anchor-external></figcaption><blockquote><p>&quot;The issue with the www.joes-ssl.com certificate is mainly that it doesn't use an escape sequence to specify that it's using one of the JIS encodings... and while the MS CryptoAPI apparently uses heuristics for figuring out the correct set, NSS always treats TeletexStrings as ISO-8859-1 strings (http://mxr.mozilla.org/mozilla/source/security/nss/lib/certdb/secname.c?mark=654-661#643).&quot;</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <cite xml:lang="en">1089104 – ssl_error_bad_cert_domain when subjectAltName extension is missing and Subject CN is encoded as TeletexString</cite>
( (<time>2016-05-08 22:40:40 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=1089104">https://bugzilla.mozilla.org/show_bug.cgi?id=1089104</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <cite xml:lang="en">1089104 - ssl_error_bad_cert_domain when subjectAltName extension is missing and Subject CN is encoded as TeletexString</cite>
(<time>2018-08-11 20:22:14 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=1089104">https://bugzilla.mozilla.org/show_bug.cgi?id=1089104</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <cite xml:lang="en">245609 - Mozilla not getting certificate issuer from Authority Information Access CA Issuers</cite>
(<time>2018-08-25 22:37:36 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=245609#c20">https://bugzilla.mozilla.org/show_bug.cgi?id=245609#c20</anchor-external></p></section></body></html>