123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- package main
- import (
- "fmt"
- cli "github.com/urfave/cli/v2"
- "os"
- )
- func main() {
- app := &cli.App{
- Name: "NagaeEDST",
- Usage: "Nagae ED25519 Signature Tool",
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "key-store",
- Aliases: []string{"ks"},
- Usage: "Key store path, default is '%%LOCAL_CREDENTIALS%%/NagaeROV/NagaeEDST'",
- Required: false,
- },
- },
- Commands: []*cli.Command{
- {
- Name: "keygen",
- Aliases: []string{"kg"},
- Usage: "Generate a new key",
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "name",
- Aliases: []string{"n"},
- Usage: "Name of the key",
- Required: true,
- },
- },
- Action: KeyGenerate,
- },
- {
- Name: "print-pubkey",
- Aliases: []string{"pub"},
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "key",
- Usage: "key name",
- Aliases: []string{"k"},
- Required: true,
- },
- },
- Action: PrintPublicKey,
- },
- {
- Name: "sign-file",
- Aliases: []string{"sf"},
- Usage: "Sign a file",
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "file",
- Aliases: []string{"f"},
- Required: true,
- },
- &cli.StringFlag{
- Name: "out",
- Usage: "specify output filename, default is <file>.ng-edst-sig",
- Aliases: []string{"o"},
- Required: false,
- },
- &cli.StringFlag{
- Name: "key",
- Usage: "key name",
- Aliases: []string{"k"},
- Required: true,
- },
- },
- Action: SignFile,
- },
- {
- Name: "verify-file",
- Aliases: []string{"vf"},
- Usage: "verify a file",
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "file",
- Aliases: []string{"f"},
- Required: true,
- },
- &cli.StringFlag{
- Name: "sig",
- Usage: "specify signature filename, default is <file>.ng-edst-sig",
- Aliases: []string{"s"},
- Required: false,
- },
- &cli.StringFlag{
- Name: "key",
- Usage: "key name",
- Aliases: []string{"k"},
- Required: true,
- },
- },
- Action: VerifyFile,
- },
- {
- Name: "sign-file-s512",
- Aliases: []string{"sfs"},
- Usage: "Sign a large file using sha512 with ed25519",
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "file",
- Aliases: []string{"f"},
- Required: true,
- },
- &cli.StringFlag{
- Name: "out",
- Usage: "specify output filename, default is <file>.ng-edst-s512-sig",
- Aliases: []string{"o"},
- Required: false,
- },
- &cli.StringFlag{
- Name: "key",
- Usage: "key name",
- Aliases: []string{"k"},
- Required: true,
- },
- },
- Action: SignFileS512,
- },
- {
- Name: "verify-file-s512",
- Aliases: []string{"vfs"},
- Usage: "verify a large file using sha512 with ed25519",
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "file",
- Aliases: []string{"f"},
- Required: true,
- },
- &cli.StringFlag{
- Name: "sig",
- Usage: "specify signature filename, default is <file>.ng-edst-s512-sig",
- Aliases: []string{"s"},
- Required: false,
- },
- &cli.StringFlag{
- Name: "key",
- Usage: "key name",
- Aliases: []string{"k"},
- Required: true,
- },
- },
- Action: VerifyFileS512,
- },
- },
- }
- if err := app.Run(os.Args); err != nil {
- fmt.Println("command failed with error: ", err)
- os.Exit(-5)
- }
- }
|