Module Name: src Committed By: agc Date: Fri Nov 20 07:17:07 UTC 2009
Modified Files: src/crypto/external/bsd/netpgp/dist: tst src/crypto/external/bsd/netpgp/dist/src/lib: packet-parse.c signature.c validate.c writer.c Log Message: Unbreak the creation of ascii-armoured signatures. Add automatic detection of ascii-armoured signatures. Add tests for same - with small and large source files. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/crypto/external/bsd/netpgp/dist/tst cvs rdiff -u -r1.26 -r1.27 \ src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c cvs rdiff -u -r1.22 -r1.23 \ src/crypto/external/bsd/netpgp/dist/src/lib/signature.c \ src/crypto/external/bsd/netpgp/dist/src/lib/validate.c cvs rdiff -u -r1.15 -r1.16 \ src/crypto/external/bsd/netpgp/dist/src/lib/writer.c 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/tst diff -u src/crypto/external/bsd/netpgp/dist/tst:1.13 src/crypto/external/bsd/netpgp/dist/tst:1.14 --- src/crypto/external/bsd/netpgp/dist/tst:1.13 Thu Nov 19 21:56:00 2009 +++ src/crypto/external/bsd/netpgp/dist/tst Fri Nov 20 07:17:07 2009 @@ -31,7 +31,7 @@ su root -c "make install"' passed=0 -total=19 +total=23 echo "======> sign/verify 180938 file" cp configure a /usr/bin/netpgp --sign a @@ -94,5 +94,15 @@ /usr/bin/netpgpverify --version echo "======> find specific key information" /usr/bin/netpgpkeys --get-key c0596823 a...@netbsd.org && passed=$(expr $passed + 1) -rm -f a a.gpg b b.gpg c c.gpg d d.gpg e f f.sig a2 a3 +echo "======> ascii armoured signature" +cp Makefile.am g +/usr/bin/netpgp --sign --armor g && passed=$(expr $passed + 1) +echo "======> ascii armoured sig detection and verification" +/usr/bin/netpgp --verify g.asc && passed=$(expr $passed + 1) +echo "======> ascii armoured signature of large file" +cp Makefile.in g +/usr/bin/netpgp --sign --armor g && passed=$(expr $passed + 1) +echo "======> ascii armoured sig detection and verification of large file" +/usr/bin/netpgp --verify g.asc && passed=$(expr $passed + 1) +rm -f a a.gpg b b.gpg c c.gpg d d.gpg e f f.sig g g.asc a2 a3 echo "Passed ${passed}/${total} tests" 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.26 src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c:1.27 --- src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c:1.26 Fri Oct 9 06:02:55 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c Fri Nov 20 07:17:07 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.26 2009/10/09 06:02:55 agc Exp $"); +__RCSID("$NetBSD: packet-parse.c,v 1.27 2009/11/20 07:17:07 agc Exp $"); #endif #ifdef HAVE_OPENSSL_CAST_H @@ -2637,6 +2637,7 @@ j - OPS_SALT_SIZE); } } + break; default: break; } Index: src/crypto/external/bsd/netpgp/dist/src/lib/signature.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/signature.c:1.22 src/crypto/external/bsd/netpgp/dist/src/lib/signature.c:1.23 --- src/crypto/external/bsd/netpgp/dist/src/lib/signature.c:1.22 Thu Nov 19 21:56:00 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/signature.c Fri Nov 20 07:17:07 2009 @@ -57,7 +57,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: signature.c,v 1.22 2009/11/19 21:56:00 agc Exp $"); +__RCSID("$NetBSD: signature.c,v 1.23 2009/11/20 07:17:07 agc Exp $"); #endif #include <sys/types.h> @@ -1071,15 +1071,17 @@ __ops_add_birthtime(sig, time(NULL)); /* add key id to signature */ __ops_keyid(keyid, OPS_KEY_ID_SIZE, &seckey->pubkey); - ret = __ops_add_issuer_keyid(sig, keyid) && - __ops_end_hashed_subpkts(sig) && - __ops_write_sig(output, sig, &seckey->pubkey, seckey); + __ops_add_issuer_keyid(sig, keyid); + __ops_end_hashed_subpkts(sig); + __ops_write_sig(output, sig, &seckey->pubkey, seckey); /* tidy up */ __ops_teardown_file_write(output, fd_out); __ops_create_sig_delete(sig); __ops_memory_free(infile); + + ret = 1; } return ret; Index: src/crypto/external/bsd/netpgp/dist/src/lib/validate.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.22 src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.23 --- src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.22 Thu Nov 19 21:56:01 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/validate.c Fri Nov 20 07:17:07 2009 @@ -54,7 +54,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: validate.c,v 1.22 2009/11/19 21:56:01 agc Exp $"); +__RCSID("$NetBSD: validate.c,v 1.23 2009/11/20 07:17:07 agc Exp $"); #endif #include <sys/types.h> @@ -695,12 +695,14 @@ int64_t sigsize; char origfile[MAXPATHLEN]; char *detachname; + int realarmour; int outfd = 0; int infd; int cc; #define SIG_OVERHEAD 284 /* XXX - depends on sig size? */ + realarmour = armoured; if (stat(infile, &st) < 0) { (void) fprintf(io->errs, "can't validate \"%s\"\n", infile); return 0; @@ -715,6 +717,9 @@ detachname = strdup(origfile); } } + if (strcmp(&origfile[cc - 4], ".asc") == 0) { + realarmour = 1; + } (void) memset(&validation, 0x0, sizeof(validation)); @@ -735,7 +740,7 @@ /* is never used. */ validation.reader = parse->readinfo.arg; - if (armoured) { + if (realarmour) { __ops_reader_push_dearmour(parse); } @@ -743,7 +748,7 @@ __ops_parse(parse, !printerrors); /* Tidy up */ - if (armoured) { + if (realarmour) { __ops_reader_pop_dearmour(parse); } __ops_teardown_file_read(parse, infd); Index: src/crypto/external/bsd/netpgp/dist/src/lib/writer.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/writer.c:1.15 src/crypto/external/bsd/netpgp/dist/src/lib/writer.c:1.16 --- src/crypto/external/bsd/netpgp/dist/src/lib/writer.c:1.15 Wed Oct 7 16:19:51 2009 +++ src/crypto/external/bsd/netpgp/dist/src/lib/writer.c Fri Nov 20 07:17:07 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.15 2009/10/07 16:19:51 agc Exp $"); +__RCSID("$NetBSD: writer.c,v 1.16 2009/11/20 07:17:07 agc Exp $"); #endif #include <sys/types.h> @@ -747,7 +747,7 @@ return 0; } - return __ops_stacked_write(trailer, sizeof(trailer)-1, errors, writer); + return __ops_stacked_write(trailer, strlen(trailer), errors, writer); } /**