diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-04-17 20:26:55 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-04-17 20:26:55 -0400 |
| commit | f33d9227f7e49e7818b4d3771b6d1126a71bdce5 (patch) | |
| tree | c1cb1476b2b60f0f492b9a68d5653eb1fc60b5cb /key/load.go | |
| parent | 7b3042859c3f594c7638074987ebb6c32de5cc56 (diff) | |
| download | hose-f33d9227f7e49e7818b4d3771b6d1126a71bdce5.zip | |
load private signing key
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) +} |