From f249ea3e2595fdc0ffda3497b1c2c7546b87f6cc Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 12 Jan 2016 20:59:15 +0100 Subject: kiss --- account.go | 22 +++------------------- provider.go | 11 +++++------ 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/account.go b/account.go index 95e2dde..32619f0 100644 --- a/account.go +++ b/account.go @@ -49,15 +49,7 @@ func newAccount(key *rsa.PrivateKey) (*Account, error) { // Signer describes a signing interface type Signer interface { Sign(interface{}, jose.NonceSource) (io.Reader, error) -} - -type Thumber interface { - Thumb() (string, error) -} - -type ThumbSigner interface { - Signer - Thumber + Thumb(string) (string, error) } // Sign implements Signer interface @@ -74,21 +66,13 @@ func (a *Account) Sign(v interface{}, n jose.NonceSource) (io.Reader, error) { return strings.NewReader(obj.FullSerialize()), nil } -func (a *Account) Thumb() (string, error) { +func (a *Account) Thumb(token string) (string, error) { k := &jose.JsonWebKey{Key: a.key.Public(), Algorithm: "RSA"} thumb, err := k.Thumbprint(crypto.SHA256) if err != nil { return "", err } - return base64.RawURLEncoding.EncodeToString(thumb), nil -} - -func KeyAuthorization(s Thumber, token string) (string, error) { - thumb, err := s.Thumb() - if err != nil { - return "", err - } - return token + "." + thumb, nil + return token + "." + base64.RawURLEncoding.EncodeToString(thumb), nil } func (a *Account) SaveKey(fname string) error { diff --git a/provider.go b/provider.go index 0266281..d47a54c 100644 --- a/provider.go +++ b/provider.go @@ -188,22 +188,21 @@ func (p *Provider) Register(s Signer, c Contacts) error { return err } -func (p *Provider) solve(s ThumbSigner, ch Challenge) error { - thumb, err := s.Thumb() +func (p *Provider) solve(s Signer, ch Challenge) error { + thumb, err := s.Thumb(ch.Token) if err != nil { return err } - ka := ch.Token + "." + thumb r := &Challenge{ Resource: ResChallenge, Type: ch.Type, - KeyAuthorization: ka, + KeyAuthorization: thumb, } ns, err := p.postJson(ch.URI, s, r) if err != nil { return err } - err = ch.Solve(ch.Token, ka) + err = ch.Solve(ch.Token, thumb) if err != nil { return err } @@ -218,7 +217,7 @@ func (p *Provider) solve(s ThumbSigner, ch Challenge) error { return nil } -func (p *Provider) Authorize(s ThumbSigner, d *Desire) error { +func (p *Provider) Authorize(s Signer, d *Desire) error { for _, domain := range d.altnames { r := &Authorization{ Resource: ResNewAuthz, -- cgit v1.2.3