aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-01 15:07:30 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-03-01 15:07:30 +0100
commit9f11b6f012ab33f89ff59602e018ec74a03a1221 (patch)
tree428ff8b352f7e938807d2abd49b4e5e2baa8a33a
parent22b6e21cbb304403d8ce9d14060c6a876cf2c0e8 (diff)
Add load key pair
-rw-r--r--cmd/acme/main.go2
-rw-r--r--desire.go39
2 files changed, 23 insertions, 18 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index 78ec831..1c7c201 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -100,7 +100,7 @@ func main() {
if err := prov.Bundle(acc, des); err != nil {
log.Fatal(err)
}
- if err := des.Save(v.CrtFile, v.KeyFile); err != nil {
+ if err := des.SaveKeyPair(v.CrtFile, v.KeyFile); err != nil {
log.Fatal(err)
}
}
diff --git a/desire.go b/desire.go
index 838b59b..5d85e61 100644
--- a/desire.go
+++ b/desire.go
@@ -35,11 +35,30 @@ func (d *Desire) HasSolver() bool {
return len(d.solver) > 0
}
-func (d *Desire) Save(cert, key string) error {
- if err := d.saveKey(key); err != nil {
+func (d *Desire) CSR() (string, error) {
+ tmpl := x509.CertificateRequest{
+ Subject: pkix.Name{CommonName: d.altnames[0]},
+ }
+ if len(d.altnames) > 1 {
+ tmpl.DNSNames = d.altnames
+ }
+ der, err := x509.CreateCertificateRequest(rand.Reader, &tmpl, d.cert.PrivateKey)
+ if err != nil {
+ return "", err
+ }
+ return base64.RawURLEncoding.EncodeToString(der), nil
+}
+
+func (d *Desire) LoadKeyPair(certFile, keyFile string) (err error) {
+ d.cert, err = tls.LoadX509KeyPair(certFile, keyFile)
+ return
+}
+
+func (d *Desire) SaveKeyPair(certFile, keyFile string) error {
+ if err := d.saveKey(keyFile); err != nil {
return err
}
- return d.saveCert(cert)
+ return d.saveCert(certFile)
}
func (d *Desire) saveKey(fname string) error {
@@ -64,17 +83,3 @@ func (d *Desire) saveCert(fname string) error {
}
return nil
}
-
-func (d *Desire) CSR() (string, error) {
- tmpl := x509.CertificateRequest{
- Subject: pkix.Name{CommonName: d.altnames[0]},
- }
- if len(d.altnames) > 1 {
- tmpl.DNSNames = d.altnames
- }
- der, err := x509.CreateCertificateRequest(rand.Reader, &tmpl, d.cert.PrivateKey)
- if err != nil {
- return "", err
- }
- return base64.RawURLEncoding.EncodeToString(der), nil
-}