@@ -9,14 +9,14 @@ import (
9
9
"crypto/x509"
10
10
"crypto/x509/pkix"
11
11
"encoding/pem"
12
+ "errors"
12
13
"fmt"
13
14
"math/big"
14
15
"os"
15
16
"sync"
16
17
"time"
17
18
18
19
infrav1 "github.com/flux-iac/tofu-controller/api/v1alpha2"
19
- "github.com/pkg/errors"
20
20
corev1 "k8s.io/api/core/v1"
21
21
"k8s.io/apimachinery/pkg/api/meta"
22
22
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -495,12 +495,12 @@ func buildArtifactsFromSecret(secret *corev1.Secret) (caArtifacts *KeyPairArtifa
495
495
func parseArtifacts (certName , keyName string , secret * corev1.Secret ) (* KeyPairArtifacts , error ) {
496
496
certPem , ok := secret .Data [certName ]
497
497
if ! ok {
498
- return nil , errors . New ( fmt .Sprintf ( "Cert Secret is not well-formed, missing %s" , caCertName ) )
498
+ return nil , fmt .Errorf ( "cert Secret is not well-formed, missing %s" , caCertName )
499
499
}
500
500
501
501
keyPem , ok := secret .Data [keyName ]
502
502
if ! ok {
503
- return nil , errors . New ( fmt .Sprintf ( "Cert Secret is not well-formed, missing %s" , caKeyName ) )
503
+ return nil , fmt .Errorf ( "cert Secret is not well-formed, missing %s" , caKeyName )
504
504
}
505
505
506
506
certDer , _ := pem .Decode (certPem )
@@ -510,7 +510,7 @@ func parseArtifacts(certName, keyName string, secret *corev1.Secret) (*KeyPairAr
510
510
511
511
cert , err := x509 .ParseCertificate (certDer .Bytes )
512
512
if err != nil {
513
- return nil , errors . Wrap ( err , "while parsing CA cert" )
513
+ return nil , fmt . Errorf ( "while parsing CA cert: %w" , err )
514
514
}
515
515
516
516
keyDer , _ := pem .Decode (keyPem )
@@ -520,7 +520,7 @@ func parseArtifacts(certName, keyName string, secret *corev1.Secret) (*KeyPairAr
520
520
521
521
key , err := x509 .ParsePKCS1PrivateKey (keyDer .Bytes )
522
522
if err != nil {
523
- return nil , errors . Wrap ( err , "while parsing key" )
523
+ return nil , fmt . Errorf ( "while parsing key: %w" , err )
524
524
}
525
525
526
526
return & KeyPairArtifacts {
@@ -552,19 +552,19 @@ func (cr *CertRotator) createCACert(begin, end time.Time) (*KeyPairArtifacts, er
552
552
}
553
553
key , err := rsa .GenerateKey (rand .Reader , 2048 )
554
554
if err != nil {
555
- return nil , errors . Wrap ( err , "generating key" )
555
+ return nil , fmt . Errorf ( "generating key: %w" , err )
556
556
}
557
557
der , err := x509 .CreateCertificate (rand .Reader , certTemplate , certTemplate , key .Public (), key )
558
558
if err != nil {
559
- return nil , errors . Wrap ( err , "creating certificate" )
559
+ return nil , fmt . Errorf ( "creating certificate: %w" , err )
560
560
}
561
561
certPEM , keyPEM , err := pemEncode (der , key )
562
562
if err != nil {
563
- return nil , errors . Wrap ( err , "encoding PEM" )
563
+ return nil , fmt . Errorf ( "encoding PEM: %w" , err )
564
564
}
565
565
cert , err := x509 .ParseCertificate (der )
566
566
if err != nil {
567
- return nil , errors . Wrap ( err , "parsing certificate" )
567
+ return nil , fmt . Errorf ( "parsing certificate: %w" , err )
568
568
}
569
569
570
570
return & KeyPairArtifacts {Cert : cert , Key : key , CertPEM : certPEM , KeyPEM : keyPEM , validUntil : end }, nil
@@ -592,15 +592,15 @@ func (cr *CertRotator) createCertPEM(ca *KeyPairArtifacts, hostnames []string, b
592
592
}
593
593
key , err := rsa .GenerateKey (rand .Reader , 2048 )
594
594
if err != nil {
595
- return nil , nil , errors . Wrap ( err , "generating key" )
595
+ return nil , nil , fmt . Errorf ( "generating key: %w" , err )
596
596
}
597
597
der , err := x509 .CreateCertificate (rand .Reader , certTemplate , ca .Cert , key .Public (), ca .Key )
598
598
if err != nil {
599
- return nil , nil , errors . Wrap ( err , "creating certificate" )
599
+ return nil , nil , fmt . Errorf ( "creating certificate: %w" , err )
600
600
}
601
601
certPEM , keyPEM , err := pemEncode (der , key )
602
602
if err != nil {
603
- return nil , nil , errors . Wrap ( err , "encoding PEM" )
603
+ return nil , nil , fmt . Errorf ( "encoding PEM: %w" , err )
604
604
}
605
605
return certPEM , keyPEM , nil
606
606
}
@@ -609,11 +609,11 @@ func (cr *CertRotator) createCertPEM(ca *KeyPairArtifacts, hostnames []string, b
609
609
func pemEncode (certificateDER []byte , key * rsa.PrivateKey ) ([]byte , []byte , error ) {
610
610
certBuf := & bytes.Buffer {}
611
611
if err := pem .Encode (certBuf , & pem.Block {Type : "CERTIFICATE" , Bytes : certificateDER }); err != nil {
612
- return nil , nil , errors . Wrap ( err , "encoding cert" )
612
+ return nil , nil , fmt . Errorf ( "encoding cert: %w" , err )
613
613
}
614
614
keyBuf := & bytes.Buffer {}
615
615
if err := pem .Encode (keyBuf , & pem.Block {Type : "RSA PRIVATE KEY" , Bytes : x509 .MarshalPKCS1PrivateKey (key )}); err != nil {
616
- return nil , nil , errors . Wrap ( err , "encoding key" )
616
+ return nil , nil , fmt . Errorf ( "encoding key: %w" , err )
617
617
}
618
618
return certBuf .Bytes (), keyBuf .Bytes (), nil
619
619
}
@@ -622,22 +622,6 @@ func (cr *CertRotator) lookaheadTime() time.Time {
622
622
return time .Now ().Add (cr .LookaheadInterval )
623
623
}
624
624
625
- func (cr * CertRotator ) validServerCert (caCert , cert , key []byte ) bool {
626
- valid , err := ValidCert (caCert , cert , key , cr .DNSName , cr .extKeyUsages , cr .lookaheadTime ())
627
- if err != nil {
628
- return false
629
- }
630
- return valid
631
- }
632
-
633
- func (cr * CertRotator ) validCACert (cert , key []byte ) bool {
634
- valid , err := ValidCert (cert , cert , key , cr .CAName , nil , cr .lookaheadTime ())
635
- if err != nil {
636
- return false
637
- }
638
- return valid
639
- }
640
-
641
625
func (cr * CertRotator ) generateNamespaceTLS (namespace string ) (* corev1.Secret , error ) {
642
626
n := len (cr .artifactCaches )
643
627
// get last artifact cache
@@ -698,13 +682,13 @@ func ValidCert(caCert, cert, key []byte, dnsName string, keyUsages *[]x509.ExtKe
698
682
}
699
683
cac , err := x509 .ParseCertificate (caDer .Bytes )
700
684
if err != nil {
701
- return false , errors . Wrap ( err , "parsing CA cert" )
685
+ return false , fmt . Errorf ( "parsing CA cert: %w" , err )
702
686
}
703
687
pool .AddCert (cac )
704
688
705
689
_ , err = tls .X509KeyPair (cert , key )
706
690
if err != nil {
707
- return false , errors . Wrap ( err , "building key pair" )
691
+ return false , fmt . Errorf ( "building key pair: %w" , err )
708
692
}
709
693
710
694
b , _ := pem .Decode (cert )
@@ -714,7 +698,7 @@ func ValidCert(caCert, cert, key []byte, dnsName string, keyUsages *[]x509.ExtKe
714
698
715
699
crt , err := x509 .ParseCertificate (b .Bytes )
716
700
if err != nil {
717
- return false , errors . Wrap ( err , "parsing cert" )
701
+ return false , fmt . Errorf ( "parsing cert: %w" , err )
718
702
}
719
703
720
704
opt := x509.VerifyOptions {
@@ -728,7 +712,7 @@ func ValidCert(caCert, cert, key []byte, dnsName string, keyUsages *[]x509.ExtKe
728
712
729
713
_ , err = crt .Verify (opt )
730
714
if err != nil {
731
- return false , errors . Wrap ( err , "verifying cert" )
715
+ return false , fmt . Errorf ( "verifying cert: %w" , err )
732
716
}
733
717
return true , nil
734
718
}
0 commit comments