次の方法で共有


文字列型

公開キー インフラストラクチャ (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。

ASN.1 タイプ システム

Distinguished Encoding Rules

ASN.1 型の DER エンコード