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