Go 如何验证公钥是否与私钥签名匹配?

Go 如何验证公钥是否与私钥签名匹配?,go,cryptography,rsa,Go,Cryptography,Rsa,如何验证公钥与私钥匹配 在应用程序启动时,从base64 PEM编码字符串加载2048位RSA密钥。在继续之前,我希望验证密钥是否有效以及是否匹配。签名和验证由我使用的下划线库完成 我可以签署和验证虚拟数据,但我正在寻找替代解决方案 初学者操场:解决方案非常简单 func verifyKeyPair(private, public string) bool { // Handle errors here block, _ := pem.Decode([]byte(rsaPriva

如何验证公钥与私钥匹配

在应用程序启动时,从base64 PEM编码字符串加载2048位RSA密钥。在继续之前,我希望验证密钥是否有效以及是否匹配。签名和验证由我使用的下划线库完成

我可以签署和验证虚拟数据,但我正在寻找替代解决方案


初学者操场:

解决方案非常简单

func verifyKeyPair(private, public string) bool {
    // Handle errors here
    block, _ := pem.Decode([]byte(rsaPrivateKey))
    key, _ := x509.ParsePKCS1PrivateKey(block.Bytes)
    pubBlock, _ := pem.Decode([]byte(rsaPublicKey))
    pubKey, _ := x509.ParsePKIXPublicKey(pubBlock.Bytes)
    return key.PublicKey.Equal(pubKey)
}

解决方案非常简单

func verifyKeyPair(private, public string) bool {
    // Handle errors here
    block, _ := pem.Decode([]byte(rsaPrivateKey))
    key, _ := x509.ParsePKCS1PrivateKey(block.Bytes)
    pubBlock, _ := pem.Decode([]byte(rsaPublicKey))
    pubKey, _ := x509.ParsePKIXPublicKey(pubBlock.Bytes)
    return key.PublicKey.Equal(pubKey)
}