基本類型
憑證註冊 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
布林類型可以包含兩個值之一 TRUE 或 FALSE。 下列範例顯示基本條件約束憑證延伸模組的 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
}
相關主題