package main import ( "fmt" "crypto/ed25519" "git.sigsum.org/sigsum-go/pkg/hex" "git.sigsum.org/sigsum-go/pkg/types" ) func CmdHashLeaf(optPriv string, optShardHint uint64) error { data, err := readStdin() if err != nil { return fmt.Errorf("sign: %v", err) } priv, err := privFromHex(optPriv) if err != nil { return fmt.Errorf("sign: %v", err) } stm := types.Statement{ ShardHint: optShardHint, Checksum: *types.HashFn(data), } sig, err := stm.Sign(priv) if err != nil { fmt.Errorf("sign: %v", err) } leaf := types.Leaf{ Statement: stm, Signature: *sig, KeyHash: *types.HashFn(priv.Public().(ed25519.PublicKey)[:]), } lh := types.LeafHash(leaf.ToBinary()) fmt.Printf("%s\n", hex.Serialize(lh[:])) return nil }