aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nonce.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/nonce.go b/nonce.go
new file mode 100644
index 0000000..95440ab
--- /dev/null
+++ b/nonce.go
@@ -0,0 +1,24 @@
+package acme
+
+import (
+ "errors"
+ "net/http"
+)
+
+var errNoNonces = errors.New("No nonces available")
+
+type nonce chan string
+
+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
+}