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