...
1
16
17 package signer
18
19 import (
20 "crypto/x509"
21 "time"
22
23 apiutil "github.com/cert-manager/cert-manager/pkg/api/util"
24 cmapi "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
25 cmmeta "github.com/cert-manager/cert-manager/pkg/apis/meta/v1"
26 "github.com/cert-manager/cert-manager/pkg/util/pki"
27 certificatesv1 "k8s.io/api/certificates/v1"
28 )
29
30 type certificateRequestImpl struct {
31 *cmapi.CertificateRequest
32 }
33
34 var _ CertificateRequestObject = &certificateRequestImpl{}
35
36 func CertificateRequestObjectFromCertificateRequest(cr *cmapi.CertificateRequest) CertificateRequestObject {
37 return &certificateRequestImpl{cr}
38 }
39
40 func (c *certificateRequestImpl) GetRequest() (*x509.Certificate, time.Duration, []byte, error) {
41 duration := apiutil.DefaultCertDuration(c.CertificateRequest.Spec.Duration)
42
43 template, err := pki.CertificateTemplateFromCertificateRequest(c.CertificateRequest)
44 if err != nil {
45 return nil, 0, nil, err
46 }
47
48 return template, duration, c.Spec.Request, nil
49 }
50
51 func (c *certificateRequestImpl) GetConditions() []cmapi.CertificateRequestCondition {
52 return c.Status.Conditions
53 }
54
55 type certificateSigningRequestImpl struct {
56 *certificatesv1.CertificateSigningRequest
57 }
58
59 var _ CertificateRequestObject = &certificateSigningRequestImpl{}
60
61 func CertificateRequestObjectFromCertificateSigningRequest(csr *certificatesv1.CertificateSigningRequest) CertificateRequestObject {
62 return &certificateSigningRequestImpl{csr}
63 }
64
65 func (c *certificateSigningRequestImpl) GetRequest() (*x509.Certificate, time.Duration, []byte, error) {
66 duration, err := pki.DurationFromCertificateSigningRequest(c.CertificateSigningRequest)
67 if err != nil {
68 return nil, 0, nil, err
69 }
70
71 template, err := pki.CertificateTemplateFromCertificateSigningRequest(c.CertificateSigningRequest)
72 if err != nil {
73 return nil, 0, nil, err
74 }
75
76 return template, duration, c.Spec.Request, nil
77 }
78
79 func (c *certificateSigningRequestImpl) GetConditions() []cmapi.CertificateRequestCondition {
80 conditions := make([]cmapi.CertificateRequestCondition, 0, len(c.Status.Conditions))
81 for _, condition := range c.Status.Conditions {
82 lastTransition := condition.LastTransitionTime
83 conditions = append(conditions, cmapi.CertificateRequestCondition{
84 Type: cmapi.CertificateRequestConditionType(condition.Type),
85 Status: cmmeta.ConditionStatus(condition.Status),
86 LastTransitionTime: &lastTransition,
87 Reason: condition.Reason,
88 Message: condition.Message,
89 })
90 }
91 return conditions
92 }
93
View as plain text