From 0f3289aa7b83e6fe8f2d803f1c6464765196996f Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 1 Feb 2016 12:38:17 +0100 Subject: Generalize Solver --- challenge.go | 12 ++++++------ solve_dns.go | 2 +- solve_http.go | 6 +++--- solve_pop.go | 2 +- solve_tls.go | 4 ++-- solve_webroot.go | 6 +++--- solver.go | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/challenge.go b/challenge.go index c39bc12..e08c2d9 100644 --- a/challenge.go +++ b/challenge.go @@ -40,22 +40,22 @@ const ( ) func (p *Provider) solve(s Signer, ch Challenge, sol Solver) error { - ka, err := s.KeyAuth(ch.Token) + var err error + + // update challenge + ch.Resource = ResChallenge + ch.KeyAuthorization, err = s.KeyAuth(ch.Token) if err != nil { return err } // prepare solver - err = sol.Solve(ch.Token, ka) + err = sol.Solve(ch) if err != nil { return err } defer sol.Solved() - // update challenge - ch.Resource = ResChallenge - ch.KeyAuthorization = ka - resp, err := p.post(ch.URI, s, ch) if err != nil { return err diff --git a/solve_dns.go b/solve_dns.go index c7ce910..fe8b254 100644 --- a/solve_dns.go +++ b/solve_dns.go @@ -6,7 +6,7 @@ func NewDNSSolver() Solver { return &dnsSolver{} } -func (s *dnsSolver) Solve(token, keyAuth string) error { +func (s *dnsSolver) Solve(_ Challenge) error { return errNotImplemented } diff --git a/solve_http.go b/solve_http.go index 308ef9f..15dc43d 100644 --- a/solve_http.go +++ b/solve_http.go @@ -23,11 +23,11 @@ func NewHTTPSolver(addr string) (Solver, error) { return s, nil } -func (s *httpSolver) Solve(token, keyAuth string) error { - p := path.Join(WellKnown, token) +func (s *httpSolver) Solve(ch Challenge) error { + p := path.Join(WellKnown, ch.Token) log.Println("solve http", p) http.HandleFunc(p, func(w http.ResponseWriter, r *http.Request) { - io.WriteString(w, keyAuth) + io.WriteString(w, ch.KeyAuthorization) }) return nil } diff --git a/solve_pop.go b/solve_pop.go index 57b1849..5f39e35 100644 --- a/solve_pop.go +++ b/solve_pop.go @@ -6,7 +6,7 @@ func NewPOPSolver() Solver { return &popSolver{} } -func (s *popSolver) Solve(token, keyAuth string) error { +func (s *popSolver) Solve(_ Challenge) error { return errNotImplemented } diff --git a/solve_tls.go b/solve_tls.go index 4941ab6..96ed3aa 100644 --- a/solve_tls.go +++ b/solve_tls.go @@ -90,8 +90,8 @@ func sniName(keyAuth string) string { return z[:32] + "." + z[32:] + ".acme.invalid" } -func (s *tlsSolver) Solve(_, keyAuth string) error { - name := sniName(keyAuth) +func (s *tlsSolver) Solve(ch Challenge) error { + name := sniName(ch.KeyAuthorization) log.Println("solve tls", name) crt, err := newCert(name) if err != nil { diff --git a/solve_webroot.go b/solve_webroot.go index a333bbb..2adf4db 100644 --- a/solve_webroot.go +++ b/solve_webroot.go @@ -16,15 +16,15 @@ func NewWebrootSolver(webroot string) Solver { return &webrootSolver{webroot: webroot} } -func (s *webrootSolver) Solve(token, keyAuth string) error { - s.file = path.Join(s.webroot, WellKnown, token) +func (s *webrootSolver) Solve(ch Challenge) error { + s.file = path.Join(s.webroot, WellKnown, ch.Token) log.Println("solve webroot", s.file) fd, err := CreatePubFile(s.file) if err != nil { return err } defer fd.Close() - _, err = io.WriteString(fd, keyAuth) + _, err = io.WriteString(fd, ch.KeyAuthorization) return err } diff --git a/solver.go b/solver.go index cfe84eb..79c2a86 100644 --- a/solver.go +++ b/solver.go @@ -9,6 +9,6 @@ const WellKnown = `/.well-known/acme-challenge/` // Solver decribes a solving interface type Solver interface { - Solve(token, keyAuth string) error + Solve(Challenge) error Solved() error } -- cgit v1.2.3