fix: generate non encrypted key when passphrase is empty
Cadoles/go-http-peering/pipeline/head There was a failure building this commit Details

This commit is contained in:
wpetit 2024-01-05 09:55:10 +01:00
parent 20c4bef161
commit db06098fdd
1 changed files with 10 additions and 10 deletions

View File

@ -53,16 +53,13 @@ func DecodePEMEncryptedPrivateKey(key []byte, passphrase []byte) (*rsa.PrivateKe
} }
func EncodePrivateKeyToEncryptedPEM(key *rsa.PrivateKey, passphrase []byte) ([]byte, error) { func EncodePrivateKeyToEncryptedPEM(key *rsa.PrivateKey, passphrase []byte) ([]byte, error) {
if passphrase == nil {
return nil, errors.New("passphrase cannot be empty")
}
block := &pem.Block{ block := &pem.Block{
Type: "RSA PRIVATE KEY", Type: "RSA PRIVATE KEY",
Bytes: x509.MarshalPKCS1PrivateKey(key), Bytes: x509.MarshalPKCS1PrivateKey(key),
} }
block, err := x509.EncryptPEMBlock( if len(passphrase) != 0 {
encryptedBlock, err := x509.EncryptPEMBlock(
rand.Reader, block.Type, rand.Reader, block.Type,
block.Bytes, passphrase, x509.PEMCipherAES256, block.Bytes, passphrase, x509.PEMCipherAES256,
) )
@ -70,5 +67,8 @@ func EncodePrivateKeyToEncryptedPEM(key *rsa.PrivateKey, passphrase []byte) ([]b
return nil, errors.WithStack(err) return nil, errors.WithStack(err)
} }
block = encryptedBlock
}
return pem.EncodeToMemory(block), nil return pem.EncodeToMemory(block), nil
} }