文字列型
公開キー インフラストラクチャ (PKI) での文字列の最も一般的な用途の 1 つは、X.500 識別名を作成することです。 たとえば、証明書要求のサブジェクト名は、次の構文例に示すように、一連の相対識別名を組み合わせることによって作成されます。
---------------------------------------------------------------------
-- Breakdown of a subject name in a certificate request.
---------------------------------------------------------------------
CertificationRequestInfo ::= SEQUENCE
{
version CertificationRequestInfoVersion,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
attributes [0] IMPLICIT Attributes
}
Name ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName ::= SET OF AttributeTypeValue
AttributeTypeValue ::= SEQUENCE
{
type OBJECT IDENTIFIER,
value ANY
}
DirectoryString ::= CHOICE
{
teletexString TeletexString (SIZE (1..MAX)),
printableString PrintableString (SIZE (1..MAX)),
universalString UniversalString (SIZE (1..MAX)),
utf8String UTF8String (SIZE (1..MAX)),
bmpString BMPString (SIZE (1..MAX))
}
証明書登録 API では、次の ASN.1 文字列型がサポートされています。
BMPString
エンコード タグ: 0x1E
Certreq.exe名: UNICODE_STRING
Basic 多言語平面 (BMP) は、ユニバーサル文字セット (UCS) の最初の平面を含む文字エンコードです。 0 から 16 の 17 個の平面があります。 BMP は平面 0 を占有し、0x0000 から 0xFFFF まで 65,536 個のコード ポイントを含みます。 これは、Unicode 文字マップのセクションで、これまでにほとんどの文字の割り当てが行われています。 ラテン、中東、アジア、アフリカ、その他の言語が含まれます。
IA5String
エンコード タグ: 0x16
Certreq.exe名: IA5_STRING
国際アルファベット番号 5 (IA5) は一般に ASCII アルファベットに相当しますが、異なるバージョンには、地域言語に固有のアクセントやその他の文字を含めることができます。 次の例は、AlternativeNames 証明書拡張機能の ASN.1 定義で使用される IA5String 型を示しています。
---------------------------------------------------------------------
-- AlternativeNames extension
---------------------------------------------------------------------
AltNames ::= SEQUENCE OF GeneralName
GeneralNames ::= AltNames
GeneralName ::= CHOICE
{
otherName [0] IMPLICIT OtherName,
rfc822Name [1] IMPLICIT IA5String,
dNSName [2] IMPLICIT IA5String,
x400Address [3] IMPLICIT SEQUENCE OF ANY,
directoryName [4] EXPLICIT ANY,
ediPartyName [5] IMPLICIT SEQUENCE OF ANY,
uniformResourceLocator [6] IMPLICIT IA5String,
iPAddress [7] IMPLICIT OCTET STRING,
registeredID [8] IMPLICIT OBJECT IDENTIFIER
}
OtherName ::= SEQUENCE
{
type OBJECT IDENTIFIER,
value [0] EXPLICIT ANY
}
PrintableString
エンコード タグ: 0x13
Certreq.exe名: PRINTABLE_STRING
PrintableString データ型は、もともとメインフレーム入力ターミナルで使用できる限られた文字セットを表すことを目的としていましたが、一般的に使用されています。 これには次の文字が含まれています。
- A から Z
- a-z
- 0-9
- ' ( ) + , - . / : = ? [space]
TeletexString
エンコード タグ: 0x14
TeletexString および関連する T61String データ型は、8 ビット (複合文字の場合は 16 ビット) でエンコードされます。 どちらもタグ番号が0x14。 これらは広く使用されていません。
UTF8String
エンコード タグ: 0x0C
Certreq.exe名: UTF8_STRING
8 ビット UCS/Unicode 変換形式 (UTF-8) は、任意のユニバーサル文字を Unicode 文字として表しながら、初期コード ポイントと ASCII の整合性を維持できる可変長文字エンコードです。 UTF-8 では、1 ~ 4 バイトが使用されます。 タグ番号が0x0C。
関連トピック