From 0f0d5ff117afdb1500f37d3d418379efc7201184 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 18 Jan 2016 19:50:27 +0100 Subject: Fix backup --- provider.go | 54 +++++++++++++++++++++--------------------------------- 1 file changed, 21 insertions(+), 33 deletions(-) (limited to 'provider.go') diff --git a/provider.go b/provider.go index 5268842..5eaeefc 100644 --- a/provider.go +++ b/provider.go @@ -138,37 +138,29 @@ func problem(r io.Reader) error { return p } -func (p *Provider) newReg(uri string, s Signer, c Contacts) (nextStep, error) { +func (p *Provider) Register(s Signer, c Contacts) error { + // first step: new-reg r := &Registration{ Resource: ResNewReg, Contact: c, } - resp, err := p.post(uri, s, r) - if err != nil { - return nextStep{}, err + resp, err := p.post(p.NewReg, s, r) + if err != nil && err.(Problem).Err != ErrMalformed { + return err } - return parseHeader(resp), parseJson(resp, r) -} + ns := parseHeader(resp) -func (p *Provider) agree(uri string, s Signer, tos string) (nextStep, error) { - r := &Registration{ + // second step: reg, agree to tos + r = &Registration{ Resource: ResReg, - Agreement: tos, + Agreement: ns.Link["terms-of-service"], } - resp, err := p.post(uri, s, r) + resp, err = p.post(ns.Location, s, r) if err != nil { - return nextStep{}, err - } - return parseHeader(resp), parseJson(resp, r) -} - -func (p *Provider) Register(s Signer, c Contacts) error { - ns, err := p.newReg(p.NewReg, s, c) - if err != nil && err.(Problem).Err != ErrMalformed { return err } - _, err = p.agree(ns.Location, s, ns.Link["terms-of-service"]) - return err + resp.Body.Close() + return nil } func (p *Provider) solve(s Signer, ch Challenge) error { @@ -244,33 +236,29 @@ func (p *Provider) queryStatus(uri string) (bool, error) { return r.Status == StatusValid, nil } -func (p *Provider) newCert(uri string, s Signer, d *Desire) (nextStep, *x509.Certificate, error) { +func (p *Provider) Cert(s Signer, d *Desire) error { + // first step: post csr csr, err := d.newCSR() if err != nil { - return nextStep{}, nil, err + return err } r := &CSR{ Resource: ResNewCert, CSR: csr, } - resp, err := p.post(uri, s, r) + resp, err := p.post(p.NewCert, s, r) if err != nil { - return nextStep{}, nil, err + return err } - ns := parseHeader(resp) - cert, err := parseCert(resp) - return ns, cert, err -} - -func (p *Provider) Cert(s Signer, d *Desire) error { - ns, crt, err := p.newCert(p.NewCert, s, d) + crt, err := parseCert(resp) if err != nil { return err } d.cert = append(d.cert, crt) - // TODO Get cert on empty response + ns := parseHeader(resp) - resp, err := p.get(ns.Link["up"]) + // second step: cet CA + resp, err = p.get(ns.Link["up"]) if err != nil { return err } -- cgit v1.2.3