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) {

Reply via email to