デジタル証明書では、証明書の主体者名、発行者名なんかを文字列で指定します。PrintableStringには文字種の制限がありますが、UTF8String、TeletexString、BMPStringなんかを使った場合には文字種の制限があまりなく、改行や特殊文字なんかも入れてダメとは書いてありません。(入れていいかどうかは別です。CP/CPSの証明書プロファイルで制限を設けているケースもあります。)
とある近い国の証明書なんかはCNに改行がバリバリ入っており、証明書識別名を本当にメモ帳代わりに使っています。
手持ちのChallenge PKI Test Suiteでは、4年ぐらい前から識別名を部分的だったり全体的に16進数で指定したり、改行"\r\n"なんかのエスケープ文字にも対応しています。
Windowsの証明書ビューアーでは、属性の表示領域が9行あります。識別名のRDNを表示させると、最初の一行目はRDNの属性タイプ(O=とかCN=とか)が表示されるので、まぁ、文字のレイアウトの都合上(面倒なので)使わないとして、8行は自由に使ってよいことになります。
久しぶり(3年ぐらいぶり)に作ってみると、こんな感じ、、、、

んん〜〜っ、左側がもったいないので、もう少し横長で8行のアスキーアートを入れてみるとこんな感じ、、、

VeriSignの発行する証明書には入っていることもあるRFC 3709のロゴタイプX.509v3拡張という組織のロゴ画像や音声などを証明書に埋め込むっていうのもあるんですが、証明書ビューアーの方が対応していないので、フツーはこれ見られませんよね。もったいない、、、、ロゴタイプ拡張の代わりにアスキーアートが使えたら面白いんじゃないかと思います。
ただ実際は、CNやOUとかには何文字までっていう制限があるので使えないんですけどね、、、、、残念、、、、証明書ポリシ拡張のUserNoticeの中でもたった200文字か、、、もうちょっと長く使えるの無いかな、、、、
あ、そっか、文字数の制限をクリアするには例えば行の先頭は"L = "(locality)固定でいけば先頭にゴミは付いちゃうけど、文字数制限はクリアできるか、、、、、

ちなみにこの64っていうのは64バイト(=64オクテット)ではなくて、64文字です。UTF-8エンコーディングだと日本語1文字が普通3バイトぐらいになっちゃうんですが、日本語1であろうが1文字としてカウントされます。この辺りは日本やアスキーアート(^^;では大事なところです。
EVガイドラインのドラフトは間違っていたので、修正依頼をCAB Forum事務局に送って bytes から characters に直してもらえました。
とある近い国の証明書なんかはCNに改行がバリバリ入っており、証明書識別名を本当にメモ帳代わりに使っています。
手持ちのChallenge PKI Test Suiteでは、4年ぐらい前から識別名を部分的だったり全体的に16進数で指定したり、改行"\r\n"なんかのエスケープ文字にも対応しています。
Windowsの証明書ビューアーでは、属性の表示領域が9行あります。識別名のRDNを表示させると、最初の一行目はRDNの属性タイプ(O=とかCN=とか)が表示されるので、まぁ、文字のレイアウトの都合上(面倒なので)使わないとして、8行は自由に使ってよいことになります。
久しぶり(3年ぐらいぶり)に作ってみると、こんな感じ、、、、
んん〜〜っ、左側がもったいないので、もう少し横長で8行のアスキーアートを入れてみるとこんな感じ、、、
VeriSignの発行する証明書には入っていることもあるRFC 3709のロゴタイプX.509v3拡張という組織のロゴ画像や音声などを証明書に埋め込むっていうのもあるんですが、証明書ビューアーの方が対応していないので、フツーはこれ見られませんよね。もったいない、、、、ロゴタイプ拡張の代わりにアスキーアートが使えたら面白いんじゃないかと思います。
ただ実際は、CNやOUとかには何文字までっていう制限があるので使えないんですけどね、、、、、残念、、、、証明書ポリシ拡張のUserNoticeの中でもたった200文字か、、、もうちょっと長く使えるの無いかな、、、、
RFC 3280 Appendix: A.1 Explicitly Tagged Module, 1988 Syntax
:中略
-- specifications of Upper Bounds MUST be regarded as mandatory
-- from Annex B of ITU-T X.411 Reference Definition of MTS Parameter
ub-common-name INTEGER ::= 64
ub-organization-name INTEGER ::= 64
ub-organizational-unit-name INTEGER ::= 64
:以下略
あ、そっか、文字数の制限をクリアするには例えば行の先頭は"L = "(locality)固定でいけば先頭にゴミは付いちゃうけど、文字数制限はクリアできるか、、、、、
ちなみにこの64っていうのは64バイト(=64オクテット)ではなくて、64文字です。UTF-8エンコーディングだと日本語1文字が普通3バイトぐらいになっちゃうんですが、日本語1であろうが1文字としてカウントされます。この辺りは日本やアスキーアート(^^;では大事なところです。
EVガイドラインのドラフトは間違っていたので、修正依頼をCAB Forum事務局に送って bytes から characters に直してもらえました。