diff options
Diffstat (limited to 'key/load.go')
| -rw-r--r-- | key/load.go | 24 |
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) +} |