var cert *x509.Certificatecert, err := x509.ParseCertificate(myCertificate)從這里我需要以字節(jié)為單位檢索擴展值。我有用于此的 OID。我能夠找到用于向證書添加擴展的代碼。但不檢索它。任何人都可以分享如何做到這一點的示例代碼嗎?更新:現(xiàn)在,我可以得到擴展var extensions []pkix.Extensionvar cert *x509.CertificatebyteValue, _ := base64.StdEncoding.DecodeString(myCert)cert, err := x509.ParseCertificate(byteValue)if err != nil { fmt.Println("Error in parsing certificate")}extensions = cert.ExtensionscheckId := []int{2, 5, 6, 135, 3, 2, 41}for _, ext := range extensions { if reflect.DeepEqual(ext.Id, checkId) { fmt.Println("true") }}}但是深度相等返回 false(存在特定的 oid),我需要檢索該特定擴展的值。誰能建議一些步驟來做到這一點?
1 回答

慕桂英4014372
TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊
reflect.DeepEqual 不起作用,因為類型不同。檢查 OID 的常規(guī)方法是使用asn1.ObjectIdentifier,如下所示:
checkID := asn1.ObjectIdentifier{2, 5, 6, 135, 3, 2, 41}
for _, ext := range extensions {
if ext.Id.Equal(checkId) {
fmt.Println("true")
}
}
如果它不存在,請不要忘記檢查ExtraExtensions。
- 1 回答
- 0 關(guān)注
- 168 瀏覽
添加回答
舉報
0/150
提交
取消