aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-11-27 00:51:27 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-11-27 00:51:27 +0100
commit8fbed65c409fdfe9316f5bb7c107ce7d09d82157 (patch)
treee803ff6d9493a567cef84a1c5eb4fcc2c850eebb
parent53602839bda166b06489ab4fce9aadf6012a8ac2 (diff)
Inital import
-rw-r--r--cmd/main.go15
-rw-r--r--directory.go20
-rw-r--r--http.go20
3 files changed, 55 insertions, 0 deletions
diff --git a/cmd/main.go b/cmd/main.go
new file mode 100644
index 0000000..4e57a23
--- /dev/null
+++ b/cmd/main.go
@@ -0,0 +1,15 @@
+package main
+
+import (
+ "log"
+
+ "dim13.org/acme"
+)
+
+func main() {
+ dir, err := acme.NewDirectory(acme.LEV1)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Println(dir)
+}
diff --git a/directory.go b/directory.go
new file mode 100644
index 0000000..8dde47e
--- /dev/null
+++ b/directory.go
@@ -0,0 +1,20 @@
+package acme
+
+const (
+ LEV1 = `https://acme-v01.api.letsencrypt.org/directory`
+ LEStaging = `https://acme-staging.api.letsencrypt.org/directory`
+)
+
+type Directory struct {
+ NewReg string `json:"new-reg"`
+ RecoverReg string `json:"recover-reg"`
+ NewAuthz string `json:"new-authz"`
+ NewCert string `json:"new-cert"`
+ RevokeCert string `json:"revoke-cert"`
+}
+
+func NewDirectory(uri string) (Directory, error) {
+ var dir Directory
+ err := Get(uri, &dir)
+ return dir, err
+}
diff --git a/http.go b/http.go
new file mode 100644
index 0000000..5e5bebf
--- /dev/null
+++ b/http.go
@@ -0,0 +1,20 @@
+package acme
+
+import (
+ "encoding/json"
+ "io/ioutil"
+ "net/http"
+)
+
+func Get(uri string, v interface{}) error {
+ resp, err := http.Get(uri)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return err
+ }
+ return json.Unmarshal(body, v)
+}