@@ -3,14 +3,13 @@ package tls
33import (
44 "bytes"
55 "context"
6- "crypto/rsa"
7- "crypto/x509"
6+ "fmt"
87 "os"
98
10- "github.com/pkg/errors"
119 "github.com/sirupsen/logrus"
1210
1311 "github.com/openshift/installer/pkg/asset"
12+ "github.com/openshift/installer/pkg/types"
1413)
1514
1615// CertInterface contains cert.
@@ -128,29 +127,28 @@ func (c *SignedCertKey) Generate(_ context.Context,
128127 filenameBase string ,
129128 appendParent AppendParentChoice ,
130129) error {
131- var key * rsa.PrivateKey
132- var crt * x509.Certificate
133- var err error
134-
135130 caKey , err := PemToPrivateKey (parentCA .Key ())
136131 if err != nil {
137- logrus .Debugf ("Failed to parse RSA private key: %s" , err )
138- return errors . Wrap ( err , "failed to parse rsa private key" )
132+ logrus .Debugf ("Failed to parse private key: %s" , err )
133+ return fmt . Errorf ( "failed to parse private key: %w" , err )
139134 }
140135
141136 caCert , err := PemToCertificate (parentCA .Cert ())
142137 if err != nil {
143138 logrus .Debugf ("Failed to parse x509 certificate: %s" , err )
144- return errors . Wrap ( err , "failed to parse x509 certificate" )
139+ return fmt . Errorf ( "failed to parse x509 certificate: %w" , err )
145140 }
146141
147- key , crt , err = GenerateSignedCertificate (caKey , caCert , cfg )
142+ key , crt , err : = GenerateSignedCertificate (caKey , caCert , cfg )
148143 if err != nil {
149144 logrus .Debugf ("Failed to generate signed cert/key pair: %s" , err )
150- return errors . Wrap ( err , "failed to generate signed cert/key pair" )
145+ return fmt . Errorf ( "failed to generate signed cert/key pair: %w" , err )
151146 }
152147
153- c .KeyRaw = PrivateKeyToPem (key )
148+ c .KeyRaw , err = PrivateKeyToPem (key )
149+ if err != nil {
150+ return fmt .Errorf ("failed to encode private key to PEM: %w" , err )
151+ }
154152 c .CertRaw = CertToPem (crt )
155153
156154 if appendParent {
@@ -167,17 +165,23 @@ type SelfSignedCertKey struct {
167165 CertKey
168166}
169167
170- // Generate generates a cert/key pair signed by the specified parent CA .
168+ // Generate generates a self-signed cert/key pair using the specified PKI profile .
171169func (c * SelfSignedCertKey ) Generate (_ context.Context ,
172170 cfg * CertCfg ,
173171 filenameBase string ,
172+ pkiConfig * types.PKIConfig ,
174173) error {
175- key , crt , err := GenerateSelfSignedCertificate (cfg )
174+ params := PKIConfigToKeyParams (pkiConfig )
175+
176+ key , crt , err := GenerateSelfSignedCertificate (cfg , params )
176177 if err != nil {
177- return errors . Wrap ( err , "failed to generate self-signed cert/key pair" )
178+ return fmt . Errorf ( "failed to generate self-signed cert/key pair: %w" , err )
178179 }
179180
180- c .KeyRaw = PrivateKeyToPem (key )
181+ c .KeyRaw , err = PrivateKeyToPem (key )
182+ if err != nil {
183+ return fmt .Errorf ("failed to encode private key to PEM: %w" , err )
184+ }
181185 c .CertRaw = CertToPem (crt )
182186
183187 c .generateFiles (filenameBase )
@@ -192,29 +196,28 @@ func RegenerateSignedCertKey(
192196 parentCA CertKeyInterface ,
193197 appendParent AppendParentChoice ,
194198) ([]byte , []byte , error ) {
195- var key * rsa.PrivateKey
196- var crt * x509.Certificate
197- var err error
198-
199199 caKey , err := PemToPrivateKey (parentCA .Key ())
200200 if err != nil {
201- logrus .Debugf ("Failed to parse RSA private key: %s" , err )
202- return nil , nil , errors . Wrap ( err , "failed to parse rsa private key" )
201+ logrus .Debugf ("Failed to parse private key: %s" , err )
202+ return nil , nil , fmt . Errorf ( "failed to parse private key: %w" , err )
203203 }
204204
205205 caCert , err := PemToCertificate (parentCA .Cert ())
206206 if err != nil {
207207 logrus .Debugf ("Failed to parse x509 certificate: %s" , err )
208- return nil , nil , errors . Wrap ( err , "failed to parse x509 certificate" )
208+ return nil , nil , fmt . Errorf ( "failed to parse x509 certificate: %w" , err )
209209 }
210210
211- key , crt , err = GenerateSignedCertificate (caKey , caCert , cfg )
212- if err != nil {
213- logrus .Debugf ("Failed to generate signed cert/key pair: %s" , err )
214- return nil , nil , errors . Wrap ( err , "failed to generate signed cert/key pair" )
211+ key , crt , generateErr : = GenerateSignedCertificate (caKey , caCert , cfg )
212+ if generateErr != nil {
213+ logrus .Debugf ("Failed to generate signed cert/key pair: %s" , generateErr )
214+ return nil , nil , fmt . Errorf ( "failed to generate signed cert/key pair: %w" , generateErr )
215215 }
216216
217- keyRaw := PrivateKeyToPem (key )
217+ keyRaw , err := PrivateKeyToPem (key )
218+ if err != nil {
219+ return nil , nil , fmt .Errorf ("failed to encode private key to PEM: %w" , err )
220+ }
218221 certRaw := CertToPem (crt )
219222
220223 if appendParent {
0 commit comments