aboutsummaryrefslogtreecommitdiff
path: root/account.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-14 20:35:57 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-03-14 20:35:57 +0100
commit0d8dd1a0c58a2e42e937bf0281812f40770127ac (patch)
treea383b115ef08ea742b0ad6da1fce1238ed4e8b42 /account.go
parent2443d4d63cfd5ed7bd7bd6413b6bc958aba84200 (diff)
Rename
Diffstat (limited to 'account.go')
-rw-r--r--account.go67
1 files changed, 0 insertions, 67 deletions
diff --git a/account.go b/account.go
deleted file mode 100644
index a513d6e..0000000
--- a/account.go
+++ /dev/null
@@ -1,67 +0,0 @@
-package acme
-
-import (
- "crypto"
- "crypto/ecdsa"
- "crypto/rsa"
- "encoding/base64"
- "io"
- "strings"
-
- "github.com/square/go-jose"
-)
-
-// KeySize is a default RSA key size
-const KeySize = 2048
-
-// Signer ...
-type Signer struct {
- signer jose.Signer
- thumb string
-}
-
-func NewSigner(privKey crypto.PrivateKey) (*Signer, error) {
- thumb := func(alg string, pubKey crypto.PublicKey) (string, error) {
- wk := &jose.JsonWebKey{Key: pubKey, Algorithm: alg}
- t, err := wk.Thumbprint(crypto.SHA256)
- return base64.RawURLEncoding.EncodeToString(t), err
- }
- switch k := privKey.(type) {
- case *rsa.PrivateKey:
- s, err := jose.NewSigner(jose.RS256, k)
- if err != nil {
- return nil, err
- }
- t, err := thumb("RSA", k.Public())
- if err != nil {
- return nil, err
- }
- return &Signer{signer: s, thumb: t}, nil
- case *ecdsa.PrivateKey:
- s, err := jose.NewSigner(jose.ES384, k)
- if err != nil {
- return nil, err
- }
- t, err := thumb("EC", k.Public())
- if err != nil {
- return nil, err
- }
- return &Signer{signer: s, thumb: t}, nil
- default:
- return nil, errKeyType
- }
-}
-
-// Sign implements Signer interface
-func (s Signer) Sign(msg []byte, n jose.NonceSource) (io.Reader, error) {
- s.signer.SetNonceSource(n)
- obj, err := s.signer.Sign(msg)
- if err != nil {
- return nil, err
- }
- return strings.NewReader(obj.FullSerialize()), nil
-}
-
-func (s Signer) KeyAuth(token string) string {
- return token + "." + s.thumb
-}