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 <[email protected]> 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 <[email protected]> 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