"openssl rsa-in-previate.pem-ofform DER-pubout-out public.DER";
您可以考虑像google/trillian
这样的库,它确实包含MustMarshalPublicPEMToDER(keyPEM string) []byte
函数。
// MustMarshalPublicPEMToDER reads a PEM-encoded public key and returns it in DER encoding.
// If an error occurs, it panics.
func MustMarshalPublicPEMToDER(keyPEM string) []byte {
block, _ := pem.Decode([]byte(keyPEM))
key, err := x509.ParsePKIXPublicKey(block.Bytes)
if err != nil {
panic(err)
}
keyDER, err := x509.MarshalPKIXPublicKey(key)
if err != nil {
panic(err)
}
return keyDER
}
正如该函数的注释所示,它读取一个PEM编码的公钥。
正如Topaco所指出的,您需要crypto/x509#ParsePKCS8PrivateKey
才能读取私人PKCS#8 PEM编码的密钥
封送部分不会更改。