Module Name: src Committed By: agc Date: Sat Jun 13 05:25:09 UTC 2009
Modified Files: src/crypto/external/bsd/netpgp/dist: TODO src/crypto/external/bsd/netpgp/dist/src/lib: create.c crypto.h netpgp.c packet-parse.c reader.c version.h writer.c src/crypto/external/bsd/netpgp/dist/src/netpgp: Makefile netpgp.c src/crypto/external/bsd/netpgp/dist/src/netpgpverify: Makefile src/crypto/external/bsd/netpgp/dist/tests: testsuite.at Added Files: src/crypto/external/bsd/netpgp/dist/tests: userid.at Log Message: Don't complain if $HOME/.gnupg does not exist (and using --homedir). Don't require a userid to be set in the gpg.conf file - it can be set on the command line when it's needed (for signing and encryption, the other operations in netpgp(1) will take the userid from the signed/encrypted file). Add tests for the lack of a default userid in the config file. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/crypto/external/bsd/netpgp/dist/TODO cvs rdiff -u -r1.18 -r1.19 \ src/crypto/external/bsd/netpgp/dist/src/lib/create.c cvs rdiff -u -r1.9 -r1.10 \ src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h cvs rdiff -u -r1.25 -r1.26 \ src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c cvs rdiff -u -r1.21 -r1.22 \ src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c \ src/crypto/external/bsd/netpgp/dist/src/lib/reader.c cvs rdiff -u -r1.19 -r1.20 \ src/crypto/external/bsd/netpgp/dist/src/lib/version.h cvs rdiff -u -r1.12 -r1.13 \ src/crypto/external/bsd/netpgp/dist/src/lib/writer.c cvs rdiff -u -r1.2 -r1.3 \ src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile cvs rdiff -u -r1.3 -r1.4 \ src/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c cvs rdiff -u -r1.2 -r1.3 \ src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile cvs rdiff -u -r1.6 -r1.7 \ src/crypto/external/bsd/netpgp/dist/tests/testsuite.at cvs rdiff -u -r0 -r1.1 src/crypto/external/bsd/netpgp/dist/tests/userid.at Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/crypto/external/bsd/netpgp/dist/TODO diff -u src/crypto/external/bsd/netpgp/dist/TODO:1.22 src/crypto/external/bsd/netpgp/dist/TODO:1.23 --- src/crypto/external/bsd/netpgp/dist/TODO:1.22 Fri Jun 12 04:12:25 2009 +++ src/crypto/external/bsd/netpgp/dist/TODO Sat Jun 13 05:25:08 2009 @@ -1,7 +1,5 @@ To Do ===== -don't complain if no .gnupg dir (even when using --homedir) -failure to run if no userid in gpg.conf (even if --userid specified) make netpgpkeys work - add, import, commit, update, sign, passphrase return userids from successful verify, and then print id out if required is get_passphrase_cb needed? @@ -68,3 +66,5 @@ C++ guards in header file modify sets lists for netpgpverify don't require passphrase for keys without one +failure to run if no userid in gpg.conf (even if --userid specified) +don't complain if no .gnupg dir (even when using --homedir) Index: src/crypto/external/bsd/netpgp/dist/src/lib/create.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/create.c:1.18 src/crypto/external/bsd/netpgp/dist/src/lib/create.c:1.19 --- src/crypto/external/bsd/netpgp/dist/src/lib/create.c:1.18 Thu Jun 11 01:12:42 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/create.c Sat Jun 13 05:25:08 2009 @@ -57,7 +57,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: create.c,v 1.18 2009/06/11 01:12:42 agc Exp $"); +__RCSID("$NetBSD: create.c,v 1.19 2009/06/13 05:25:08 agc Exp $"); #endif #include <sys/types.h> @@ -425,7 +425,7 @@ __ops_crypt_any(&crypted, key->alg); crypted.set_iv(&crypted, key->iv); - crypted.set_key(&crypted, sesskey); + crypted.set_crypt_key(&crypted, sesskey); __ops_encrypt_init(&crypted); if (__ops_get_debug_level(__FILE__)) { Index: src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h diff -u src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.9 src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.10 --- src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.9 Tue Jun 9 00:51:02 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h Sat Jun 13 05:25:08 2009 @@ -93,8 +93,8 @@ __ops_symm_alg_t alg; size_t blocksize; size_t keysize; - __ops_setiv_func_t *set_iv;/* Call before decrypt init! */ - __ops_setkey_func_t *set_key;/* Call this before init! */ + __ops_setiv_func_t *set_iv; + __ops_setkey_func_t *set_crypt_key; __ops_crypt_init_t *base_init; __ops_crypt_resync_t *decrypt_resync; /* encrypt/decrypt one block */ Index: src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.25 src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.26 --- src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.25 Thu Jun 11 04:57:52 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c Sat Jun 13 05:25:08 2009 @@ -34,7 +34,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: netpgp.c,v 1.25 2009/06/11 04:57:52 agc Exp $"); +__RCSID("$NetBSD: netpgp.c,v 1.26 2009/06/13 05:25:08 agc Exp $"); #endif #include <sys/types.h> @@ -97,7 +97,6 @@ __OPS_USED(netpgp); (void) snprintf(buf, sizeof(buf), "%s/gpg.conf", homedir); if ((fp = fopen(buf, "r")) == NULL) { - (void) fprintf(stderr, "conffile: can't open '%s'\n", buf); return 0; } (void) memset(&keyre, 0x0, sizeof(keyre)); @@ -270,13 +269,12 @@ } } if (userid == NULL) { - if (netpgp_getvar(netpgp, "userid checks") == NULL) { + if (netpgp_getvar(netpgp, "need userid") != NULL) { (void) fprintf(io->errs, "Cannot find user id\n"); return 0; } - (void) fprintf(io->errs, "Skipping user id check\n"); } else { - (void) netpgp_setvar(netpgp, "userid", id); + (void) netpgp_setvar(netpgp, "userid", userid); } if ((netpgp->pubring = readkeyring(netpgp, "pubring")) == NULL) { (void) fprintf(io->errs, "Can't read pub keyring\n"); Index: src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c:1.21 src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c:1.22 --- src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c:1.21 Thu Jun 11 01:12:42 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c Sat Jun 13 05:25:08 2009 @@ -58,7 +58,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: packet-parse.c,v 1.21 2009/06/11 01:12:42 agc Exp $"); +__RCSID("$NetBSD: packet-parse.c,v 1.22 2009/06/13 05:25:08 agc Exp $"); #endif #ifdef HAVE_OPENSSL_CAST_H @@ -2637,7 +2637,7 @@ fprintf(stderr, "\n"); } decrypt.set_iv(&decrypt, pkt.u.seckey.iv); - decrypt.set_key(&decrypt, key); + decrypt.set_crypt_key(&decrypt, key); /* now read encrypted data */ @@ -2911,7 +2911,7 @@ __ops_crypt_any(&stream->decrypt, pkt.u.pk_sesskey.symm_alg); iv = calloc(1, stream->decrypt.blocksize); stream->decrypt.set_iv(&stream->decrypt, iv); - stream->decrypt.set_key(&stream->decrypt, pkt.u.pk_sesskey.key); + stream->decrypt.set_crypt_key(&stream->decrypt, pkt.u.pk_sesskey.key); __ops_encrypt_init(&stream->decrypt); (void) free(iv); return 1; Index: src/crypto/external/bsd/netpgp/dist/src/lib/reader.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/reader.c:1.21 src/crypto/external/bsd/netpgp/dist/src/lib/reader.c:1.22 --- src/crypto/external/bsd/netpgp/dist/src/lib/reader.c:1.21 Thu Jun 11 04:57:52 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/reader.c Sat Jun 13 05:25:09 2009 @@ -54,7 +54,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: reader.c,v 1.21 2009/06/11 04:57:52 agc Exp $"); +__RCSID("$NetBSD: reader.c,v 1.22 2009/06/13 05:25:09 agc Exp $"); #endif #include <sys/types.h> @@ -147,7 +147,7 @@ } (void) snprintf(phrase, size, "%s", p); } else { - if (fgets(phrase, size, in) == NULL) { + if (fgets(phrase, (int)size, in) == NULL) { return 0; } phrase[strlen(phrase) - 1] = 0x0; @@ -2089,7 +2089,6 @@ case OPS_PTAG_CT_LITDATA_HEADER: /* ignore */ -printf("LITDATA_HEADER: filename ,%s,\n", content->litdata_header.filename); break; default: @@ -2202,12 +2201,8 @@ { const __ops_contents_t *content = &pkt->u; __ops_io_t *io; - FILE *passfp; io = cbinfo->io; - if ((passfp = cbinfo->passfp) != NULL) { - /* read from passfp and return */ - } if (__ops_get_debug_level(__FILE__)) { __ops_print_packet(pkt); } Index: src/crypto/external/bsd/netpgp/dist/src/lib/version.h diff -u src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.19 src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.20 --- src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.19 Thu Jun 11 17:05:18 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/version.h Sat Jun 13 05:25:09 2009 @@ -58,7 +58,7 @@ #endif /* development versions have .99 suffix */ -#define NETPGP_BASE_VERSION "1.99.12" +#define NETPGP_BASE_VERSION "1.99.13" #define NETPGP_VERSION_CAT(a, b) "NetPGP portable " a "/[" b "]" #define NETPGP_VERSION_STRING \ Index: src/crypto/external/bsd/netpgp/dist/src/lib/writer.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/writer.c:1.12 src/crypto/external/bsd/netpgp/dist/src/lib/writer.c:1.13 --- src/crypto/external/bsd/netpgp/dist/src/lib/writer.c:1.12 Tue Jun 9 00:51:03 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/writer.c Sat Jun 13 05:25:09 2009 @@ -58,7 +58,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: writer.c,v 1.12 2009/06/09 00:51:03 agc Exp $"); +__RCSID("$NetBSD: writer.c,v 1.13 2009/06/13 05:25:09 agc Exp $"); #endif #include <sys/types.h> @@ -1019,7 +1019,7 @@ __ops_crypt_any(encrypted, encrypted_pk_sesskey->symm_alg); iv = calloc(1, encrypted->blocksize); encrypted->set_iv(encrypted, iv); - encrypted->set_key(encrypted, &encrypted_pk_sesskey->key[0]); + encrypted->set_crypt_key(encrypted, &encrypted_pk_sesskey->key[0]); __ops_encrypt_init(encrypted); se_ip->crypt = encrypted; @@ -1389,7 +1389,7 @@ __ops_crypt_any(encrypted, encrypted_pk_sesskey->symm_alg); iv = calloc(1, encrypted->blocksize); encrypted->set_iv(encrypted, iv); - encrypted->set_key(encrypted, &encrypted_pk_sesskey->key[0]); + encrypted->set_crypt_key(encrypted, &encrypted_pk_sesskey->key[0]); __ops_encrypt_init(encrypted); se_ip->crypt = encrypted; Index: src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile diff -u src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile:1.2 src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile:1.3 --- src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile:1.2 Wed Jun 10 00:38:09 2009 +++ src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile Sat Jun 13 05:25:09 2009 @@ -117,16 +117,16 @@ PACKAGE = netpgp PACKAGE_BUGREPORT = Alistair Crooks <a...@netbsd.org> c0596823 PACKAGE_NAME = netpgp -PACKAGE_STRING = netpgp 20090608 +PACKAGE_STRING = netpgp 20090611 PACKAGE_TARNAME = netpgp -PACKAGE_VERSION = 20090608 +PACKAGE_VERSION = 20090611 PATH_SEPARATOR = : RANLIB = ranlib SED = /usr/bin/sed SET_MAKE = SHELL = /bin/ksh STRIP = strip -VERSION = 20090608 +VERSION = 20090611 WARNCFLAGS = -Werror -Wall -Wpointer-arith abs_builddir = /usr/src/crypto/external/bsd/netpgp-hack/dist/src/netpgp abs_srcdir = /usr/src/crypto/external/bsd/netpgp-hack/dist/src/netpgp Index: src/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c diff -u src/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c:1.3 src/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c:1.4 --- src/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c:1.3 Wed Jun 10 16:37:41 2009 +++ src/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.c Sat Jun 13 05:25:09 2009 @@ -216,13 +216,15 @@ /* set the home directory value to "home/subdir" */ static int -set_homedir(netpgp_t *netpgp, char *home, const char *subdir) +set_homedir(netpgp_t *netpgp, char *home, const char *subdir, const int quiet) { struct stat st; char d[MAXPATHLEN]; if (home == NULL) { - (void) fprintf(stderr, "NULL HOME directory\n"); + if (!quiet) { + (void) fprintf(stderr, "NULL HOME directory\n"); + } return 0; } (void) snprintf(d, sizeof(d), "%s%s", home, (subdir) ? subdir : ""); @@ -235,7 +237,10 @@ d); return 0; } - (void) fprintf(stderr, "netpgp: warning homedir \"%s\" not found\n", d); + if (!quiet) { + (void) fprintf(stderr, + "netpgp: warning homedir \"%s\" not found\n", d); + } return 1; } @@ -260,7 +265,7 @@ } /* set some defaults */ netpgp_setvar(&netpgp, "hash", DEFAULT_HASH_ALG); - set_homedir(&netpgp, getenv("HOME"), "/.gnupg"); + set_homedir(&netpgp, getenv("HOME"), "/.gnupg", 1); optindex = 0; while ((ch = getopt_long(argc, argv, "", options, &optindex)) != -1) { switch (options[optindex].val) { @@ -269,9 +274,13 @@ p.cmd = options[optindex].val; break; case ENCRYPT: - case DECRYPT: case SIGN: case CLEARSIGN: + /* for encryption and signing, we need a userid */ + netpgp_setvar(&netpgp, "need userid", "1"); + p.cmd = options[optindex].val; + break; + case DECRYPT: case VERIFY: case VERIFY_CAT: case LIST_PACKETS: @@ -316,7 +325,7 @@ "No home directory argument provided\n"); exit(EXIT_ERROR); } - set_homedir(&netpgp, optarg, NULL); + set_homedir(&netpgp, optarg, NULL, 0); break; case HASH_ALG: if (optarg == NULL) { Index: src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile diff -u src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.2 src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.3 --- src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.2 Wed Jun 10 00:38:10 2009 +++ src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile Sat Jun 13 05:25:09 2009 @@ -117,16 +117,16 @@ PACKAGE = netpgp PACKAGE_BUGREPORT = Alistair Crooks <a...@netbsd.org> c0596823 PACKAGE_NAME = netpgp -PACKAGE_STRING = netpgp 20090608 +PACKAGE_STRING = netpgp 20090611 PACKAGE_TARNAME = netpgp -PACKAGE_VERSION = 20090608 +PACKAGE_VERSION = 20090611 PATH_SEPARATOR = : RANLIB = ranlib SED = /usr/bin/sed SET_MAKE = SHELL = /bin/ksh STRIP = strip -VERSION = 20090608 +VERSION = 20090611 WARNCFLAGS = -Werror -Wall -Wpointer-arith abs_builddir = /usr/src/crypto/external/bsd/netpgp-hack/dist/src/netpgpverify abs_srcdir = /usr/src/crypto/external/bsd/netpgp-hack/dist/src/netpgpverify Index: src/crypto/external/bsd/netpgp/dist/tests/testsuite.at diff -u src/crypto/external/bsd/netpgp/dist/tests/testsuite.at:1.6 src/crypto/external/bsd/netpgp/dist/tests/testsuite.at:1.7 --- src/crypto/external/bsd/netpgp/dist/tests/testsuite.at:1.6 Thu Jun 11 02:28:50 2009 +++ src/crypto/external/bsd/netpgp/dist/tests/testsuite.at Sat Jun 13 05:25:09 2009 @@ -1,9 +1,11 @@ -# $NetBSD: testsuite.at,v 1.6 2009/06/11 02:28:50 lukem Exp $ +# $NetBSD: testsuite.at,v 1.7 2009/06/13 05:25:09 agc Exp $ AT_INIT([netpgp]) AT_TESTED([netpgp netpgpverify]) +m4_include([userid.at]) + m4_include([init.at]) m4_include([cat.at]) Added files: Index: src/crypto/external/bsd/netpgp/dist/tests/userid.at diff -u /dev/null src/crypto/external/bsd/netpgp/dist/tests/userid.at:1.1 --- /dev/null Sat Jun 13 05:25:09 2009 +++ src/crypto/external/bsd/netpgp/dist/tests/userid.at Sat Jun 13 05:25:09 2009 @@ -0,0 +1,32 @@ +# $NetBSD: userid.at,v 1.1 2009/06/13 05:25:09 agc Exp $ + +AT_SETUP([tests with no default userid in gpg.conf]) + +# Remove any previous testsuite run's $testhomedir +AT_CHECK([rm -rf $testhomedir], [0], [ignore], [ignore]) + +# Create $testhomedir as fake $HOME/.gnupg +AT_CHECK([mkdir -m 700 -p $testhomedir], [0], [ignore], [ignore]) + +# Import private key for tests +# XXX: Use GPG until NetPGP's key management is overhauled +AT_CHECK([gpg --batch --homedir $testhomedir --import < $testprivatekey], + [0], [ignore], [ignore]) + +AT_CHECK([cp $abs_top_builddir/libtool file3], [0], [ignore], [ignore]) + +# sign with an explicit userid, no default in gpg.conf +AT_CHECK([netpgp --homedir $testhomedir --userid $testuserid --sign file3], + [0], [ignore], [ignore]) + +# test with no userid +AT_CHECK([netpgp --homedir $testhomedir --cat --output=file3.copy file3.gpg], + [0], [ignore], [ignore]) + +AT_CHECK([diff file3 file3.copy]) + +# Create a gpg.conf +#AT_CHECK([echo "default-key $testuserid" > $testhomedir/gpg.conf], +# [0], [ignore], [ignore]) + +AT_CLEANUP