Revert adding locks to jws - not in scope of this branch

This commit is contained in:
xenolf 2015-11-17 22:36:25 +01:00
parent 6671fd137c
commit 487c8763d5

View file

@ -6,15 +6,13 @@ import (
"crypto/rsa" "crypto/rsa"
"fmt" "fmt"
"net/http" "net/http"
"sync"
"github.com/letsencrypt/go-jose" "github.com/letsencrypt/go-jose"
) )
type jws struct { type jws struct {
privKey *rsa.PrivateKey privKey *rsa.PrivateKey
nonces []string nonces []string
nonceMutex sync.Mutex
} }
func keyAsJWK(key *ecdsa.PublicKey) jose.JsonWebKey { func keyAsJWK(key *ecdsa.PublicKey) jose.JsonWebKey {
@ -26,9 +24,11 @@ func keyAsJWK(key *ecdsa.PublicKey) jose.JsonWebKey {
// Posts a JWS signed message to the specified URL // Posts a JWS signed message to the specified URL
func (j *jws) post(url string, content []byte) (*http.Response, error) { func (j *jws) post(url string, content []byte) (*http.Response, error) {
err := j.getNonce(url) if len(j.nonces) == 0 {
if err != nil { err := j.getNonce(url)
return nil, fmt.Errorf("Could not get a nonce for request: %s\n\t\tError: %v", url, err) if err != nil {
return nil, fmt.Errorf("Could not get a nonce for request: %s\n\t\tError: %v", url, err)
}
} }
signedContent, err := j.signContent(content) signedContent, err := j.signContent(content)
@ -66,20 +66,11 @@ func (j *jws) getNonceFromResponse(resp *http.Response) error {
return fmt.Errorf("Server did not respond with a proper nonce header.") return fmt.Errorf("Server did not respond with a proper nonce header.")
} }
j.nonceMutex.Lock()
j.nonces = append(j.nonces, nonce) j.nonces = append(j.nonces, nonce)
j.nonceMutex.Unlock()
return nil return nil
} }
func (j *jws) getNonce(url string) error { func (j *jws) getNonce(url string) error {
j.nonceMutex.Lock()
if len(j.nonces) > 0 {
j.nonceMutex.Unlock()
return nil
}
j.nonceMutex.Unlock()
resp, err := http.Head(url) resp, err := http.Head(url)
if err != nil { if err != nil {
return err return err
@ -89,9 +80,6 @@ func (j *jws) getNonce(url string) error {
} }
func (j *jws) consumeNonce() string { func (j *jws) consumeNonce() string {
j.nonceMutex.Lock()
defer j.nonceMutex.Unlock()
nonce := "" nonce := ""
if len(j.nonces) == 0 { if len(j.nonces) == 0 {
return nonce return nonce