var cert *x509.Certificatecert, err := x509.ParseCertificate(myCertificate)从这里我需要以字节为单位检索扩展值。我有用于此的 OID。我能够找到用于向证书添加扩展的代码。但不检索它。任何人都可以分享如何做到这一点的示例代码吗?更新:现在,我可以得到扩展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贡献1871条经验 获得超13个赞
reflect.DeepEqual 不起作用,因为类型不同。检查 OID 的常规方法是使用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 关注
- 142 浏览
添加回答
举报
0/150
提交
取消