共用方式為


基本類型

憑證註冊 API 支援下列基本 ASN.1 類型。

BIT STRING

編碼標籤:0x03

Certreq.exe名稱:BIT_STRING

位或二進位字串是任意長位陣列。 特定位可以透過括弧整數和指派的名稱來識別,如下列範例所示。

Versions ::= BIT STRING{ version-1(0), version-2(1) } 

憑證金鑰和簽章通常以位字串表示。

---------------------------------------------------------------------
-- ASN.1 type example: BIT STRING
-- Tag number: 0x03
---------------------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE 
{
  algorithm           AlgorithmIdentifier,
  subjectPublicKey    BIT STRING
} 

BOOLEAN

編碼標籤:0x01

Certreq.exe名稱:BOOLEAN

布林類型可以包含兩個值之一 TRUEFALSE。 下列範例顯示基本條件約束憑證延伸模組的 ASN.1 結構。 cA欄位會指定憑證主體是否為憑證授權單位單位, (CA) 。 預設重要性為 FALSE

---------------------------------------------------------------------
-- ASN.1 type example: BOOLEAN
-- Tag number: 0x01
---------------------------------------------------------------------
BasicConstraints ::= SEQUENCE 
{
  cA                  BOOLEAN DEFAULT FALSE,
  pathLenConstraint   INTEGER OPTIONAL
}

INTEGER

編碼標籤:0x02

Certreq.exe名稱:INTEGER

整數通常可以是任何正整數或負整數值。 下列範例顯示 RSA 公開金鑰的 ASN.1 結構。 請注意, publicExponent 欄位限制為小於 4,294,967,296 的正整數。

---------------------------------------------------------------------
-- ASN.1 type example: INTEGER
-- Tag number: 0x02
---------------------------------------------------------------------
HUGEINTEGER ::= INTEGER

RSAPublicKey ::= SEQUENCE 
{ 
  modulus         HUGEINTEGER,    
  publicExponent  INTEGER (0..4294967295) 
} 

NULL

編碼標籤:0x05

Certreq.exe名稱: Null

Null類型包含單一位元組0x00。 它可用於憑證要求必須指出空值的任何位置。 例如, AlgorithmIdentifier 是包含物件識別碼的序列, (OID) 和選擇性參數。

---------------------------------------------------------------------
-- ASN.1 type example: NULL
-- Tag number: 0x05
---------------------------------------------------------------------
AlgorithmIdentifier ::= SEQUENCE 
{
  algorithm           OBJECT IDENTIFIER,
  parameters          ANY OPTIONAL    
}

如果結構編碼時沒有參數, 則會使用 Null 來表示空值。

30 0d            ; SEQUENCE (d Bytes)
|  |  |  06 09          ; OBJECT_ID (9 Bytes)
|  |  |  |  2a 86 48 86 f7 0d 01 01  01
|  |  |  |     ; 1.2.840.113549.1.1.1 RSA (RSA_SIGN)
|  |  |  05 00          ; NULL (0 Bytes)

物件識別碼

編碼標籤:0x06

Certreq.exe名稱:OBJECT_ID

憑證註冊 API 使用物件識別碼 (OID) 作為演算法識別碼、屬性和其他 PKI 元素的通用指標類型。 OID 通常會以點狀十進位字串呈現,例如 「2.16.840.1.101.3.4.1.42」。 字串中的個別元素會以句號分隔,代表弧形,並保留在可唯一識別物件和註冊它的組織之註冊授權單位樹狀結構中。 例如,上述 OID 可以擴充為 joint-iso- (t (2) country (16) us (840) 組織 (1) gov (101) csor (3) nistAlgorithms (4) aesAlgs (1) 附加 .42,以唯一識別 CBC () 模式演算法的 256 位 AES 加密區塊鏈結。

---------------------------------------------------------------------
-- ASN.1 type example: OBJECT IDENTIFIER
-- Tag number: 0x06
---------------------------------------------------------------------
AlgorithmIdentifier ::= SEQUENCE 
{
  algorithm           OBJECT IDENTIFIER,
  parameters          ANY OPTIONAL    
}

OCTET STRING

編碼標籤:0x04

Certreq.exe名稱:OCTET_STRING

八位字串是任意大型位元組陣列。 不過,不同于 BIT STRING 類型,字串中的特定位和位元組無法指派名稱。 八位字是一種平臺獨立的方式來參考記憶體字組。 在憑證註冊 API 的內容中,八位和位元組是可交換的。

---------------------------------------------------------------------
-- ASN.1 type example: OCTET STRING
-- Tag number: 0x04
---------------------------------------------------------------------
AuthorityKeyId ::= SEQUENCE 
{
  keyIdentifier       [0] IMPLICIT OCTET STRING OPTIONAL,
  certIssuer          [1] EXPLICIT NAME
  certSerialNumber    [2] IMPLICIT INTEGER OPTIONAL
}

ASN.1 類型系統

可辨別編碼規則

ASN.1 類型的 DER 編碼