diff --git a/README.md b/README.md index f5dff30..a4a3c70 100644 --- a/README.md +++ b/README.md @@ -66,5 +66,18 @@ Optional Arguments: 1) -k (encryption key): gocrypt -w filename -k encryption_key gocrypt -r filename -k encryption_key - if -k is not provided then the default key is used + if key is not provided then the default key is used + +2) -f (file name of file containing encryption key) + gocrypt -w filename -f /home/username/encryptionkey.json + gocrypt -r filename -f /home/username/encryptionkey.json +``` + +Writing keys in file, while using `-f` option:
+The file should be a valid json file with a key value pair where both key and value are strings. + +```shell script +{ + "key": "MyENCRYptionkey123" +} ``` diff --git a/logger/logger.go b/logger/logger.go index 623c7c4..0fe4019 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -21,6 +21,9 @@ Optional Arguments: gocrypt -w filename -k encryption_key gocrypt -r filename -k encryption_key if key is not provided then the default key is used +2) -f (file name of file containing encryption key) + gocrypt -w filename -f + gocrypt -r filename -f ` ) diff --git a/utils/utils.go b/utils/utils.go index 9385ec2..b880522 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -1,6 +1,7 @@ package utils import ( + "encoding/json" "errors" "io/ioutil" "os/exec" @@ -58,6 +59,26 @@ func ArgParse(args []string) ([]string, error) { key := args[4] return []string{option, filename, key}, nil } + } else if keyOpt == "-f" { + if len(args) == 4 { + return []string{option, filename, ""}, errors.New("no file name supplied ") + } else { + confFile := args[4] + keyConfig, err := ReadFromFile(confFile) + + if err != nil { + return []string{"", "", ""}, errors.New(err.Error()) + } + + keyModal := make(map[string]string, 0) + err = json.Unmarshal(keyConfig, &keyModal) + + if err != nil { + return []string{"", "", ""}, errors.New(err.Error()) + } + + return []string{option, filename, keyModal["key"]}, nil + } } else { // throws error if supplied options are not recognised return []string{"", "", ""}, errors.New("invalid option, use -h to see available options ") } diff --git a/version b/version index 60453e6..992977a 100644 --- a/version +++ b/version @@ -1 +1 @@ -v1.0.0 \ No newline at end of file +v1.1.0 \ No newline at end of file