我有一个仅包含私钥对象的pkcs11标记。我希望使用crypto11包检索私钥。当我尝试通过输入证书文件和私钥对象来解析x509密钥对时,收到错误。var pks *crypto11.SecretKey cannot convert pks (variable of type *crypto11.SecretKey) to []bytecompiler
我想知道检索私钥对象的正确方法是什么。我如何将crypto11包和证书文件转换为用于TLS连接的x509证书?
// Load the device certificate file
certificate, err := ioutil.ReadFile("/PATH/cert.pem.crt")
if err != nil {
fmt.Println("Error loading device certificate:", err)
return
}
//Create Crypto11 instance
ct11, err := crypto11.Configure(&crypto11.Config{
Path: "/PATH/libsofthsm2.so",
SlotNumber: #######,
Pin: "####",
})
//Find Private key
pks, err := ct11.FindKey(nil, []byte("MyPrivateKeyLabel"))
if err != nil {
log.Fatal("Could not search for private key: ", err)
}
//x509cert
cert, err := tls.X509KeyPair(certificate, []byte(pks))
if err != nil {
log.Fatal("Error on X509Key Pair ", err)
}
1条答案
按热度按时间b4lqfgs41#
解决方法很简单,我只需要把证书文件(pem crt)转换成der格式。
之后,我们可以解析证书文件: