package main import ( "crypto" "bytes" "fmt" "io/ioutil" "os" "crypto/ed25519" "git.sigsum.org/sigsum-go/pkg/hex" ) func readStdin() ([]byte, error) { b, err := ioutil.ReadAll(os.Stdin) if err != nil { 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 }