用golang将DSA密钥解析为tls配置对象。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用golang将DSA密钥解析为tls配置对象。相关的知识,希望对你有一定的参考价值。
我有一套DSA客户端私钥、客户端和CA证书文件,我想将其用于kafka-go库。我一直在尝试解析这些文件,但一直没有成功。上述的密钥和证书文件是正确的,因为它们被用在其他地方,虽然是用javascript写的。我一直在尝试用以下方式解析它们。
func NewTLSConfig(clientCertFile, clientKeyFile, caCertFile string) (*tls.Config, error) {
tlsConfig := tls.Config{}
cert, err := tls.LoadX509KeyPair(clientCertFile, clientKeyFile
...
输入的字符串都是正确的文件路径。这时我得到以下错误。
tls: failed to parse private key
其来自 parsePrivateKey 的函数。检查函数的输入时,似乎没有问题。
cert.PrivateKey, err = parsePrivateKey(keyDERBlock.Bytes)
在检查该函数的输入时,似乎没有问题。键DERBlock 对象被填充,它有一个正确的类型和字节。可能是什么问题?谢谢你!我已经创建了一个小程序,它的类型和字节数都是正确的。
我已经创建了一个小的 Github repo 来说明这个问题。
答案
通过使用RSA密钥而不是DSA来解决这个问题。
以上是关于用golang将DSA密钥解析为tls配置对象。的主要内容,如果未能解决你的问题,请参考以下文章