Go 如何使用OID读取扩展值,如密钥信息和密钥签名
从这里,我需要检索以字节为单位的扩展值。我有一个可以用的OID。我能够找到向证书添加扩展的代码。但是没有找回它。任何人都可以分享一个关于如何做到这一点的示例代码吗 更新: 现在,我可以得到扩展了Go 如何使用OID读取扩展值,如密钥信息和密钥签名,go,Go,从这里,我需要检索以字节为单位的扩展值。我有一个可以用的OID。我能够找到向证书添加扩展的代码。但是没有找回它。任何人都可以分享一个关于如何做到这一点的示例代码吗 更新: 现在,我可以得到扩展了 var cert *x509.Certificate cert, err := x509.ParseCertificate(myCertificate) } 但是deep equal return为false(存在特定的oid),我需要检索该特定扩展的值。有人可以建议一些步骤吗?reflect.Dee
var cert *x509.Certificate
cert, err := x509.ParseCertificate(myCertificate)
}
但是deep equal return为false(存在特定的oid),我需要检索该特定扩展的值。有人可以建议一些步骤吗?reflect.DeepEqual不起作用,因为类型不同。检查OID的常规方法是使用以下方法:
var extensions []pkix.Extension
var cert *x509.Certificate
byteValue, _ := base64.StdEncoding.DecodeString(myCert)
cert, err := x509.ParseCertificate(byteValue)
if err != nil {
fmt.Println("Error in parsing certificate")
}
extensions = cert.Extensions
checkId := []int{2, 5, 6, 135, 3, 2, 41}
for _, ext := range extensions {
if reflect.DeepEqual(ext.Id, checkId) {
fmt.Println("true")
}
}
如果没有,请不要忘记检查
ExtraExtensions
reflect.DeepEqual不起作用,因为类型不同。检查OID的常规方法是使用以下方法:
var extensions []pkix.Extension
var cert *x509.Certificate
byteValue, _ := base64.StdEncoding.DecodeString(myCert)
cert, err := x509.ParseCertificate(byteValue)
if err != nil {
fmt.Println("Error in parsing certificate")
}
extensions = cert.Extensions
checkId := []int{2, 5, 6, 135, 3, 2, 41}
for _, ext := range extensions {
if reflect.DeepEqual(ext.Id, checkId) {
fmt.Println("true")
}
}
如果没有,请不要忘记检查ExtraExtensions