aboutsummaryrefslogtreecommitdiffstats
path: root/key/load.go
blob: e4ff3cf20b903b2b1bbe674590d3bf2ce9873832 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)
}