diff options
Diffstat (limited to 'cmd/goaes/commands/encrypt.go')
| -rw-r--r-- | cmd/goaes/commands/encrypt.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/cmd/goaes/commands/encrypt.go b/cmd/goaes/commands/encrypt.go new file mode 100644 index 0000000..0c5d578 --- /dev/null +++ b/cmd/goaes/commands/encrypt.go @@ -0,0 +1,38 @@ +package commands + +import ( + "bytes" + "context" + "encoding/gob" + "os" + + "github.com/nerdsec/goaes/internal" + "github.com/urfave/cli/v3" +) + +func Encrypt(ctx context.Context, cmd *cli.Command) error { + source := cmd.String("source") + destination := cmd.String("destination") + + plaintext, err := os.ReadFile(source) + if err != nil { + return err + } + + payload, err := internal.Encrypt(plaintext) + if err != nil { + return err + } + + var dataBuffer bytes.Buffer + enc := gob.NewEncoder(&dataBuffer) + + err = enc.Encode(payload) + if err != nil { + return err + } + + os.WriteFile(destination, dataBuffer.Bytes(), 0666) + + return nil +} |
