From f46123a333d258df47cf51bcf161b21f96a5f2d6 Mon Sep 17 00:00:00 2001 From: agc Date: Thu, 1 Jul 2010 04:27:21 +0000 Subject: [PATCH] if using ssh keys with any of the netpgp programs, set the home directory appropriately. add some aliases for long command options across all programs --- crypto/external/bsd/netpgp/dist/src/lib/netpgp.c | 4 ++-- .../external/bsd/netpgp/dist/src/netpgp/netpgp.c | 12 ++++++++++-- .../bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c | 14 +++++++++++++- .../bsd/netpgp/dist/src/netpgpverify/verify.c | 11 +++++++++-- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c b/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c index c592fd5de420..4e03f7abaf1a 100644 --- a/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c +++ b/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c @@ -34,7 +34,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: netpgp.c,v 1.62 2010/07/01 03:52:13 agc Exp $"); +__RCSID("$NetBSD: netpgp.c,v 1.63 2010/07/01 04:27:21 agc Exp $"); #endif #include @@ -255,7 +255,7 @@ readsshkeys(netpgp_t *netpgp, char *homedir) char *filename; if ((filename = netpgp_getvar(netpgp, "sshkeyfile")) == NULL) { - (void) snprintf(f, sizeof(f), "%s/.ssh/id_rsa.pub", homedir); + (void) snprintf(f, sizeof(f), "%s/id_rsa.pub", homedir); filename = f; } if ((pubring = calloc(1, sizeof(*pubring))) == NULL) { diff --git a/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c b/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c index afaead4949e0..49404dee2408 100644 --- a/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c +++ b/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c @@ -1,4 +1,4 @@ -/* $NetBSD: netpgp.c,v 1.11 2010/02/06 02:24:34 agc Exp $ */ +/* $NetBSD: netpgp.c,v 1.12 2010/07/01 04:27:21 agc Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -125,6 +125,7 @@ static struct option options[] = { {"show-keys", no_argument, NULL, SHOW_KEYS}, {"showkeys", no_argument, NULL, SHOW_KEYS}, /* options */ + {"ssh", no_argument, NULL, SSHKEYS}, {"ssh-keys", no_argument, NULL, SSHKEYS}, {"sshkeyfile", required_argument, NULL, SSHKEYFILE}, {"coredumps", no_argument, NULL, COREDUMPS}, @@ -132,6 +133,7 @@ static struct option options[] = { {"userid", required_argument, NULL, USERID}, {"home", required_argument, NULL, HOMEDIR}, {"homedir", required_argument, NULL, HOMEDIR}, + {"ascii", no_argument, NULL, ARMOUR}, {"armor", no_argument, NULL, ARMOUR}, {"armour", no_argument, NULL, ARMOUR}, {"detach", no_argument, NULL, DETACHED}, @@ -337,6 +339,7 @@ main(int argc, char **argv) { netpgp_t netpgp; prog_t p; + int homeset; int optindex; int ret; int ch; @@ -355,7 +358,7 @@ main(int argc, char **argv) netpgp_setvar(&netpgp, "hash", DEFAULT_HASH_ALG); /* 4 MiB for a memory file */ netpgp_setvar(&netpgp, "max mem alloc", "4194304"); - netpgp_set_homedir(&netpgp, getenv("HOME"), "/.gnupg", 1); + homeset = 0; optindex = 0; while ((ch = getopt_long(argc, argv, "", options, &optindex)) != -1) { switch (options[optindex].val) { @@ -420,6 +423,7 @@ main(int argc, char **argv) exit(EXIT_ERROR); } netpgp_set_homedir(&netpgp, optarg, NULL, 0); + homeset = 1; break; case HASH_ALG: if (optarg == NULL) { @@ -476,6 +480,10 @@ main(int argc, char **argv) break; } } + if (!homeset) { + netpgp_set_homedir(&netpgp, getenv("HOME"), + netpgp_getvar(&netpgp, "ssh keys") ? "/.ssh" : "/.gnupg", 1); + } /* initialise, and read keys from file */ if (!netpgp_init(&netpgp)) { printf("can't initialise\n"); diff --git a/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c b/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c index 3e2750e84858..a728997c08d4 100644 --- a/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c +++ b/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c @@ -103,8 +103,13 @@ static struct option options[] = { {"list-keys", no_argument, NULL, LIST_KEYS}, {"list-sigs", no_argument, NULL, LIST_SIGS}, {"find-key", no_argument, NULL, FIND_KEY}, + {"export", no_argument, NULL, EXPORT_KEY}, {"export-key", no_argument, NULL, EXPORT_KEY}, + {"import", no_argument, NULL, IMPORT_KEY}, {"import-key", no_argument, NULL, IMPORT_KEY}, + {"gen", optional_argument, NULL, GENERATE_KEY}, + {"gen-key", optional_argument, NULL, GENERATE_KEY}, + {"generate", optional_argument, NULL, GENERATE_KEY}, {"generate-key", optional_argument, NULL, GENERATE_KEY}, {"get-key", no_argument, NULL, GET_KEY}, /* debugging commands */ @@ -121,6 +126,7 @@ static struct option options[] = { {"home", required_argument, NULL, HOMEDIR}, {"homedir", required_argument, NULL, HOMEDIR}, {"numbits", required_argument, NULL, NUMBITS}, + {"ssh", no_argument, NULL, SSHKEYS}, {"ssh-keys", no_argument, NULL, SSHKEYS}, {"sshkeyfile", required_argument, NULL, SSHKEYFILE}, {"verbose", no_argument, NULL, VERBOSE}, @@ -196,6 +202,7 @@ main(int argc, char **argv) struct stat st; netpgp_t netpgp; prog_t p; + int homeset; int optindex; int ret; int ch; @@ -203,6 +210,7 @@ main(int argc, char **argv) (void) memset(&p, 0x0, sizeof(p)); (void) memset(&netpgp, 0x0, sizeof(netpgp)); + homeset = 0; p.progname = argv[0]; p.numbits = DEFAULT_NUMBITS; if (argc < 2) { @@ -210,7 +218,6 @@ main(int argc, char **argv) exit(EXIT_ERROR); } /* set some defaults */ - netpgp_set_homedir(&netpgp, getenv("HOME"), "/.gnupg", 1); netpgp_setvar(&netpgp, "sshkeydir", "/etc/ssh"); netpgp_setvar(&netpgp, "res", ""); netpgp_setvar(&netpgp, "hash", DEFAULT_HASH_ALG); @@ -273,6 +280,7 @@ main(int argc, char **argv) exit(EXIT_ERROR); } netpgp_set_homedir(&netpgp, optarg, NULL, 0); + homeset = 1; break; case NUMBITS: if (optarg == NULL) { @@ -318,6 +326,10 @@ main(int argc, char **argv) break; } } + if (!homeset) { + netpgp_set_homedir(&netpgp, getenv("HOME"), + netpgp_getvar(&netpgp, "ssh keys") ? "/.ssh" : "/.gnupg", 1); + } /* initialise, and read keys from file */ if (!netpgp_init(&netpgp)) { if (stat(netpgp_getvar(&netpgp, "homedir"), &st) < 0) { diff --git a/crypto/external/bsd/netpgp/dist/src/netpgpverify/verify.c b/crypto/external/bsd/netpgp/dist/src/netpgpverify/verify.c index 5b0866f7146f..6d9d675c7f8f 100644 --- a/crypto/external/bsd/netpgp/dist/src/netpgpverify/verify.c +++ b/crypto/external/bsd/netpgp/dist/src/netpgpverify/verify.c @@ -1,4 +1,4 @@ -/* $NetBSD: verify.c,v 1.13 2010/06/01 06:07:56 agc Exp $ */ +/* $NetBSD: verify.c,v 1.14 2010/07/01 04:27:21 agc Exp $ */ /*- * Copyright (c) 2009,2010 The NetBSD Foundation, Inc. @@ -96,6 +96,7 @@ static struct option options[] = { {"help", no_argument, NULL, HELP_CMD}, {"version", no_argument, NULL, VERSION_CMD}, /* options */ + {"ssh", no_argument, NULL, SSHKEYS}, {"ssh-keys", no_argument, NULL, SSHKEYS}, {"sshkeyfile", required_argument, NULL, SSHKEYFILE}, {"coredumps", no_argument, NULL, COREDUMPS}, @@ -231,12 +232,14 @@ main(int argc, char **argv) netpgp_t netpgp; prog_t p; int optindex; + int homeset; int ret; int ch; int i; (void) memset(&p, 0x0, sizeof(p)); (void) memset(&netpgp, 0x0, sizeof(netpgp)); + homeset = 0; p.progname = argv[0]; p.overwrite = 1; p.output = NULL; @@ -248,7 +251,6 @@ main(int argc, char **argv) netpgp_setvar(&netpgp, "hash", DEFAULT_HASH_ALG); /* 4 MiB for a memory file */ netpgp_setvar(&netpgp, "max mem alloc", "4194304"); - netpgp_set_homedir(&netpgp, getenv("HOME"), "/.gnupg", 1); optindex = 0; while ((ch = getopt_long(argc, argv, "", options, &optindex)) != -1) { switch (options[optindex].val) { @@ -299,6 +301,7 @@ main(int argc, char **argv) exit(EXIT_ERROR); } netpgp_set_homedir(&netpgp, optarg, NULL, 0); + homeset = 1; break; case OUTPUT: if (optarg == NULL) { @@ -330,6 +333,10 @@ main(int argc, char **argv) break; } } + if (!homeset) { + netpgp_set_homedir(&netpgp, getenv("HOME"), + netpgp_getvar(&netpgp, "ssh keys") ? "/.ssh" : "/.gnupg", 1); + } /* initialise, and read keys from file */ if (!netpgp_init(&netpgp)) { printf("can't initialise\n");