aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-11-28 12:51:56 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-11-28 12:51:56 +0100
commitc68fe908ff33002d7522fd9e26a8f3ea8629426b (patch)
treea5b1ac4c5a7ee540042037cb9408d8f26623322a
parent97828222b81a87b6fb5eeb6ecda33326e7402170 (diff)
Add nonce provider
-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
+}