From 9f31d05492b560292e0f41eb129ddbe7b8ca8f3c Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Fri, 11 Apr 2025 16:21:47 -0400 Subject: hex-encode keys --- key/key.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'key/key.go') diff --git a/key/key.go b/key/key.go index a427769..2aac124 100644 --- a/key/key.go +++ b/key/key.go @@ -1,6 +1,8 @@ package key import ( + "encoding/hex" + "fmt" "io" "os" ) @@ -21,9 +23,20 @@ func LoadPublicKey() ([32]byte, error) { defer f.Close() // Read key. - var pubkey [32]byte - if _, err := io.ReadFull(f, pubkey[:]); err != nil { + buf, err := io.ReadAll(f) + if err != nil { + return [32]byte{}, err + } + + // Decode. + var key [32]byte + if hex.DecodedLen(len(buf)) != len(key) { + return [32]byte{}, fmt.Errorf("malformed key: expected %d bytes; got %d", + len(key), hex.DecodedLen(len(buf))) + } + if _, err := hex.Decode(key[:], buf); err != nil { return [32]byte{}, err } - return pubkey, nil + + return key, nil } -- cgit v1.2.3