aboutsummaryrefslogtreecommitdiffstats
path: root/key/key.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2025-04-11 16:21:47 -0400
committerSam Anthony <sam@samanthony.xyz>2025-04-11 16:21:47 -0400
commit9f31d05492b560292e0f41eb129ddbe7b8ca8f3c (patch)
treeaae9ffccc6f33974af1014f7f4fe78a345297c83 /key/key.go
parent67f29298ca79da839f4fdfe9ffad8d39a703b124 (diff)
downloadhose-9f31d05492b560292e0f41eb129ddbe7b8ca8f3c.zip
hex-encode keys
Diffstat (limited to 'key/key.go')
-rw-r--r--key/key.go19
1 files changed, 16 insertions, 3 deletions
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
}