Module Name: src Committed By: agc Date: Thu May 20 00:36:31 UTC 2010
Modified Files: src/crypto/external/bsd/netpgp/dist/src/lib: netpgp.c Log Message: add a static function to resolve the userid in one place, and start to use it To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 \ src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.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/src/lib/netpgp.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.51 src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.52 --- src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.51 Wed May 19 02:50:16 2010 +++ src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c Thu May 20 00:36:31 2010 @@ -34,7 +34,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: netpgp.c,v 1.51 2010/05/19 02:50:16 agc Exp $"); +__RCSID("$NetBSD: netpgp.c,v 1.52 2010/05/20 00:36:31 agc Exp $"); #endif #include <sys/types.h> @@ -381,6 +381,25 @@ return (uint64_t)strtoll(s, NULL, 10); } +/* resolve the userid */ +static const __ops_key_t * +resolve_userid(netpgp_t *netpgp, const char *userid) +{ + const __ops_key_t *key; + __ops_io_t *io; + + if (userid == NULL) { + userid = netpgp_getvar(netpgp, "userid"); + } else if (userid[0] == '0' && userid[1] == 'x') { + userid += 2; + } + io = netpgp->io; + if ((key = __ops_getkeybyname(io, netpgp->pubring, userid)) == NULL) { + (void) fprintf(io->errs, "Can't find key '%s'\n", userid); + } + return key; +} + /***************************************************************************/ /* exported functions start here */ /***************************************************************************/ @@ -654,14 +673,7 @@ char *newkey; io = netpgp->io; - if (name == NULL) { - name = netpgp_getvar(netpgp, "userid"); - } else if (name[0] == '0' && name[1] == 'x') { - name += 2; - } - key = __ops_getkeybyname(netpgp->io, netpgp->pubring, name); - if (key == NULL) { - (void) fprintf(io->errs, "Can't find key '%s'\n", name); + if ((key = resolve_userid(netpgp, name)) == NULL) { return NULL; } if (strcmp(fmt, "mr") == 0) { @@ -684,16 +696,8 @@ __ops_io_t *io; io = netpgp->io; - if (name == NULL) { - name = netpgp_getvar(netpgp, "userid"); - } else if (name[0] == '0' && name[1] == 'x') { - name += 2; - } - key = __ops_getkeybyname(io, netpgp->pubring, name); - if (key == NULL) { - (void) fprintf(io->errs, - "Cannot find own key \"%s\" in keyring\n", name); - return 0; + if ((key = resolve_userid(netpgp, name)) == NULL) { + return NULL; } return __ops_export_key(io, key, NULL); } @@ -817,14 +821,8 @@ "netpgp_encrypt_file: no filename specified\n"); return 0; } - if (userid == NULL) { - userid = netpgp_getvar(netpgp, "userid"); - } suffix = (armored) ? ".asc" : ".gpg"; - keypair = __ops_getkeybyname(io, netpgp->pubring, userid); - if (keypair == NULL) { - (void) fprintf(io->errs, "Userid '%s' not found in keyring\n", - userid); + if ((keypair = resolve_userid(netpgp, userid)) == NULL) { return 0; } if (out == NULL) {