diff options
author | Rasmus Dahlberg <rasmus@mullvad.net> | 2022-03-27 20:38:05 +0200 |
---|---|---|
committer | Rasmus Dahlberg <rasmus@mullvad.net> | 2022-04-13 15:11:08 +0200 |
commit | 76b67507b902cebe701bd2e2b59beb455f96c923 (patch) | |
tree | 32a1b2a722eef534cbb4c424f4c6225e4525b14f /cmd/sigsum-debug/util.go | |
parent | 30b9e5d5f5a29a3d83f9e16c9b606c903f750acc (diff) |
add hashleaf and sign commands
Diffstat (limited to 'cmd/sigsum-debug/util.go')
-rw-r--r-- | cmd/sigsum-debug/util.go | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/cmd/sigsum-debug/util.go b/cmd/sigsum-debug/util.go index d7ba6a8..8d2cd4e 100644 --- a/cmd/sigsum-debug/util.go +++ b/cmd/sigsum-debug/util.go @@ -1,24 +1,43 @@ package main import ( + "crypto" "bytes" "fmt" "io/ioutil" "os" + "crypto/ed25519" "git.sigsum.org/sigsum-lib-go/pkg/hex" ) -func decodeHexFromStdin() ([]byte, error) { +func readStdin() ([]byte, error) { b, err := ioutil.ReadAll(os.Stdin) if err != nil { - return nil, fmt.Errorf("failed reading stdin: %v", err) + return nil, fmt.Errorf("stdin: %v", err) } + return b, nil +} +func decodeHexFromStdin() ([]byte, error) { + b, err := readStdin() + if err != nil { + return nil, fmt.Errorf("failed reading stdin: %v", err) + } b, err = hex.Deserialize(string(bytes.TrimSpace(b))) if err != nil { return nil, fmt.Errorf("invalid private key: %v", err) } - return b, nil } + +func privFromHex(s string) (crypto.Signer, error) { + b, err := hex.Deserialize(optPriv) + if err != nil { + return nil, fmt.Errorf("invalid private key: %v", err) + } + if len(b) != ed25519.PrivateKeySize { + return nil, fmt.Errorf("invalid private key: size") + } + return ed25519.PrivateKey(b), nil +} |