共计 642 个字符,预计需要花费 2 分钟才能阅读完成。
简介:前一段时间,跟农商行对接领取接口,忽然来了一个 pfx 格局的证书,我过后就懵逼了,因为网上针对于 golang 解析 pfx 的文章基本就没有用,只能本人钻研了,如果对你有帮忙的话,请点个赞吧
package main | |
func main () {getPrivateKey("key/request_key/test.pfx","test") | |
} | |
func getPrivateKey(privateKeyName, privatePassword string) (*rsa.PrivateKey, error) {f, err := os.Open(privateKeyName) | |
if err != nil {return nil, err} | |
bytes, err := ioutil.ReadAll(f) | |
if err != nil {return nil, err} | |
// 因为 pfx 证书公钥和密钥是成对的,所以要先转成 pem.Block | |
blocks, err := pkcs12.ToPEM(bytes, privatePassword) | |
if err != nil {return nil, err} | |
if len(blocks) != 2 {return nil, errors.New("解密谬误") | |
} | |
// 拿到第一个 block,用 x509 解析出私钥(当然公钥也是能够的)privateKey, err := x509.ParsePKCS1PrivateKey(blocks[0].Bytes) | |
if err != nil {return nil, err} | |
return privateKey, nil | |
} |
正文完