aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--account.go14
-rw-r--r--client.go2
2 files changed, 12 insertions, 4 deletions
diff --git a/account.go b/account.go
index f2cf7e8..6749bbf 100644
--- a/account.go
+++ b/account.go
@@ -53,7 +53,7 @@ type Signer interface {
}
type Thumber interface {
- Thumb(string) (string, error)
+ Thumb() (string, error)
}
type ThumbSigner interface {
@@ -71,11 +71,19 @@ func (a *Account) Sign(msg []byte, n jose.NonceSource) (io.Reader, error) {
return strings.NewReader(obj.FullSerialize()), nil
}
-func (a *Account) Thumb(token string) (string, error) {
+func (a *Account) Thumb() (string, error) {
k := &jose.JsonWebKey{Key: a.privKey.Public(), Algorithm: "RSA"}
thumb, err := k.Thumbprint(crypto.SHA256)
if err != nil {
return "", err
}
- return token + "." + base64.RawURLEncoding.EncodeToString(thumb), nil
+ 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
}
diff --git a/client.go b/client.go
index 6b356fe..9bed81d 100644
--- a/client.go
+++ b/client.go
@@ -232,7 +232,7 @@ func (c *Client) Authorize(s ThumbSigner, domain string) error {
return errors.New("can't solve any challenges")
}
- ka, _ := s.Thumb(ch.Token)
+ ka, _ := KeyAuthorization(s, ch.Token)
ans := &Challenge{
Resource: ResChallenge,
Type: ch.Type,