From 003029f331433a158a2334909196d9dd4e9e4078 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 6 Mar 2016 02:53:28 +0100 Subject: Rename --- cmd/acme/file.go | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cmd/acme/fs.go | 64 -------------------------------------------------------- 2 files changed, 64 insertions(+), 64 deletions(-) create mode 100644 cmd/acme/file.go delete mode 100644 cmd/acme/fs.go (limited to 'cmd/acme') diff --git a/cmd/acme/file.go b/cmd/acme/file.go new file mode 100644 index 0000000..4f8c479 --- /dev/null +++ b/cmd/acme/file.go @@ -0,0 +1,64 @@ +package main + +import ( + "crypto" + "crypto/tls" + "io" + "os" + "syscall" + + "dim13.org/acme" +) + +func NewFile(fname string, mode os.FileMode) (io.WriteCloser, error) { + err := os.Rename(fname, fname+".bak") + if nerr, ok := err.(*os.LinkError); ok && nerr.Err != syscall.ENOENT { + return nil, err + } + flags := os.O_WRONLY | os.O_CREATE | os.O_TRUNC + return os.OpenFile(fname, flags, mode) +} + +func (d domain) Save(cert tls.Certificate) error { + // save key + fd, err := NewFile(d.KeyFile, 0600) + if err != nil { + return err + } + defer fd.Close() + err = acme.SaveKey(fd, cert.PrivateKey) + if err != nil { + return err + } + + // save certs + fd, err = NewFile(d.CrtFile, 0644) + if err != nil { + return err + } + defer fd.Close() + for _, crt := range cert.Certificate { + if err := acme.SaveCert(fd, crt); err != nil { + return err + } + } + return nil +} + +func (a account) Save(key crypto.PrivateKey) error { + fd, err := NewFile(a.KeyFile, 0600) + if err != nil { + return err + } + defer fd.Close() + return acme.SaveKey(fd, key) +} + +func (a account) Load() (crypto.PrivateKey, error) { + fd, err := os.Open(a.KeyFile) + if err != nil { + return nil, err + } + defer fd.Close() + return acme.LoadKey(fd) +} diff --git a/cmd/acme/fs.go b/cmd/acme/fs.go deleted file mode 100644 index 4f8c479..0000000 --- a/cmd/acme/fs.go +++ /dev/null @@ -1,64 +0,0 @@ -package main - -import ( - "crypto" - "crypto/tls" - "io" - "os" - "syscall" - - "dim13.org/acme" -) - -func NewFile(fname string, mode os.FileMode) (io.WriteCloser, error) { - err := os.Rename(fname, fname+".bak") - if nerr, ok := err.(*os.LinkError); ok && nerr.Err != syscall.ENOENT { - return nil, err - } - flags := os.O_WRONLY | os.O_CREATE | os.O_TRUNC - return os.OpenFile(fname, flags, mode) -} - -func (d domain) Save(cert tls.Certificate) error { - // save key - fd, err := NewFile(d.KeyFile, 0600) - if err != nil { - return err - } - defer fd.Close() - err = acme.SaveKey(fd, cert.PrivateKey) - if err != nil { - return err - } - - // save certs - fd, err = NewFile(d.CrtFile, 0644) - if err != nil { - return err - } - defer fd.Close() - for _, crt := range cert.Certificate { - if err := acme.SaveCert(fd, crt); err != nil { - return err - } - } - return nil -} - -func (a account) Save(key crypto.PrivateKey) error { - fd, err := NewFile(a.KeyFile, 0600) - if err != nil { - return err - } - defer fd.Close() - return acme.SaveKey(fd, key) -} - -func (a account) Load() (crypto.PrivateKey, error) { - fd, err := os.Open(a.KeyFile) - if err != nil { - return nil, err - } - defer fd.Close() - return acme.LoadKey(fd) -} -- cgit v1.2.3