aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-12-17 15:50:01 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-12-17 15:50:01 +0100
commite180142d73a37fcce5b4857ddef6e713f7ae2492 (patch)
tree1753a40cb46d71c656bb98e503cfcddc64a0c3d0 /cmd
parent3e1a89a27dcd7847e80dd717bbed8360b322240c (diff)
Rename files
Diffstat (limited to 'cmd')
-rw-r--r--cmd/acme/config.go (renamed from cmd/acmed/config.go)0
-rw-r--r--cmd/acme/main.go112
-rw-r--r--cmd/acmed/main.go107
3 files changed, 86 insertions, 133 deletions
diff --git a/cmd/acmed/config.go b/cmd/acme/config.go
index 7f5ffbe..7f5ffbe 100644
--- a/cmd/acmed/config.go
+++ b/cmd/acme/config.go
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index c9faa85..058eefb 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -1,47 +1,107 @@
package main
import (
+ "crypto/rand"
+ "crypto/rsa"
+ "crypto/x509"
+ "encoding/pem"
"flag"
+ "io"
+ "io/ioutil"
"log"
+ "os"
+ "path"
"dim13.org/acme"
)
-func must(err error) {
+var confName = flag.String("conf", "acme.toml", "configuration file")
+
+func newKey(w io.Writer, size int) (*rsa.PrivateKey, error) {
+ key, err := rsa.GenerateKey(rand.Reader, size)
if err != nil {
- log.Fatal("must:", err)
+ return nil, err
+ }
+ block := &pem.Block{
+ Type: "RSA PRIVATE KEY",
+ Bytes: x509.MarshalPKCS1PrivateKey(key),
}
+ return key, pem.Encode(w, block)
}
-var (
- config = flag.String("config", "acme.toml", "configuration file")
- port = flag.Int("port", 8443, "port to listen")
-)
+func chkKey(k PrivKey) (*rsa.PrivateKey, error) {
+ key := k.Path()
+ if _, err := os.Stat(key); os.IsNotExist(err) {
+ log.Println("allocating", key, k.Size())
+ if err := os.MkdirAll(path.Dir(key), 0700); err != nil {
+ return nil, err
+ }
+ flags := os.O_WRONLY | os.O_CREATE | os.O_TRUNC
+ fd, err := os.OpenFile(key, flags, 0600)
+ if err != nil {
+ return nil, err
+ }
+ defer fd.Close()
+ return newKey(fd, k.Size())
+ } else {
+ der, err := ioutil.ReadFile(key)
+ if err != nil {
+ return nil, err
+ }
+ block, _ := pem.Decode(der)
+ return x509.ParsePKCS1PrivateKey(block.Bytes)
+ }
+}
-func init() {
- flag.Parse()
+func chkKeys(c *Config) error {
+ var err error
+ for k, acc := range c.Account {
+ acc.key, err = chkKey(acc)
+ if err != nil {
+ return err
+ }
+ c.Account[k] = acc
+ }
+ for k, des := range c.Desire {
+ des.key, err = chkKey(des)
+ if err != nil {
+ return err
+ }
+ c.Desire[k] = des
+ }
+ return nil
}
func main() {
- conf, err := acme.LoadConfig(*config)
- must(err)
- log.Printf("%+v\n", conf)
-
- for _, v := range conf.Desire {
- acc := conf.Account[v.Account]
- prov := conf.Provider[v.Provider]
- a, err := acme.NewAccount(acc.Mail, acme.KeySize)
- must(err)
-
- c, err := acme.NewClient(prov.Directory)
- must(err)
+ flag.Parse()
+ conf, err := LoadConfig(*confName)
+ if err != nil {
+ log.Fatal(err)
+ }
+ err = chkKeys(conf)
+ if err != nil {
+ log.Fatal(err)
+ }
- re, err := c.Register(a)
- must(err)
- log.Printf("%+v\n", re)
+ log.Println(conf)
+ for k, des := range conf.Desire {
+ log.Println(k, des.account)
+ }
+ return
- re, err = c.Agree(a)
- must(err)
- log.Printf("%+v\n", re)
+ for k, des := range conf.Desire {
+ a, _ := acme.NewAccount(des.account.Mail, des.account.Phone, des.account.key)
+ log.Println(k, a)
+ c, err := acme.NewClient(des.provider.Directory)
+ if err != nil {
+ log.Println(err)
+ }
+ log.Println(k, c)
+ az, err := c.Authorize(a, des.Altnames[0])
+ if err != nil {
+ log.Println(err)
+ }
+ log.Println(k, az)
}
+
}
diff --git a/cmd/acmed/main.go b/cmd/acmed/main.go
deleted file mode 100644
index 08a62f3..0000000
--- a/cmd/acmed/main.go
+++ /dev/null
@@ -1,107 +0,0 @@
-package main
-
-import (
- "crypto/rand"
- "crypto/rsa"
- "crypto/x509"
- "encoding/pem"
- "flag"
- "io"
- "io/ioutil"
- "log"
- "os"
- "path"
-
- "dim13.org/acme"
-)
-
-var confName = flag.String("conf", "acme.toml", "configuration file")
-
-func newKey(w io.Writer, size int) (*rsa.PrivateKey, error) {
- key, err := rsa.GenerateKey(rand.Reader, size)
- if err != nil {
- return nil, err
- }
- block := &pem.Block{
- Type: "RSA PRIVATE KEY",
- Bytes: x509.MarshalPKCS1PrivateKey(key),
- }
- return key, pem.Encode(w, block)
-}
-
-func chkKey(k PrivKey) (*rsa.PrivateKey, error) {
- key := k.Path()
- flags := os.O_WRONLY | os.O_CREATE | os.O_TRUNC
- if _, err := os.Stat(key); os.IsNotExist(err) {
- log.Println("allocating", key, k.Size())
- if err := os.MkdirAll(path.Dir(key), 0700); err != nil {
- return nil, err
- }
- fd, err := os.OpenFile(key, flags, 0600)
- if err != nil {
- return nil, err
- }
- defer fd.Close()
- return newKey(fd, k.Size())
- } else {
- der, err := ioutil.ReadFile(key)
- if err != nil {
- return nil, err
- }
- block, _ := pem.Decode(der)
- return x509.ParsePKCS1PrivateKey(block.Bytes)
- }
-}
-
-func chkKeys(c *Config) error {
- var err error
- for k, acc := range c.Account {
- acc.key, err = chkKey(acc)
- if err != nil {
- return err
- }
- c.Account[k] = acc
- }
- for k, des := range c.Desire {
- des.key, err = chkKey(des)
- if err != nil {
- return err
- }
- c.Desire[k] = des
- }
- return nil
-}
-
-func main() {
- flag.Parse()
- conf, err := LoadConfig(*confName)
- if err != nil {
- log.Fatal(err)
- }
- err = chkKeys(conf)
- if err != nil {
- log.Fatal(err)
- }
-
- log.Println(conf)
- for k, des := range conf.Desire {
- log.Println(k, des.account)
- }
- return
-
- for k, des := range conf.Desire {
- a, _ := acme.NewAccount(des.account.Mail, des.account.Phone, des.account.key)
- log.Println(k, a)
- c, err := acme.NewClient(des.provider.Directory)
- if err != nil {
- log.Println(err)
- }
- log.Println(k, c)
- az, err := c.Authorize(a, des.Altnames[0])
- if err != nil {
- log.Println(err)
- }
- log.Println(k, az)
- }
-
-}