Skip to content

Commit 92a82a7

Browse files
committed
pkg/tlsutil: add parsePEMEncodedCert and parsePEMEncodedPrivateKey
1 parent ef476a9 commit 92a82a7

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

pkg/tlsutil/primitives.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"crypto/x509"
2121
"crypto/x509/pkix"
2222
"encoding/pem"
23+
"errors"
2324
"fmt"
2425
"math"
2526
"math/big"
@@ -54,6 +55,24 @@ func encodeCertificatePEM(cert *x509.Certificate) []byte {
5455
})
5556
}
5657

58+
// parsePEMEncodedCert parses a certificate from the given pemdata
59+
func parsePEMEncodedCert(pemdata []byte) (*x509.Certificate, error) {
60+
decoded, _ := pem.Decode(pemdata)
61+
if decoded == nil {
62+
return nil, errors.New("no PEM data found")
63+
}
64+
return x509.ParseCertificate(decoded.Bytes)
65+
}
66+
67+
// parsePEMEncodedPrivateKey parses a private key from given pemdata
68+
func parsePEMEncodedPrivateKey(pemdata []byte) (*rsa.PrivateKey, error) {
69+
decoded, _ := pem.Decode(pemdata)
70+
if decoded == nil {
71+
return nil, errors.New("no PEM data found")
72+
}
73+
return x509.ParsePKCS1PrivateKey(decoded.Bytes)
74+
}
75+
5776
// newSelfSignedCACertificate returns a self-signed CA certificate based on given configuration and private key.
5877
// The certificate has one-year lease.
5978
func newSelfSignedCACertificate(key *rsa.PrivateKey) (*x509.Certificate, error) {

0 commit comments

Comments
 (0)