aboutsummaryrefslogtreecommitdiff
path: root/cmd/batch/files.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-03-18 15:32:50 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-03-18 15:32:50 +0100
commit195239f59a98b1e1f1e1737d47d57c5d0559c009 (patch)
tree38fedbe9eceb0a76dd9ad5db7357f694f564cff6 /cmd/batch/files.go
parent73e2b9e13eeee81756d60034f382c5de3a6a4e18 (diff)
Alternative aproach
Diffstat (limited to 'cmd/batch/files.go')
-rw-r--r--cmd/batch/files.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/cmd/batch/files.go b/cmd/batch/files.go
new file mode 100644
index 0000000..cc4cad5
--- /dev/null
+++ b/cmd/batch/files.go
@@ -0,0 +1,29 @@
+package main
+
+import (
+ "crypto/tls"
+ "crypto/x509"
+ "path"
+ "path/filepath"
+)
+
+func scanFiles(dir string) ([]tls.Certificate, error) {
+ var certs []tls.Certificate
+ keys, err := filepath.Glob(path.Join(dir, "private", "*.key"))
+ if err != nil {
+ return nil, err
+ }
+ for _, k := range keys {
+ c := filepath.Join(dir, "certs", filepath.Base(k[:len(k)-4])+".pem")
+ crt, err := tls.LoadX509KeyPair(c, k)
+ if err != nil {
+ continue
+ }
+ crt.Leaf, err = x509.ParseCertificate(crt.Certificate[0])
+ if err != nil {
+ return nil, err
+ }
+ certs = append(certs, crt)
+ }
+ return certs, nil
+}