1 回答

TA貢獻1836條經驗 獲得超5個贊
// An ObjectIdentifier represents an ASN.1 OBJECT IDENTIFIER.
type ObjectIdentifier []int
所以對象標識符(簡稱OID)是一個整數數組。asn1 模塊有解析它們的方法,例如parseObjectIdentifier.
這是您需要放在屬性后面的結構Id:。
但現在你需要找出你想要的OID。
雖然難以閱讀,但 OpenSSL 源代碼可以向您顯示 X.400/X.500/X.509 世界中許多事物的 OID,或者至少是 OpenSSL 已知的事物的 OID。
{"nsCertType", "Netscape Cert Type", NID_netscape_cert_type, 9, &so[407]},
so是之前定義的,如果你跳轉到第 407項,你會看到:
? ? 0x60,0x86,0x48,0x01,0x86,0xF8,0x42,0x01,0x01,? /* [? 407] OBJ_netscape_cert_type */
并在同一文件中進行最終搜索OBJ_netscape_cert_type給出:
? 71,? ? /* OBJ_netscape_cert_type? ? ? ? ? ?2 16 840 1 113730 1 1 */
表示對應的OID為2.16.840.1.113730.1.1
或者您可以解碼上面描述此 OID 的整數列表。
第一個
0x60
是96
10所以2*40 + 16
,這意味著 OID 開頭為2.16.
那么彼此都是“base128”形式:如果最高有效位為 1,則將所有后續數字的 7 個最低有效位組合在一起,直到其中一個最高有效位為 0
0x86
是10000110
2,所以必須與0x48
aka?01001000
2一起使用,所以它實際上是00001101001000
2或840
100x01
小于 128 所以它就是它本身,1
0x86
仍然是10000110
2,但必須與0xF8
(?11111000
2?) 和0x42
(?01000010
2配對,我們在這里停止,因為第一位是 0) 所以總共000011011110001000010
2或113730
10最后兩個
0x01
是他們自己,1
。
所以我們確實再次得到2.16.840.1.113730.1.1
您可以在一些在線 OID 瀏覽器上仔細檢查它,
Netscape 證書類型(Rec. ITU-T X.509 v3 證書擴展,用于識別證書主體是安全套接字層 (SSL) 客戶端、SSL 服務器還是證書頒發機構 (CA))
然后,您甚至可以瀏覽各種?。ɡ?netscape 弧或其他?。﹣聿檎移渌?OID。
您還可以獲得完整的 ASN.1 表示法:
{joint-iso-itu-t(2)?country(16)?us(840)?organization(1)?netscape(113730)?cert-ext(1)?cert-type(1)}
- 1 回答
- 0 關注
- 131 瀏覽
添加回答
舉報