aboutsummaryrefslogtreecommitdiffstats
path: root/key/load.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2025-04-17 20:26:55 -0400
committerSam Anthony <sam@samanthony.xyz>2025-04-17 20:26:55 -0400
commitf33d9227f7e49e7818b4d3771b6d1126a71bdce5 (patch)
treec1cb1476b2b60f0f492b9a68d5653eb1fc60b5cb /key/load.go
parent7b3042859c3f594c7638074987ebb6c32de5cc56 (diff)
downloadhose-f33d9227f7e49e7818b4d3771b6d1126a71bdce5.zip
load private signing key
Diffstat (limited to 'key/load.go')
-rw-r--r--key/load.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/key/load.go b/key/load.go
new file mode 100644
index 0000000..e4ff3cf
--- /dev/null
+++ b/key/load.go
@@ -0,0 +1,24 @@
+package key
+
+import (
+ "io"
+ "os"
+)
+
+// loadKey reads and decodes a key from a file.
+func loadKey[K any](filename string, decode func([]byte) (K, error)) (K, error) {
+ var key K
+
+ f, err := os.Open(filename)
+ if err != nil {
+ return key, err
+ }
+ defer f.Close()
+
+ buf, err := io.ReadAll(f)
+ if err != nil {
+ return key, err
+ }
+
+ return decode(buf)
+}