package acme import ( "errors" "net/http" ) var errNoNonces = errors.New("No nonces available") type nonce chan string func newNonce() nonce { return make(nonce, 100) } func (n nonce) parse(r *http.Response) { if nonce := r.Header.Get("Replay-Nonce"); nonce != "" { n <- nonce } } // Nonce implements jose nonce provider func (n nonce) Nonce() (string, error) { if nonce, ok := <-n; ok { return nonce, nil } return "", errNoNonces }