aboutsummaryrefslogtreecommitdiffstats
path: root/key/load.go
diff options
context:
space:
mode:
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)
+}