Skip to content

用go库解析出来的私钥和openssl解析出来的私钥不一样 #204

@Feng-Duck

Description

@Feng-Duck

遇到过一个go库解析pfx文件得到的私钥并转化为PEM格式,和openssl解析同一个pfx文件产生的PEM格式的私钥里的公钥不一样,并且这个私钥用gmx509.ReadPrivateKeyFromPem(priKeyPem, nil)读取失败,go库解析示例如下:

`//解析pfx证书
_, priKey, err := gmpkcs12.SM2P12Decrypt(gmPfxFile, "123456")
if err != nil {
fmt.Println("decrypt gm pfx error", err)
return
}

priPem, err := gmx509.WritePrivateKeyToPem(priKey, nil)
if err != nil {
	fmt.Println("write sm2 pri key to pem error", err)
	return
}
fmt.Println("priPem:", string(priPem))

//将私钥转换成PEM格式字符串
priKeyBytes, err := gmpkcs12.MarshalECPrivateKey(priKey)
if err != nil {
	fmt.Println("marshal ec pri key error", err)
	return
}

priKeyPem := pem.EncodeToMemory(&pem.Block{
	Type:  "EC PRIVATE KET",
	Bytes: priKeyBytes,
})
log.Println("priKeyPem:", string(priKeyPem))

_, err = gmx509.ReadPrivateKeyFromPem(priKeyPem, nil)
if err != nil {
	fmt.Println("read error")
} else {
	fmt.Println("read success")
}`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions