tAllow decrypting secrets when -r is specified - safe - password protected secret keeper
(HTM) git clone git://git.z3bra.org/safe.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit ac52d5dbb901eb0a7039843b3bd87acd3b2f7d64
(DIR) parent cadbbb3e8554063b5f363c0b395fa7849072dfa5
(HTM) Author: Willy Goiffon <dev@z3bra.org>
Date: Fri, 28 Jun 2019 14:02:23 +0200
Allow decrypting secrets when -r is specified
Diffstat:
M safe.c | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
---
(DIR) diff --git a/safe.c b/safe.c
t@@ -435,15 +435,8 @@ main(int argc, char *argv[])
hasmaster = 0;
}
- if (!rflag && sockp) {
- if (!readkey(&s, sockp))
- haskey = 1;
- }
-
- if (rflag && !sockp) {
- fprintf(stderr, "SAFE_SOCK variable is not set\n");
- return -1;
- }
+ if (sockp && !readkey(&s, sockp))
+ haskey = 1;
if (!haskey) {
if (readpass(prompt, &passphrase, &pplen) < 0)
t@@ -495,11 +488,20 @@ main(int argc, char *argv[])
}
close(fd);
- if (rflag)
- return pushkey(&s, sockp);
+ /* push the key to a running agent */
+ if (rflag) {
+ if (!sockp) {
+ fprintf(stderr, "SAFE_SOCK variable is not set\n");
+ return -1;
+ }
+ pushkey(&s, sockp);
+ }
secret = argv[0];
+ if (!secret)
+ return 0;
+
if (aflag) {
mkdir_p(dirname(secret), 0700);
fd = open(secret, O_WRONLY | O_CREAT | O_EXCL, 0600);