You've already forked rsa-file-encryption
inital working commit
This commit is contained in:
111
main.go
Normal file
111
main.go
Normal file
@@ -0,0 +1,111 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/siteworxpro/rsa-file-encryption/commands"
|
||||
"github.com/siteworxpro/rsa-file-encryption/printer"
|
||||
"github.com/urfave/cli/v2"
|
||||
"os"
|
||||
)
|
||||
|
||||
func main() {
|
||||
p := printer.NewPrinter()
|
||||
p.PrintTitle()
|
||||
|
||||
app := &cli.App{
|
||||
Name: "rsa-file-encryption",
|
||||
Usage: "a file encryption tool using rsa key pairs to encrypt files using AES-256-GCM",
|
||||
Commands: []*cli.Command{
|
||||
{
|
||||
Name: "encrypt",
|
||||
Aliases: []string{"e", "en"},
|
||||
Usage: "encrypt a file",
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "file",
|
||||
Aliases: []string{"f"},
|
||||
Usage: "file to encrypt",
|
||||
Required: true,
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "public-key",
|
||||
Aliases: []string{"p"},
|
||||
Usage: "public key path",
|
||||
Required: true,
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Name: "force",
|
||||
Aliases: []string{"F"},
|
||||
Usage: "overwrite the encrypted file",
|
||||
},
|
||||
},
|
||||
Action: func(c *cli.Context) error {
|
||||
return commands.Encrypt(c.String("public-key"), c.String("file"), c.Bool("force"))
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "decrypt",
|
||||
Aliases: []string{"d", "de"},
|
||||
Usage: "decrypt a file",
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "file",
|
||||
Aliases: []string{"f"},
|
||||
Usage: "file to decrypt",
|
||||
Required: true,
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "private-key",
|
||||
Aliases: []string{"p"},
|
||||
Usage: "private key path",
|
||||
Required: true,
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "out",
|
||||
Aliases: []string{"o"},
|
||||
Usage: "output file name",
|
||||
Required: true,
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Name: "force",
|
||||
Aliases: []string{"F"},
|
||||
Usage: "overwrite the encrypted file",
|
||||
},
|
||||
},
|
||||
Action: func(c *cli.Context) error {
|
||||
return commands.Decrypt(c.String("private-key"), c.String("file"), c.String("out"), c.Bool("force"))
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "generate-keypair",
|
||||
Aliases: []string{"g", "gk"},
|
||||
Flags: []cli.Flag{
|
||||
&cli.StringFlag{
|
||||
Name: "size",
|
||||
Aliases: []string{"s"},
|
||||
Usage: "the size of the private key",
|
||||
DefaultText: "4096",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "file",
|
||||
Aliases: []string{"f"},
|
||||
Usage: "the path to the private key file",
|
||||
Required: true,
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Name: "force",
|
||||
Aliases: []string{"F"},
|
||||
Usage: "overwrite the private key file",
|
||||
},
|
||||
},
|
||||
Usage: "generate a keypair",
|
||||
Action: func(c *cli.Context) error {
|
||||
return commands.GenerateKeypair(c.Uint("size"), c.String("file"), c.Bool("force"))
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if err := app.Run(os.Args); err != nil {
|
||||
p.LogError(err.Error())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user