From 1ed6855bde15f0e2c118b52d359ff29db8fa83ed Mon Sep 17 00:00:00 2001 From: James Munnelly Date: Wed, 8 Aug 2018 10:31:23 +0100 Subject: [PATCH] Expose GetCertificate function --- pkg/acme/client/fake.go | 8 ++++++++ pkg/acme/client/interfaces.go | 1 + pkg/acme/client/middleware/logger.go | 5 +++++ third_party/crypto/acme/acme.go | 4 ++-- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/acme/client/fake.go b/pkg/acme/client/fake.go index 4863a0f41..6d174dba1 100644 --- a/pkg/acme/client/fake.go +++ b/pkg/acme/client/fake.go @@ -14,6 +14,7 @@ import ( type FakeACME struct { FakeCreateOrder func(ctx context.Context, order *acme.Order) (*acme.Order, error) FakeGetOrder func(ctx context.Context, url string) (*acme.Order, error) + FakeGetCertificate func(ctx context.Context, url string) ([][]byte, error) FakeWaitOrder func(ctx context.Context, url string) (*acme.Order, error) FakeFinalizeOrder func(ctx context.Context, finalizeURL string, csr []byte) (der [][]byte, err error) FakeAcceptChallenge func(ctx context.Context, chal *acme.Challenge) (*acme.Challenge, error) @@ -40,6 +41,13 @@ func (f *FakeACME) GetOrder(ctx context.Context, url string) (*acme.Order, error return nil, fmt.Errorf("GetOrder not implemented") } +func (f *FakeACME) GetCertificate(ctx context.Context, url string) ([][]byte, error) { + if f.FakeGetCertificate != nil { + return f.FakeGetCertificate(ctx, url) + } + return nil, fmt.Errorf("GetCertificate not implemented") +} + func (f *FakeACME) WaitOrder(ctx context.Context, url string) (*acme.Order, error) { if f.FakeWaitOrder != nil { return f.FakeWaitOrder(ctx, url) diff --git a/pkg/acme/client/interfaces.go b/pkg/acme/client/interfaces.go index c3a234741..fd73663f5 100644 --- a/pkg/acme/client/interfaces.go +++ b/pkg/acme/client/interfaces.go @@ -9,6 +9,7 @@ import ( type Interface interface { CreateOrder(ctx context.Context, order *acme.Order) (*acme.Order, error) GetOrder(ctx context.Context, url string) (*acme.Order, error) + GetCertificate(ctx context.Context, url string) ([][]byte, error) WaitOrder(ctx context.Context, url string) (*acme.Order, error) FinalizeOrder(ctx context.Context, finalizeURL string, csr []byte) (der [][]byte, err error) AcceptChallenge(ctx context.Context, chal *acme.Challenge) (*acme.Challenge, error) diff --git a/pkg/acme/client/middleware/logger.go b/pkg/acme/client/middleware/logger.go index 45693c5ee..7b93446a8 100644 --- a/pkg/acme/client/middleware/logger.go +++ b/pkg/acme/client/middleware/logger.go @@ -28,6 +28,11 @@ func (l *Logger) GetOrder(ctx context.Context, url string) (*acme.Order, error) return l.baseCl.GetOrder(ctx, url) } +func (l *Logger) GetCertificate(ctx context.Context, url string) ([][]byte, error) { + glog.Infof("Calling GetCertificate") + return l.baseCl.GetCertificate(ctx, url) +} + func (l *Logger) WaitOrder(ctx context.Context, url string) (*acme.Order, error) { glog.Infof("Calling WaitOrder") return l.baseCl.WaitOrder(ctx, url) diff --git a/third_party/crypto/acme/acme.go b/third_party/crypto/acme/acme.go index 0308baada..944c60143 100644 --- a/third_party/crypto/acme/acme.go +++ b/third_party/crypto/acme/acme.go @@ -247,7 +247,7 @@ func (c *Client) FinalizeOrder(ctx context.Context, finalizeURL string, csr []by return nil, fmt.Errorf("acme: unexpected order status %q", o.Status) } - return c.getCert(ctx, o.CertificateURL) + return c.GetCertificate(ctx, o.CertificateURL) } // GetOrder retrieves an order identified by url. @@ -818,7 +818,7 @@ func nonceFromHeader(h http.Header) string { return h.Get("Replay-Nonce") } -func (c *Client) getCert(ctx context.Context, url string) ([][]byte, error) { +func (c *Client) GetCertificate(ctx context.Context, url string) ([][]byte, error) { res, err := c.get(ctx, url) if err != nil { return nil, err