diff options
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 +} |