len = fread(buf, 1, buflen - 1, f);
buf[len] = 0;
+ fclose(f);
}
static bool
if (comment)
fputs(comment, f);
else
- fprintf(f, "%s %"PRIx64, prefix,
+ fprintf(f, "%s %016"PRIx64, prefix,
fingerprint_u64(fingerprint));
fprintf(f, "\n%s\n", buf);
fclose(f);
if (!get_base64_file(sigfile, &sig, sizeof(sig), buf, sizeof(buf)) ||
memcmp(sig.pkalg, "Ed", 2) != 0) {
fprintf(stderr, "Failed to decode signature\n");
+ fclose(f);
return 1;
}
if (!pubkeyfile) {
- snprintf(buf, sizeof(buf), "%s/%"PRIx64, pubkeydir,
+ snprintf(buf, sizeof(buf), "%s/%016"PRIx64, pubkeydir,
fingerprint_u64(sig.fingerprint));
pubkeyfile = buf;
}
if (!get_base64_file(pubkeyfile, &pkey, sizeof(pkey), buf, sizeof(buf)) ||
memcmp(pkey.pkalg, "Ed", 2) != 0) {
fprintf(stderr, "Failed to decode public key\n");
+ fclose(f);
return 1;
}
else
return 1;
- fprintf(stdout, "%"PRIx64"\n", fingerprint_u64(fp));
+ fprintf(stdout, "%016"PRIx64"\n", fingerprint_u64(fp));
return 0;
}
FILE *f;
f = fopen("/dev/urandom", "r");
- if (!f ||
- fread(skey.fingerprint, sizeof(skey.fingerprint), 1, f) != 1 ||
+ if (!f) {
+ fprintf(stderr, "Can't open /dev/urandom\n");
+ return 1;
+ }
+
+ if (fread(skey.fingerprint, sizeof(skey.fingerprint), 1, f) != 1 ||
fread(skey.seckey, EDSIGN_SECRET_KEY_SIZE, 1, f) != 1 ||
fread(skey.salt, sizeof(skey.salt), 1, f) != 1) {
fprintf(stderr, "Can't read data from /dev/urandom\n");
+ fclose(f);
return 1;
}
if (f)
if (b64_encode(&skey, sizeof(skey), buf, sizeof(buf)) < 0)
return 1;
- write_file(seckeyfile, skey.fingerprint, "public key", buf);
+ write_file(seckeyfile, skey.fingerprint, "private key", buf);
memcpy(pkey.fingerprint, skey.fingerprint, sizeof(pkey.fingerprint));
memcpy(pkey.pubkey, skey.seckey + 32, sizeof(pkey.pubkey));
if (b64_encode(&pkey, sizeof(pkey), buf, sizeof(buf)) < 0)
return 1;
- write_file(pubkeyfile, pkey.fingerprint, "private key", buf);
+ write_file(pubkeyfile, pkey.fingerprint, "public key", buf);
return 0;
}
" -V: verify (needs at least -m and -p|-P)\n"
" -S: sign (needs at least -m and -s)\n"
" -F: print key fingerprint of public/secret key or signature\n"
- " -G: generate a new keypair\n"
+ " -G: generate a new keypair (needs at least -p and -s)\n"
"Options:\n"
" -c <comment>: add comment to keys\n"
" -m <file>: message file\n"