aboutsummaryrefslogtreecommitdiff
path: root/desire.go
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 /desire.go
parent22b6e21cbb304403d8ce9d14060c6a876cf2c0e8 (diff)
Add load key pair
Diffstat (limited to 'desire.go')
-rw-r--r--desire.go39
1 files changed, 22 insertions, 17 deletions
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
-}