Module Name:    src
Committed By:   agc
Date:           Mon Feb  8 17:19:12 UTC 2010

Modified Files:
        src/crypto/external/bsd/netpgp/dist: TODO configure configure.ac
        src/crypto/external/bsd/netpgp/dist/src/lib: crypto.c crypto.h
            packet-print.c packet.h reader.c validate.c version.h
        src/crypto/external/bsd/netpgp/dist/src/netpgp: Makefile
        src/crypto/external/bsd/netpgp/dist/src/netpgpverify: Makefile

Log Message:
Update netpgp to version 1.99.17/20100208

Changes to 1.99.17/20100208

+ get rid of last 2 static variables - use the __ops_printstate_t struct
  passed down, and add the indent variable here too
+ get rid of 3 occurrences in reader.c where an automatic buffer was
  addressed (as part of a subsequent callback) by a struct field from
  a calling scope, and only valid within the callback.  Found by
  Flexelint and phk - many thanks.
+ print filename/"memory" when time problems occur when validating signatures


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/crypto/external/bsd/netpgp/dist/TODO
cvs rdiff -u -r1.22 -r1.23 src/crypto/external/bsd/netpgp/dist/configure
cvs rdiff -u -r1.21 -r1.22 src/crypto/external/bsd/netpgp/dist/configure.ac
cvs rdiff -u -r1.18 -r1.19 \
    src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c
cvs rdiff -u -r1.14 -r1.15 \
    src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h
cvs rdiff -u -r1.24 -r1.25 \
    src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c
cvs rdiff -u -r1.17 -r1.18 \
    src/crypto/external/bsd/netpgp/dist/src/lib/packet.h
cvs rdiff -u -r1.28 -r1.29 \
    src/crypto/external/bsd/netpgp/dist/src/lib/reader.c
cvs rdiff -u -r1.27 -r1.28 \
    src/crypto/external/bsd/netpgp/dist/src/lib/validate.c
cvs rdiff -u -r1.23 -r1.24 \
    src/crypto/external/bsd/netpgp/dist/src/lib/version.h
cvs rdiff -u -r1.7 -r1.8 \
    src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile
cvs rdiff -u -r1.6 -r1.7 \
    src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile

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.29 src/crypto/external/bsd/netpgp/dist/TODO:1.30
--- src/crypto/external/bsd/netpgp/dist/TODO:1.29	Sat Feb  6 02:24:33 2010
+++ src/crypto/external/bsd/netpgp/dist/TODO	Mon Feb  8 17:19:11 2010
@@ -1,9 +1,8 @@
 To Do
 =====
-calc v4_hashlen
-unarmoured static in packet-print.c and skipping in crypto.c
-display expiry properly
-netpgpagent
+agent
+agentctl
+trust subpackets
 convert to and from ascii armored sigs
 gpgme compat lib
 --list-sigs - these come out in __ops_check_subkey_sig()
@@ -85,3 +84,6 @@
 multisign
 settable from time
 unarmoured static in packet-print.c and skipping in crypto.c
+display expiry properly
+unarmoured static in packet-print.c and skipping in crypto.c
+duration -> expiry

Index: src/crypto/external/bsd/netpgp/dist/configure
diff -u src/crypto/external/bsd/netpgp/dist/configure:1.22 src/crypto/external/bsd/netpgp/dist/configure:1.23
--- src/crypto/external/bsd/netpgp/dist/configure:1.22	Sat Feb  6 02:24:33 2010
+++ src/crypto/external/bsd/netpgp/dist/configure	Mon Feb  8 17:19:12 2010
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.ac Revision: 1.20 .
+# From configure.ac Revision: 1.21 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for netpgp 20100205.
+# Generated by GNU Autoconf 2.63 for netpgp 20100208.
 #
 # Report bugs to <Alistair Crooks <[email protected]> c0596823>.
 #
@@ -751,8 +751,8 @@
 # Identity of this package.
 PACKAGE_NAME='netpgp'
 PACKAGE_TARNAME='netpgp'
-PACKAGE_VERSION='20100205'
-PACKAGE_STRING='netpgp 20100205'
+PACKAGE_VERSION='20100208'
+PACKAGE_STRING='netpgp 20100208'
 PACKAGE_BUGREPORT='Alistair Crooks <[email protected]> c0596823'
 
 ac_unique_file="src/netpgp/netpgp.c"
@@ -1483,7 +1483,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures netpgp 20100205 to adapt to many kinds of systems.
+\`configure' configures netpgp 20100208 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1553,7 +1553,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of netpgp 20100205:";;
+     short | recursive ) echo "Configuration of netpgp 20100208:";;
    esac
   cat <<\_ACEOF
 
@@ -1660,7 +1660,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-netpgp configure 20100205
+netpgp configure 20100208
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1674,7 +1674,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by netpgp $as_me 20100205, which was
+It was created by netpgp $as_me 20100208, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2561,7 +2561,7 @@
 
 # Define the identity of the package.
  PACKAGE='netpgp'
- VERSION='20100205'
+ VERSION='20100208'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -22306,7 +22306,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by netpgp $as_me 20100205, which was
+This file was extended by netpgp $as_me 20100208, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -22369,7 +22369,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-netpgp config.status 20100205
+netpgp config.status 20100208
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 

Index: src/crypto/external/bsd/netpgp/dist/configure.ac
diff -u src/crypto/external/bsd/netpgp/dist/configure.ac:1.21 src/crypto/external/bsd/netpgp/dist/configure.ac:1.22
--- src/crypto/external/bsd/netpgp/dist/configure.ac:1.21	Sat Feb  6 02:24:33 2010
+++ src/crypto/external/bsd/netpgp/dist/configure.ac	Mon Feb  8 17:19:12 2010
@@ -1,10 +1,10 @@
-# $NetBSD: configure.ac,v 1.21 2010/02/06 02:24:33 agc Exp $
+# $NetBSD: configure.ac,v 1.22 2010/02/08 17:19:12 agc Exp $
 #
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([netpgp],[20100205],[Alistair Crooks <[email protected]> c0596823])
+AC_INIT([netpgp],[20100208],[Alistair Crooks <[email protected]> c0596823])
 AC_PREREQ(2.63)
-AC_REVISION([$Revision: 1.21 $])
+AC_REVISION([$Revision: 1.22 $])
 
 AS_SHELL_SANITIZE
 

Index: src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c:1.18 src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c:1.19
--- src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c:1.18	Tue Dec 22 06:03:24 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c	Mon Feb  8 17:19:12 2010
@@ -54,7 +54,7 @@
 
 #if defined(__NetBSD__)
 __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: crypto.c,v 1.18 2009/12/22 06:03:24 agc Exp $");
+__RCSID("$NetBSD: crypto.c,v 1.19 2010/02/08 17:19:12 agc Exp $");
 #endif
 
 #include <sys/types.h>
@@ -219,22 +219,21 @@
 write_parsed_cb(const __ops_packet_t *pkt, __ops_cbdata_t *cbinfo)
 {
 	const __ops_contents_t	*content = &pkt->u;
-	static unsigned		 skipping;	/* XXX - put skipping into pkt? */
 
 	if (__ops_get_debug_level(__FILE__)) {
 		printf("write_parsed_cb: ");
-		__ops_print_packet(pkt);
+		__ops_print_packet(&cbinfo->printstate, pkt);
 	}
-	if (pkt->tag != OPS_PTAG_CT_UNARMOURED_TEXT && skipping) {
+	if (pkt->tag != OPS_PTAG_CT_UNARMOURED_TEXT && cbinfo->printstate.skipping) {
 		puts("...end of skip");
-		skipping = 0;
+		cbinfo->printstate.skipping = 0;
 	}
 	switch (pkt->tag) {
 	case OPS_PTAG_CT_UNARMOURED_TEXT:
 		printf("OPS_PTAG_CT_UNARMOURED_TEXT\n");
-		if (!skipping) {
+		if (!cbinfo->printstate.skipping) {
 			puts("Skipping...");
-			skipping = 1;
+			cbinfo->printstate.skipping = 1;
 		}
 		fwrite(content->unarmoured_text.data, 1,
 		       content->unarmoured_text.length, stdout);

Index: src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.14 src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.15
--- src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.14	Sat Feb  6 02:24:33 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h	Mon Feb  8 17:19:12 2010
@@ -253,6 +253,7 @@
 	__ops_io_t		*io;		/* error/output messages */
 	void			*passfp;	/* fp for passphrase input */
 	__ops_cryptinfo_t	 cryptinfo;	/* used when decrypting */
+	__ops_printstate_t	 printstate;	/* used to keep state when printing */
 };
 
 /** __ops_hashtype_t */

Index: src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.24 src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.25
--- src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.24	Sat Feb  6 02:24:33 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c	Mon Feb  8 17:19:12 2010
@@ -58,7 +58,7 @@
 
 #if defined(__NetBSD__)
 __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: packet-print.c,v 1.24 2010/02/06 02:24:33 agc Exp $");
+__RCSID("$NetBSD: packet-print.c,v 1.25 2010/02/08 17:19:12 agc Exp $");
 #endif
 
 #include <string.h>
@@ -658,17 +658,14 @@
 \param contents
 */
 int 
-__ops_print_packet(const __ops_packet_t *pkt)
+__ops_print_packet(__ops_printstate_t *print, const __ops_packet_t *pkt)
 {
 	const __ops_contents_t	*content = &pkt->u;
-	static unsigned		 unarmoured;
 	__ops_text_t		*text;
 	const char		*str;
-	int			 indent;
 
-	indent = 0;
-	if (unarmoured && pkt->tag != OPS_PTAG_CT_UNARMOURED_TEXT) {
-		unarmoured = 0;
+	if (print->unarmoured && pkt->tag != OPS_PTAG_CT_UNARMOURED_TEXT) {
+		print->unarmoured = 0;
 		puts("UNARMOURED TEXT ends");
 	}
 	if (pkt->tag == OPS_PARSER_PTAG) {
@@ -694,32 +691,32 @@
 
 	case OPS_PARSER_PTAG:
 		if (content->ptag.type == OPS_PTAG_CT_PUBLIC_KEY) {
-			indent = 0;
+			print->indent = 0;
 			printf("\n*** NEXT KEY ***\n");
 		}
 		printf("\n");
-		print_indent(indent);
+		print_indent(print->indent);
 		printf("==== ptag new_format=%u type=%u length_type=%d"
 		       " length=0x%x (%u) position=0x%x (%u)\n",
 		       content->ptag.new_format,
 		       content->ptag.type, content->ptag.length_type,
 		       content->ptag.length, content->ptag.length,
 		       content->ptag.position, content->ptag.position);
-		print_tagname(indent, __ops_show_packet_tag((__ops_packet_tag_t)content->ptag.type));
+		print_tagname(print->indent, __ops_show_packet_tag((__ops_packet_tag_t)content->ptag.type));
 		break;
 
 	case OPS_PTAG_CT_SE_DATA_HEADER:
-		print_tagname(indent, "SYMMETRIC ENCRYPTED DATA");
+		print_tagname(print->indent, "SYMMETRIC ENCRYPTED DATA");
 		break;
 
 	case OPS_PTAG_CT_SE_IP_DATA_HEADER:
-		print_tagname(indent, 
+		print_tagname(print->indent, 
 			"SYMMETRIC ENCRYPTED INTEGRITY PROTECTED DATA HEADER");
 		printf("Version: %d\n", content->se_ip_data_header.version);
 		break;
 
 	case OPS_PTAG_CT_SE_IP_DATA_BODY:
-		print_tagname(indent, 
+		print_tagname(print->indent, 
 			"SYMMETRIC ENCRYPTED INTEGRITY PROTECTED DATA BODY");
 		printf("  data body length=%u\n",
 		       content->se_data_body.length);
@@ -731,71 +728,71 @@
 
 	case OPS_PTAG_CT_PUBLIC_KEY:
 	case OPS_PTAG_CT_PUBLIC_SUBKEY:
-		print_tagname(indent, (pkt->tag == OPS_PTAG_CT_PUBLIC_KEY) ?
+		print_tagname(print->indent, (pkt->tag == OPS_PTAG_CT_PUBLIC_KEY) ?
 			"PUBLIC KEY" :
 			"PUBLIC SUBKEY");
 		__ops_print_pubkey(&content->pubkey);
 		break;
 
 	case OPS_PTAG_CT_TRUST:
-		print_tagname(indent, "TRUST");
-		print_data(indent, "Trust", &content->trust.data);
+		print_tagname(print->indent, "TRUST");
+		print_data(print->indent, "Trust", &content->trust.data);
 		break;
 
 	case OPS_PTAG_CT_USER_ID:
-		print_tagname(indent, "USER ID");
-		print_utf8_string(indent, "userid", content->userid.userid);
+		print_tagname(print->indent, "USER ID");
+		print_utf8_string(print->indent, "userid", content->userid.userid);
 		break;
 
 	case OPS_PTAG_CT_SIGNATURE:
-		print_tagname(indent, "SIGNATURE");
-		print_indent(indent);
-		print_uint(indent, "Signature Version",
+		print_tagname(print->indent, "SIGNATURE");
+		print_indent(print->indent);
+		print_uint(print->indent, "Signature Version",
 				   (unsigned)content->sig.info.version);
 		if (content->sig.info.birthtime_set) {
-			print_time(indent, "Signature Creation Time",
+			print_time(print->indent, "Signature Creation Time",
 				   content->sig.info.birthtime);
 		}
 		if (content->sig.info.duration_set) {
-			print_uint(indent, "Signature Duration",
+			print_uint(print->indent, "Signature Duration",
 				   (unsigned)content->sig.info.duration);
 		}
 
-		print_string_and_value(indent, "Signature Type",
+		print_string_and_value(print->indent, "Signature Type",
 			    __ops_show_sig_type(content->sig.info.type),
 				       content->sig.info.type);
 
 		if (content->sig.info.signer_id_set) {
-			hexdump_data(indent, "Signer ID",
+			hexdump_data(print->indent, "Signer ID",
 					   content->sig.info.signer_id,
 				  sizeof(content->sig.info.signer_id));
 		}
 
-		print_string_and_value(indent, "Public Key Algorithm",
+		print_string_and_value(print->indent, "Public Key Algorithm",
 			__ops_show_pka(content->sig.info.key_alg),
 				     content->sig.info.key_alg);
-		print_string_and_value(indent, "Hash Algorithm",
+		print_string_and_value(print->indent, "Hash Algorithm",
 			__ops_show_hash_alg((unsigned char)
 				content->sig.info.hash_alg),
 			(unsigned char)content->sig.info.hash_alg);
-		print_uint(indent, "Hashed data len",
+		print_uint(print->indent, "Hashed data len",
 			content->sig.info.v4_hashlen);
-		print_indent(indent);
-		hexdump_data(indent, "hash2", &content->sig.hash2[0], 2);
+		print_indent(print->indent);
+		hexdump_data(print->indent, "hash2", &content->sig.hash2[0], 2);
 		switch (content->sig.info.key_alg) {
 		case OPS_PKA_RSA:
 		case OPS_PKA_RSA_SIGN_ONLY:
-			print_bn(indent, "sig", content->sig.info.sig.rsa.sig);
+			print_bn(print->indent, "sig", content->sig.info.sig.rsa.sig);
 			break;
 
 		case OPS_PKA_DSA:
-			print_bn(indent, "r", content->sig.info.sig.dsa.r);
-			print_bn(indent, "s", content->sig.info.sig.dsa.s);
+			print_bn(print->indent, "r", content->sig.info.sig.dsa.r);
+			print_bn(print->indent, "s", content->sig.info.sig.dsa.s);
 			break;
 
 		case OPS_PKA_ELGAMAL_ENCRYPT_OR_SIGN:
-			print_bn(indent, "r", content->sig.info.sig.elgamal.r);
-			print_bn(indent, "s", content->sig.info.sig.elgamal.s);
+			print_bn(print->indent, "r", content->sig.info.sig.elgamal.r);
+			print_bn(print->indent, "s", content->sig.info.sig.elgamal.s);
 			break;
 
 		default:
@@ -810,33 +807,33 @@
 		break;
 
 	case OPS_PTAG_CT_COMPRESSED:
-		print_tagname(indent, "COMPRESSED");
-		print_uint(indent, "Compressed Data Type",
+		print_tagname(print->indent, "COMPRESSED");
+		print_uint(print->indent, "Compressed Data Type",
 			(unsigned)content->compressed.type);
 		break;
 
 	case OPS_PTAG_CT_1_PASS_SIG:
-		print_tagname(indent, "ONE PASS SIGNATURE");
+		print_tagname(print->indent, "ONE PASS SIGNATURE");
 
-		print_uint(indent, "Version", (unsigned)content->one_pass_sig.version);
-		print_string_and_value(indent, "Signature Type",
+		print_uint(print->indent, "Version", (unsigned)content->one_pass_sig.version);
+		print_string_and_value(print->indent, "Signature Type",
 		    __ops_show_sig_type(content->one_pass_sig.sig_type),
 				       content->one_pass_sig.sig_type);
-		print_string_and_value(indent, "Hash Algorithm",
+		print_string_and_value(print->indent, "Hash Algorithm",
 			__ops_show_hash_alg((unsigned char)content->one_pass_sig.hash_alg),
 			(unsigned char)content->one_pass_sig.hash_alg);
-		print_string_and_value(indent, "Public Key Algorithm",
+		print_string_and_value(print->indent, "Public Key Algorithm",
 			__ops_show_pka(content->one_pass_sig.key_alg),
 			content->one_pass_sig.key_alg);
-		hexdump_data(indent, "Signer ID",
+		hexdump_data(print->indent, "Signer ID",
 				   content->one_pass_sig.keyid,
 				   sizeof(content->one_pass_sig.keyid));
-		print_uint(indent, "Nested", content->one_pass_sig.nested);
+		print_uint(print->indent, "Nested", content->one_pass_sig.nested);
 		break;
 
 	case OPS_PTAG_CT_USER_ATTR:
-		print_tagname(indent, "USER ATTRIBUTE");
-		print_hexdump(indent, "User Attribute",
+		print_tagname(print->indent, "USER ATTRIBUTE");
+		print_hexdump(print->indent, "User Attribute",
 			      content->userattr.data.contents,
 			      content->userattr.data.len);
 		break;
@@ -846,50 +843,50 @@
 			(void) fprintf(stderr, "contents are critical\n");
 			return 0;
 		}
-		start_subpacket(&indent, pkt->tag);
-		print_uint(indent, "Raw Signature Subpacket: tag",
+		start_subpacket(&print->indent, pkt->tag);
+		print_uint(print->indent, "Raw Signature Subpacket: tag",
 			(unsigned)(content->ss_raw.tag -
 		   	(unsigned)OPS_PTAG_SIG_SUBPKT_BASE));
-		print_hexdump(indent, "Raw Data",
+		print_hexdump(print->indent, "Raw Data",
 			      content->ss_raw.raw,
 			      content->ss_raw.length);
 		break;
 
 	case OPS_PTAG_SS_CREATION_TIME:
-		start_subpacket(&indent, pkt->tag);
-		print_time(indent, "Signature Creation Time", content->ss_time.time);
-		end_subpacket(&indent);
+		start_subpacket(&print->indent, pkt->tag);
+		print_time(print->indent, "Signature Creation Time", content->ss_time.time);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_EXPIRATION_TIME:
-		start_subpacket(&indent, pkt->tag);
-		print_duration(indent, "Signature Expiration Time",
+		start_subpacket(&print->indent, pkt->tag);
+		print_duration(print->indent, "Signature Expiration Time",
 			content->ss_time.time);
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_KEY_EXPIRY:
-		start_subpacket(&indent, pkt->tag);
-		print_duration(indent, "Key Expiration Time", content->ss_time.time);
-		end_subpacket(&indent);
+		start_subpacket(&print->indent, pkt->tag);
+		print_duration(print->indent, "Key Expiration Time", content->ss_time.time);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_TRUST:
-		start_subpacket(&indent, pkt->tag);
-		print_string(indent, "Trust Signature", "");
-		print_uint(indent, "Level", (unsigned)content->ss_trust.level);
-		print_uint(indent, "Amount", (unsigned)content->ss_trust.amount);
-		end_subpacket(&indent);
+		start_subpacket(&print->indent, pkt->tag);
+		print_string(print->indent, "Trust Signature", "");
+		print_uint(print->indent, "Level", (unsigned)content->ss_trust.level);
+		print_uint(print->indent, "Amount", (unsigned)content->ss_trust.amount);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_REVOCABLE:
-		start_subpacket(&indent, pkt->tag);
-		print_boolean(indent, "Revocable", content->ss_revocable.revocable);
-		end_subpacket(&indent);
+		start_subpacket(&print->indent, pkt->tag);
+		print_boolean(print->indent, "Revocable", content->ss_revocable.revocable);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_REVOCATION_KEY:
-		start_subpacket(&indent, pkt->tag);
+		start_subpacket(&print->indent, pkt->tag);
 		/* not yet tested */
 		printf("  revocation key: class=0x%x",
 		       content->ss_revocation_key.class);
@@ -901,143 +898,143 @@
 		hexdump(stdout, content->ss_revocation_key.fingerprint,
 				OPS_FINGERPRINT_SIZE, "");
 		printf("\n");
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_ISSUER_KEY_ID:
-		start_subpacket(&indent, pkt->tag);
-		print_hexdump(indent, "Issuer Key Id",
+		start_subpacket(&print->indent, pkt->tag);
+		print_hexdump(print->indent, "Issuer Key Id",
 			      &content->ss_issuer.key_id[0],
 			      sizeof(content->ss_issuer.key_id));
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_PREFERRED_SKA:
-		start_subpacket(&indent, pkt->tag);
-		print_data(indent, "Preferred Symmetric Algorithms",
+		start_subpacket(&print->indent, pkt->tag);
+		print_data(print->indent, "Preferred Symmetric Algorithms",
 			   &content->ss_skapref.data);
 
 		text = __ops_showall_ss_skapref(content->ss_skapref);
-		print_text_breakdown(indent, text);
+		print_text_breakdown(print->indent, text);
 		__ops_text_free(text);
 
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_PRIMARY_USER_ID:
-		start_subpacket(&indent, pkt->tag);
-		print_boolean(indent, "Primary User ID",
+		start_subpacket(&print->indent, pkt->tag);
+		print_boolean(print->indent, "Primary User ID",
 			      content->ss_primary_userid.primary_userid);
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_PREFERRED_HASH:
-		start_subpacket(&indent, pkt->tag);
-		print_data(indent, "Preferred Hash Algorithms",
+		start_subpacket(&print->indent, pkt->tag);
+		print_data(print->indent, "Preferred Hash Algorithms",
 			   &content->ss_hashpref.data);
 
 		text = __ops_showall_ss_hashpref(content->ss_hashpref);
-		print_text_breakdown(indent, text);
+		print_text_breakdown(print->indent, text);
 		__ops_text_free(text);
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_PREF_COMPRESS:
-		start_subpacket(&indent, pkt->tag);
-		print_data(indent, "Preferred Compression Algorithms",
+		start_subpacket(&print->indent, pkt->tag);
+		print_data(print->indent, "Preferred Compression Algorithms",
 			   &content->ss_zpref.data);
 
 		text = __ops_showall_ss_zpref(content->ss_zpref);
-		print_text_breakdown(indent, text);
+		print_text_breakdown(print->indent, text);
 		__ops_text_free(text);
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_KEY_FLAGS:
-		start_subpacket(&indent, pkt->tag);
-		print_data(indent, "Key Flags", &content->ss_key_flags.data);
+		start_subpacket(&print->indent, pkt->tag);
+		print_data(print->indent, "Key Flags", &content->ss_key_flags.data);
 
 		text = __ops_showall_ss_key_flags(content->ss_key_flags);
-		print_text_breakdown(indent, text);
+		print_text_breakdown(print->indent, text);
 		__ops_text_free(text);
 
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_KEYSERV_PREFS:
-		start_subpacket(&indent, pkt->tag);
-		print_data(indent, "Key Server Preferences",
+		start_subpacket(&print->indent, pkt->tag);
+		print_data(print->indent, "Key Server Preferences",
 			   &content->ss_key_server_prefs.data);
 
 		text = __ops_show_keyserv_prefs(content->ss_key_server_prefs);
-		print_text_breakdown(indent, text);
+		print_text_breakdown(print->indent, text);
 		__ops_text_free(text);
 
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_FEATURES:
-		start_subpacket(&indent, pkt->tag);
-		print_data(indent, "Features",
+		start_subpacket(&print->indent, pkt->tag);
+		print_data(print->indent, "Features",
 			   &content->ss_features.data);
 
 		text = __ops_showall_ss_features(content->ss_features);
-		print_text_breakdown(indent, text);
+		print_text_breakdown(print->indent, text);
 		__ops_text_free(text);
 
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_NOTATION_DATA:
-		start_subpacket(&indent, pkt->tag);
-		print_indent(indent);
+		start_subpacket(&print->indent, pkt->tag);
+		print_indent(print->indent);
 		printf("Notation Data:\n");
 
-		indent++;
-		print_data(indent, "Flags", &content->ss_notation.flags);
+		print->indent++;
+		print_data(print->indent, "Flags", &content->ss_notation.flags);
 		text = __ops_showall_notation(content->ss_notation);
-		print_text_breakdown(indent, text);
+		print_text_breakdown(print->indent, text);
 		__ops_text_free(text);
 
-		print_data(indent, "Name", &content->ss_notation.name);
+		print_data(print->indent, "Name", &content->ss_notation.name);
 
-		print_data(indent, "Value", &content->ss_notation.value);
+		print_data(print->indent, "Value", &content->ss_notation.value);
 
-		indent--;
-		end_subpacket(&indent);
+		print->indent--;
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_REGEXP:
-		start_subpacket(&indent, pkt->tag);
-		print_hexdump(indent, "Regular Expression",
+		start_subpacket(&print->indent, pkt->tag);
+		print_hexdump(print->indent, "Regular Expression",
 			      (unsigned char *) content->ss_regexp.regexp,
 			      strlen(content->ss_regexp.regexp));
-		print_string(indent, NULL, content->ss_regexp.regexp);
-		end_subpacket(&indent);
+		print_string(print->indent, NULL, content->ss_regexp.regexp);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_POLICY_URI:
-		start_subpacket(&indent, pkt->tag);
-		print_string(indent, "Policy URL", content->ss_policy.url);
-		end_subpacket(&indent);
+		start_subpacket(&print->indent, pkt->tag);
+		print_string(print->indent, "Policy URL", content->ss_policy.url);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_SIGNERS_USER_ID:
-		start_subpacket(&indent, pkt->tag);
-		print_utf8_string(indent, "Signer's User ID",
+		start_subpacket(&print->indent, pkt->tag);
+		print_utf8_string(print->indent, "Signer's User ID",
 			content->ss_signer.userid);
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_PREF_KEYSERV:
-		start_subpacket(&indent, pkt->tag);
-		print_string(indent, "Preferred Key Server", content->ss_keyserv.name);
-		end_subpacket(&indent);
+		start_subpacket(&print->indent, pkt->tag);
+		print_string(print->indent, "Preferred Key Server", content->ss_keyserv.name);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_EMBEDDED_SIGNATURE:
-		start_subpacket(&indent, pkt->tag);
-		end_subpacket(&indent);/* \todo print out contents? */
+		start_subpacket(&print->indent, pkt->tag);
+		end_subpacket(&print->indent);/* \todo print out contents? */
 		break;
 
 	case OPS_PTAG_SS_USERDEFINED00:
@@ -1051,33 +1048,33 @@
 	case OPS_PTAG_SS_USERDEFINED08:
 	case OPS_PTAG_SS_USERDEFINED09:
 	case OPS_PTAG_SS_USERDEFINED10:
-		start_subpacket(&indent, pkt->tag);
-		print_hexdump(indent, "Internal or user-defined",
+		start_subpacket(&print->indent, pkt->tag);
+		print_hexdump(print->indent, "Internal or user-defined",
 			      content->ss_userdef.data.contents,
 			      content->ss_userdef.data.len);
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_RESERVED:
-		start_subpacket(&indent, pkt->tag);
-		print_hexdump(indent, "Reserved",
+		start_subpacket(&print->indent, pkt->tag);
+		print_hexdump(print->indent, "Reserved",
 			      content->ss_userdef.data.contents,
 			      content->ss_userdef.data.len);
-		end_subpacket(&indent);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_SS_REVOCATION_REASON:
-		start_subpacket(&indent, pkt->tag);
-		print_hexdump(indent, "Revocation Reason",
+		start_subpacket(&print->indent, pkt->tag);
+		print_hexdump(print->indent, "Revocation Reason",
 			      &content->ss_revocation.code,
 			      1);
 		str = __ops_show_ss_rr_code(content->ss_revocation.code);
-		print_string(indent, NULL, str);
-		end_subpacket(&indent);
+		print_string(print->indent, NULL, str);
+		end_subpacket(&print->indent);
 		break;
 
 	case OPS_PTAG_CT_LITDATA_HEADER:
-		print_tagname(indent, "LITERAL DATA HEADER");
+		print_tagname(print->indent, "LITERAL DATA HEADER");
 		printf("  literal data header format=%c filename='%s'\n",
 		       content->litdata_header.format,
 		       content->litdata_header.filename);
@@ -1087,7 +1084,7 @@
 		break;
 
 	case OPS_PTAG_CT_LITDATA_BODY:
-		print_tagname(indent, "LITERAL DATA BODY");
+		print_tagname(print->indent, "LITERAL DATA BODY");
 		printf("  literal data body length=%u\n",
 		       content->litdata_body.length);
 		printf("    data=");
@@ -1097,54 +1094,54 @@
 		break;
 
 	case OPS_PTAG_CT_SIGNATURE_HEADER:
-		print_tagname(indent, "SIGNATURE");
-		print_indent(indent);
-		print_uint(indent, "Signature Version",
+		print_tagname(print->indent, "SIGNATURE");
+		print_indent(print->indent);
+		print_uint(print->indent, "Signature Version",
 				   (unsigned)content->sig.info.version);
 		if (content->sig.info.birthtime_set) {
-			print_time(indent, "Signature Creation Time",
+			print_time(print->indent, "Signature Creation Time",
 				content->sig.info.birthtime);
 		}
 		if (content->sig.info.duration_set) {
-			print_uint(indent, "Signature Duration",
+			print_uint(print->indent, "Signature Duration",
 				   (unsigned)content->sig.info.duration);
 		}
-		print_string_and_value(indent, "Signature Type",
+		print_string_and_value(print->indent, "Signature Type",
 			    __ops_show_sig_type(content->sig.info.type),
 				       content->sig.info.type);
 		if (content->sig.info.signer_id_set) {
-			hexdump_data(indent, "Signer ID",
+			hexdump_data(print->indent, "Signer ID",
 				content->sig.info.signer_id,
 				sizeof(content->sig.info.signer_id));
 		}
-		print_string_and_value(indent, "Public Key Algorithm",
+		print_string_and_value(print->indent, "Public Key Algorithm",
 			__ops_show_pka(content->sig.info.key_alg),
 				     content->sig.info.key_alg);
-		print_string_and_value(indent, "Hash Algorithm",
+		print_string_and_value(print->indent, "Hash Algorithm",
 			__ops_show_hash_alg((unsigned char)content->sig.info.hash_alg),
 			(unsigned char)content->sig.info.hash_alg);
-		print_uint(indent, "Hashed data len",
+		print_uint(print->indent, "Hashed data len",
 			content->sig.info.v4_hashlen);
 
 		break;
 
 	case OPS_PTAG_CT_SIGNATURE_FOOTER:
-		print_indent(indent);
-		hexdump_data(indent, "hash2", &content->sig.hash2[0], 2);
+		print_indent(print->indent);
+		hexdump_data(print->indent, "hash2", &content->sig.hash2[0], 2);
 
 		switch (content->sig.info.key_alg) {
 		case OPS_PKA_RSA:
-			print_bn(indent, "sig", content->sig.info.sig.rsa.sig);
+			print_bn(print->indent, "sig", content->sig.info.sig.rsa.sig);
 			break;
 
 		case OPS_PKA_DSA:
-			print_bn(indent, "r", content->sig.info.sig.dsa.r);
-			print_bn(indent, "s", content->sig.info.sig.dsa.s);
+			print_bn(print->indent, "r", content->sig.info.sig.dsa.r);
+			print_bn(print->indent, "s", content->sig.info.sig.dsa.s);
 			break;
 
 		case OPS_PKA_ELGAMAL_ENCRYPT_OR_SIGN:
-			print_bn(indent, "r", content->sig.info.sig.elgamal.r);
-			print_bn(indent, "s", content->sig.info.sig.elgamal.s);
+			print_bn(print->indent, "r", content->sig.info.sig.elgamal.r);
+			print_bn(print->indent, "s", content->sig.info.sig.elgamal.s);
 			break;
 
 		case OPS_PKA_PRIVATE00:
@@ -1158,7 +1155,7 @@
 		case OPS_PKA_PRIVATE08:
 		case OPS_PKA_PRIVATE09:
 		case OPS_PKA_PRIVATE10:
-			print_data(indent, "Private/Experimental",
+			print_data(print->indent, "Private/Experimental",
 			   &content->sig.info.sig.unknown.data);
 			break;
 
@@ -1170,46 +1167,46 @@
 		break;
 
 	case OPS_GET_PASSPHRASE:
-		print_tagname(indent, "OPS_GET_PASSPHRASE");
+		print_tagname(print->indent, "OPS_GET_PASSPHRASE");
 		break;
 
 	case OPS_PTAG_CT_SECRET_KEY:
-		print_tagname(indent, "OPS_PTAG_CT_SECRET_KEY");
+		print_tagname(print->indent, "OPS_PTAG_CT_SECRET_KEY");
 		__ops_print_seckey_verbose(pkt->tag, &content->seckey);
 		break;
 
 	case OPS_PTAG_CT_ENCRYPTED_SECRET_KEY:
-		print_tagname(indent, "OPS_PTAG_CT_ENCRYPTED_SECRET_KEY");
+		print_tagname(print->indent, "OPS_PTAG_CT_ENCRYPTED_SECRET_KEY");
 		__ops_print_seckey_verbose(pkt->tag, &content->seckey);
 		break;
 
 	case OPS_PTAG_CT_ARMOUR_HEADER:
-		print_tagname(indent, "ARMOUR HEADER");
-		print_string(indent, "type", content->armour_header.type);
+		print_tagname(print->indent, "ARMOUR HEADER");
+		print_string(print->indent, "type", content->armour_header.type);
 		break;
 
 	case OPS_PTAG_CT_SIGNED_CLEARTEXT_HEADER:
-		print_tagname(indent, "SIGNED CLEARTEXT HEADER");
+		print_tagname(print->indent, "SIGNED CLEARTEXT HEADER");
 		print_headers(&content->cleartext_head.headers);
 		break;
 
 	case OPS_PTAG_CT_SIGNED_CLEARTEXT_BODY:
-		print_tagname(indent, "SIGNED CLEARTEXT BODY");
-		print_block(indent, "signed cleartext", content->cleartext_body.data,
+		print_tagname(print->indent, "SIGNED CLEARTEXT BODY");
+		print_block(print->indent, "signed cleartext", content->cleartext_body.data,
 			    content->cleartext_body.length);
 		break;
 
 	case OPS_PTAG_CT_SIGNED_CLEARTEXT_TRAILER:
-		print_tagname(indent, "SIGNED CLEARTEXT TRAILER");
+		print_tagname(print->indent, "SIGNED CLEARTEXT TRAILER");
 		printf("hash algorithm: %d\n",
 		       content->cleartext_trailer.hash->alg);
 		printf("\n");
 		break;
 
 	case OPS_PTAG_CT_UNARMOURED_TEXT:
-		if (!unarmoured) {
-			print_tagname(indent, "UNARMOURED TEXT");
-			unarmoured = 1;
+		if (!print->unarmoured) {
+			print_tagname(print->indent, "UNARMOURED TEXT");
+			print->unarmoured = 1;
 		}
 		putchar('[');
 		print_escaped(content->unarmoured_text.data,
@@ -1218,8 +1215,8 @@
 		break;
 
 	case OPS_PTAG_CT_ARMOUR_TRAILER:
-		print_tagname(indent, "ARMOUR TRAILER");
-		print_string(indent, "type", content->armour_header.type);
+		print_tagname(print->indent, "ARMOUR TRAILER");
+		print_string(print->indent, "type", content->armour_header.type);
 		break;
 
 	case OPS_PTAG_CT_PK_SESSION_KEY:
@@ -1233,7 +1230,7 @@
 		break;
 
 	default:
-		print_tagname(indent, "UNKNOWN PACKET TYPE");
+		print_tagname(print->indent, "UNKNOWN PACKET TYPE");
 		fprintf(stderr, "__ops_print_packet: unknown tag=%d (0x%x)\n",
 			pkt->tag, pkt->tag);
 		exit(EXIT_FAILURE);
@@ -1244,9 +1241,7 @@
 static __ops_cb_ret_t 
 cb_list_packets(const __ops_packet_t *pkt, __ops_cbdata_t *cbinfo)
 {
-	__OPS_USED(cbinfo);
-
-	__ops_print_packet(pkt);
+	__ops_print_packet(&cbinfo->printstate, pkt);
 	return OPS_RELEASE_MEMORY;
 }
 
@@ -1266,9 +1261,9 @@
 			__ops_cbfunc_t *cb_get_passphrase)
 {
 	__ops_stream_t	*stream = NULL;
-	const unsigned		 accumulate = 1;
-	const int		 printerrors = 1;
-	int			 fd;
+	const unsigned	 accumulate = 1;
+	const int	 printerrors = 1;
+	int		 fd;
 
 	fd = __ops_setup_file_read(io, &stream, filename, NULL, cb_list_packets,
 				accumulate);

Index: src/crypto/external/bsd/netpgp/dist/src/lib/packet.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/packet.h:1.17 src/crypto/external/bsd/netpgp/dist/src/lib/packet.h:1.18
--- src/crypto/external/bsd/netpgp/dist/src/lib/packet.h:1.17	Sat Feb  6 02:24:33 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/packet.h	Mon Feb  8 17:19:12 2010
@@ -63,6 +63,13 @@
 #include "types.h"
 #include "errors.h"
 
+/* structure to keep track of printing state variables */
+typedef struct __ops_printstate_t {
+	unsigned	unarmoured;
+	unsigned	skipping;
+	int		indent;
+} __ops_printstate_t;
+
 /** General-use structure for variable-length data
  */
 
@@ -1064,7 +1071,7 @@
 void __ops_seckey_free(__ops_seckey_t *);
 void __ops_pk_sesskey_free(__ops_pk_sesskey_t *);
 
-int __ops_print_packet(const __ops_packet_t *);
+int __ops_print_packet(__ops_printstate_t *, const __ops_packet_t *);
 
 #define DYNARRAY(type, arr)	\
 	unsigned arr##c; unsigned arr##vsize; type *arr##s

Index: src/crypto/external/bsd/netpgp/dist/src/lib/reader.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/reader.c:1.28 src/crypto/external/bsd/netpgp/dist/src/lib/reader.c:1.29
--- src/crypto/external/bsd/netpgp/dist/src/lib/reader.c:1.28	Sat Feb  6 02:24:33 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/reader.c	Mon Feb  8 17:19:12 2010
@@ -54,7 +54,7 @@
 
 #if defined(__NetBSD__)
 __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: reader.c,v 1.28 2010/02/06 02:24:33 agc Exp $");
+__RCSID("$NetBSD: reader.c,v 1.29 2010/02/08 17:19:12 agc Exp $");
 #endif
 
 #include <sys/types.h>
@@ -1032,6 +1032,7 @@
 	unsigned char	*dest = dest_;
 	dearmour_t	*dearmour;
 	unsigned	 first;
+	char		 buf[1024];
 	int		 saved;
 	int              ret;
 
@@ -1049,7 +1050,6 @@
 	while (length > 0) {
 		unsigned        count;
 		unsigned        n;
-		char            buf[1024];
 		int             c;
 
 		flush(dearmour, cbinfo);
@@ -1161,8 +1161,6 @@
 					return ret;
 				}
 			} else {
-				/* XXX Flexelint -  Assigning address of auto variable 'buf' to outer
-				    scope symbol 'content'*/
 				content.u.armour_header.type = buf;
 				content.u.armour_header.headers =
 						dearmour->headers;
@@ -2130,7 +2128,7 @@
 
 	if (__ops_get_debug_level(__FILE__)) {
 		printf("litdata_cb: ");
-		__ops_print_packet(pkt);
+		__ops_print_packet(&cbinfo->printstate, pkt);
 	}
 	/* Read data from packet into static buffer */
 	switch (pkt->tag) {
@@ -2167,7 +2165,7 @@
 
 	io = cbinfo->io;
 	if (__ops_get_debug_level(__FILE__)) {
-		__ops_print_packet(pkt);
+		__ops_print_packet(&cbinfo->printstate, pkt);
 	}
 	/* Read data from packet into static buffer */
 	switch (pkt->tag) {
@@ -2221,7 +2219,7 @@
 
 	io = cbinfo->io;
 	if (__ops_get_debug_level(__FILE__)) {
-		__ops_print_packet(pkt);
+		__ops_print_packet(&cbinfo->printstate, pkt);
 	}
 	switch (pkt->tag) {
 	case OPS_GET_SECKEY:
@@ -2269,7 +2267,7 @@
 
 	io = cbinfo->io;
 	if (__ops_get_debug_level(__FILE__)) {
-		__ops_print_packet(pkt);
+		__ops_print_packet(&cbinfo->printstate, pkt);
 	}
 	if (cbinfo->cryptinfo.keydata == NULL) {
 		(void) fprintf(io->errs, "get_passphrase_cb: NULL keydata\n");

Index: src/crypto/external/bsd/netpgp/dist/src/lib/validate.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.27 src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.28
--- src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.27	Sat Feb  6 10:50:52 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/validate.c	Mon Feb  8 17:19:12 2010
@@ -54,7 +54,7 @@
 
 #if defined(__NetBSD__)
 __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: validate.c,v 1.27 2010/02/06 10:50:52 dsl Exp $");
+__RCSID("$NetBSD: validate.c,v 1.28 2010/02/08 17:19:12 agc Exp $");
 #endif
 
 #include <sys/types.h>
@@ -516,7 +516,8 @@
 			}
 			if (__ops_get_debug_level(__FILE__)) {
 				(void) fprintf(stderr, "about to check_binary_sig, dump of sig:\n");
-				hexdump(stderr, (const unsigned char *)&content->sig, sizeof(content->sig), "");
+				hexdump(stderr, (const unsigned char *)(const void *)&content->sig,
+					sizeof(content->sig), "");
 			}
 			valid = check_binary_sig(__ops_mem_data(data->mem),
 					__ops_mem_len(data->mem),
@@ -625,7 +626,7 @@
  	or no valid signatures; else 1
  */
 static unsigned 
-validate_result_status(FILE *errs, __ops_validation_t *val)
+validate_result_status(FILE *errs, const char *f, __ops_validation_t *val)
 {
 	time_t	now;
 	time_t	t;
@@ -634,6 +635,11 @@
 	now = time(NULL);
 	if (now < val->birthtime) {
 		/* signature is not valid yet! */
+		if (f) {
+			(void) fprintf(errs, "\"%s\": ", f);
+		} else {
+			(void) fprintf(errs, "memory ");
+		}
 		(void) fprintf(errs,
 			"signature not valid until %.24s (%s)\n",
 			ctime(&val->birthtime),
@@ -643,6 +649,11 @@
 	if (val->duration != 0 && now > val->birthtime + val->duration) {
 		/* signature has expired */
 		t = val->duration + val->birthtime;
+		if (f) {
+			(void) fprintf(errs, "\"%s\": ", f);
+		} else {
+			(void) fprintf(errs, "memory ");
+		}
 		(void) fprintf(errs,
 			"signature not valid after %.24s (%s ago)\n",
 			ctime(&t),
@@ -726,7 +737,7 @@
 		__ops_validate_key_sigs(result, &ring->keys[n], ring,
 				cb_get_passphrase);
 	}
-	return validate_result_status(stderr, result);
+	return validate_result_status(stderr, "keyring", result);
 }
 
 /**
@@ -841,7 +852,7 @@
 	}
 	__ops_teardown_file_read(parse, infd);
 
-	ret = validate_result_status(io->errs, result);
+	ret = validate_result_status(io->errs, infile, result);
 
 	/* this is triggered only for --cat output */
 	if (outfile) {
@@ -856,7 +867,7 @@
 			* write the file, so send back a bad return
 			* code */
 			ret = 0;
-		} else if (validate_result_status(io->errs, result)) {
+		} else if (validate_result_status(io->errs, infile, result)) {
 			unsigned	 len;
 			char		*cp;
 			int		 i;
@@ -939,5 +950,5 @@
 		__ops_memory_free(validation.mem);
 	}
 
-	return validate_result_status(io->errs, result);
+	return validate_result_status(io->errs, NULL, result);
 }

Index: src/crypto/external/bsd/netpgp/dist/src/lib/version.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.23 src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.24
--- src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.23	Sat Feb  6 02:24:34 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/version.h	Mon Feb  8 17:19:12 2010
@@ -58,7 +58,7 @@
 #endif
 
 /* development versions have .99 suffix */
-#define NETPGP_BASE_VERSION	"1.99.16"
+#define NETPGP_BASE_VERSION	"1.99.17"
 
 #define NETPGP_VERSION_CAT(a, b)	"NetPGP portable " a "/[" b "]"
 #define NETPGP_VERSION_STRING \

Index: src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile
diff -u src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile:1.7 src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile:1.8
--- src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile:1.7	Sat Feb  6 02:24:34 2010
+++ src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile	Mon Feb  8 17:19:12 2010
@@ -117,16 +117,16 @@
 PACKAGE = netpgp
 PACKAGE_BUGREPORT = Alistair Crooks <[email protected]> c0596823
 PACKAGE_NAME = netpgp
-PACKAGE_STRING = netpgp 20100205
+PACKAGE_STRING = netpgp 20100208
 PACKAGE_TARNAME = netpgp
-PACKAGE_VERSION = 20100205
+PACKAGE_VERSION = 20100208
 PATH_SEPARATOR = :
 RANLIB = ranlib
 SED = /usr/bin/sed
 SET_MAKE = 
 SHELL = /bin/ksh
 STRIP = strip
-VERSION = 20100205
+VERSION = 20100208
 WARNCFLAGS = -Werror -Wall -Wpointer-arith
 abs_builddir = /usr/src/crypto/external/bsd/netpgp/dist/src/netpgp
 abs_srcdir = /usr/src/crypto/external/bsd/netpgp/dist/src/netpgp

Index: src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile
diff -u src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.6 src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.7
--- src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.6	Sat Feb  6 02:24:34 2010
+++ src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile	Mon Feb  8 17:19:12 2010
@@ -117,16 +117,16 @@
 PACKAGE = netpgp
 PACKAGE_BUGREPORT = Alistair Crooks <[email protected]> c0596823
 PACKAGE_NAME = netpgp
-PACKAGE_STRING = netpgp 20100205
+PACKAGE_STRING = netpgp 20100208
 PACKAGE_TARNAME = netpgp
-PACKAGE_VERSION = 20100205
+PACKAGE_VERSION = 20100208
 PATH_SEPARATOR = :
 RANLIB = ranlib
 SED = /usr/bin/sed
 SET_MAKE = 
 SHELL = /bin/ksh
 STRIP = strip
-VERSION = 20100205
+VERSION = 20100208
 WARNCFLAGS = -Werror -Wall -Wpointer-arith
 abs_builddir = /usr/src/crypto/external/bsd/netpgp/dist/src/netpgpverify
 abs_srcdir = /usr/src/crypto/external/bsd/netpgp/dist/src/netpgpverify

Reply via email to