Module Name:    src
Committed By:   agc
Date:           Wed Jun 10 16:36:23 UTC 2009

Modified Files:
        src/crypto/external/bsd/netpgp/dist/src/lib: keyring.h netpgp.c
            packet-print.c types.h

Log Message:
Add a separate res output stream for results, and print results to it.

This is settable from userlevel by using
        netpgp_setvar(..., "results", filename)


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 \
    src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h
cvs rdiff -u -r1.22 -r1.23 \
    src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c
cvs rdiff -u -r1.17 -r1.18 \
    src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c
cvs rdiff -u -r1.6 -r1.7 src/crypto/external/bsd/netpgp/dist/src/lib/types.h

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/src/lib/keyring.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.14 src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.15
--- src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.14	Wed Jun 10 00:38:09 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h	Wed Jun 10 16:36:23 2009
@@ -110,7 +110,7 @@
 void __ops_print_pubkeydata(__ops_io_t *, const __ops_key_t *);
 void __ops_print_pubkey(const __ops_pubkey_t *);
 
-void __ops_print_seckeydata(const __ops_key_t *);
+void __ops_print_seckeydata(__ops_io_t *, const __ops_key_t *);
 int __ops_list_packets(__ops_io_t *,
 			char *,
 			unsigned,

Index: src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.22 src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.23
--- src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.22	Wed Jun 10 00:38:09 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c	Wed Jun 10 16:36:23 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.22 2009/06/10 00:38:09 agc Exp $");
+__RCSID("$NetBSD: netpgp.c,v 1.23 2009/06/10 16:36:23 agc Exp $");
 #endif
 
 #include <sys/types.h>
@@ -228,6 +228,7 @@
 	char		*userid;
 	char		*stream;
 	char		*passfd;
+	char		*results;
 	int		 coredumps;
 
 #ifdef HAVE_SYS_RESOURCE_H
@@ -296,6 +297,13 @@
 			passfd);
 		return 0;
 	}
+	if ((results = netpgp_getvar(netpgp, "results")) == NULL) {
+		io->res = io->errs;
+	} else if ((io->res = fopen(results, "w")) == NULL) {
+		(void) fprintf(io->errs, "Can't open results %s for writing\n",
+			results);
+		return 0;
+	}
 	return 1;
 }
 

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.17 src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.18
--- src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.17	Tue Jun  9 00:51:02 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c	Wed Jun 10 16:36:23 2009
@@ -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.17 2009/06/09 00:51:02 agc Exp $");
+__RCSID("$NetBSD: packet-print.c,v 1.18 2009/06/10 16:36:23 agc Exp $");
 #endif
 
 #include <string.h>
@@ -380,18 +380,18 @@
 {
 	unsigned int    i;
 
-	(void) fprintf(io->errs, "pub %d/%s ",
-		numkeybits(&key->key.pubkey),
-		__ops_show_pka(key->key.pubkey.alg));
-	hexdump(io->errs, key->key_id, OPS_KEY_ID_SIZE, "");
-	(void) fprintf(io->errs, " ");
-	ptime(io->errs, key->key.pubkey.birthtime);
-	(void) fprintf(io->errs, "\nKey fingerprint: ");
-	hexdump(io->errs, key->fingerprint.fingerprint, OPS_FINGERPRINT_SIZE,
+	(void) fprintf(io->res, "pub %d/%s ",
+			numkeybits(&key->key.pubkey),
+			__ops_show_pka(key->key.pubkey.alg));
+	hexdump(io->res, key->key_id, OPS_KEY_ID_SIZE, "");
+	(void) fprintf(io->res, " ");
+	ptime(io->res, key->key.pubkey.birthtime);
+	(void) fprintf(io->res, "\nKey fingerprint: ");
+	hexdump(io->res, key->fingerprint.fingerprint, OPS_FINGERPRINT_SIZE,
 		" ");
-	(void) fprintf(io->errs, "\n");
+	(void) fprintf(io->res, "\n");
 	for (i = 0; i < key->uidc; i++) {
-		(void) fprintf(io->errs, "uid              %s\n",
+		(void) fprintf(io->res, "uid              %s\n",
 			key->uids[i].userid);
 	}
 }
@@ -450,27 +450,26 @@
 */
 
 void
-__ops_print_seckeydata(const __ops_key_t *key)
+__ops_print_seckeydata(__ops_io_t *io, const __ops_key_t *key)
 {
-	printf("sec ");
-	__ops_show_pka(key->key.pubkey.alg);
-	printf(" ");
-
-	hexdump(stdout, key->key_id, OPS_KEY_ID_SIZE, "");
-	printf(" ");
-
-	ptime(stdout, key->key.pubkey.birthtime);
-	printf(" ");
-
+	(void) fprintf(io->res, "sec ");
+	__ops_show_pka(key->key.pubkey.alg); /* XXX - redirect to io */
+	(void) fprintf(io->res, " ");
+	hexdump(io->res, key->key_id, OPS_KEY_ID_SIZE, "");
+	(void) fprintf(io->res, " ");
+	ptime(io->res, key->key.pubkey.birthtime);
+	(void) fprintf(io->res, " ");
 	if (key->uidc == 1) {
 		/* print on same line as other info */
-		printf("%s\n", key->uids[0].userid);
+		(void) fprintf(io->res, "%s\n", key->uids[0].userid);
 	} else {
 		/* print all uids on separate line  */
 		unsigned int    i;
-		printf("\n");
+
+		(void) fprintf(io->res, "\n");
 		for (i = 0; i < key->uidc; i++) {
-			printf("uid              %s\n", key->uids[i].userid);
+			(void) fprintf(io->res, "uid              %s\n",
+					key->uids[i].userid);
 		}
 	}
 }
@@ -677,7 +676,6 @@
 		break;
 
 	case OPS_PTAG_CT_USER_ID:
-		/* XXX: how do we print UTF-8? */
 		print_tagname("USER ID");
 		print_utf8_string("userid", content->userid.userid);
 		break;
@@ -929,8 +927,6 @@
 		print_text_breakdown(text);
 		__ops_text_free(text);
 
-		/* xxx - TODO: print out UTF - rachel */
-
 		print_data("Name", &content->ss_notation.name);
 
 		print_data("Value", &content->ss_notation.value);
@@ -1005,7 +1001,6 @@
 			      1);
 		str = __ops_show_ss_rr_code(content->ss_revocation.code);
 		print_string(NULL, str);
-		/* xxx - todo : output text as UTF-8 string */
 		end_subpacket();
 		break;
 

Index: src/crypto/external/bsd/netpgp/dist/src/lib/types.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/types.h:1.6 src/crypto/external/bsd/netpgp/dist/src/lib/types.h:1.7
--- src/crypto/external/bsd/netpgp/dist/src/lib/types.h:1.6	Sun May 31 23:26:20 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/types.h	Wed Jun 10 16:36:23 2009
@@ -53,6 +53,7 @@
 typedef struct __ops_io_t {
 	void	*outs;	/* output file stream */
 	void	*errs;	/* file stream to put error messages */
+	void	*res;	/* file stream to put results */
 } __ops_io_t;
 
 /** __ops_map_t

Reply via email to