Module Name: src
Committed By: agc
Date: Sat Aug 7 04:16:41 UTC 2010
Modified Files:
src/crypto/external/bsd/netpgp/dist/include: Makefile.in netpgp.h
src/crypto/external/bsd/netpgp/dist/src: Makefile.am Makefile.in
src/crypto/external/bsd/netpgp/dist/src/lib: Makefile.in config.h.in
keyring.c keyring.h netpgp.c packet-print.c version.h
src/crypto/external/bsd/netpgp/dist/src/netpgp: Makefile Makefile.in
src/crypto/external/bsd/netpgp/dist/src/netpgpkeys: Makefile.in
netpgpkeys.c
src/crypto/external/bsd/netpgp/dist/src/netpgpverify: Makefile
Makefile.in
Log Message:
Catch up the JSON routines being in their own library. Use the JSON routines
to return all the text as a JSON-encoded string for all keys and sigs which
are returned.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
src/crypto/external/bsd/netpgp/dist/include/Makefile.in
cvs rdiff -u -r1.18 -r1.19 \
src/crypto/external/bsd/netpgp/dist/include/netpgp.h
cvs rdiff -u -r1.4 -r1.5 src/crypto/external/bsd/netpgp/dist/src/Makefile.am
cvs rdiff -u -r1.3 -r1.4 src/crypto/external/bsd/netpgp/dist/src/Makefile.in
cvs rdiff -u -r1.8 -r1.9 \
src/crypto/external/bsd/netpgp/dist/src/lib/Makefile.in \
src/crypto/external/bsd/netpgp/dist/src/lib/config.h.in
cvs rdiff -u -r1.39 -r1.40 \
src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c
cvs rdiff -u -r1.28 -r1.29 \
src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h
cvs rdiff -u -r1.65 -r1.66 \
src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c
cvs rdiff -u -r1.34 -r1.35 \
src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c
cvs rdiff -u -r1.37 -r1.38 \
src/crypto/external/bsd/netpgp/dist/src/lib/version.h
cvs rdiff -u -r1.16 -r1.17 \
src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile
cvs rdiff -u -r1.2 -r1.3 \
src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile.in
cvs rdiff -u -r1.1 -r1.2 \
src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/Makefile.in
cvs rdiff -u -r1.14 -r1.15 \
src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c
cvs rdiff -u -r1.15 -r1.16 \
src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile
cvs rdiff -u -r1.3 -r1.4 \
src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile.in
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/include/Makefile.in
diff -u src/crypto/external/bsd/netpgp/dist/include/Makefile.in:1.3 src/crypto/external/bsd/netpgp/dist/include/Makefile.in:1.4
--- src/crypto/external/bsd/netpgp/dist/include/Makefile.in:1.3 Wed Jun 10 00:38:09 2009
+++ src/crypto/external/bsd/netpgp/dist/include/Makefile.in Sat Aug 7 04:16:40 2010
@@ -36,7 +36,8 @@
DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/ax_check_openssl.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -70,37 +71,43 @@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-ECHO = @ECHO@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OPENSSL_INCLUDES = @OPENSSL_INCLUDES@
+OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -108,6 +115,7 @@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -120,8 +128,7 @@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -152,6 +159,7 @@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
Index: src/crypto/external/bsd/netpgp/dist/include/netpgp.h
diff -u src/crypto/external/bsd/netpgp/dist/include/netpgp.h:1.18 src/crypto/external/bsd/netpgp/dist/include/netpgp.h:1.19
--- src/crypto/external/bsd/netpgp/dist/include/netpgp.h:1.18 Tue Mar 16 04:14:29 2010
+++ src/crypto/external/bsd/netpgp/dist/include/netpgp.h Sat Aug 7 04:16:40 2010
@@ -74,6 +74,7 @@
/* key management */
int netpgp_list_keys(netpgp_t *, const int);
+int netpgp_list_keys_json(netpgp_t *, char **, const int);
int netpgp_find_key(netpgp_t *, char *);
char *netpgp_get_key(netpgp_t *, const char *, const char *);
char *netpgp_export_key(netpgp_t *, char *);
@@ -93,6 +94,7 @@
int netpgp_decrypt_memory(netpgp_t *, const void *, const size_t, char *, size_t, const int);
/* match and hkp-related functions */
+int netpgp_match_keys_json(netpgp_t *, char **, char *, const char *, const int);
int netpgp_match_keys(netpgp_t *, char *, const char *, void *, const int);
int netpgp_match_pubkeys(netpgp_t *, char *, void *);
Index: src/crypto/external/bsd/netpgp/dist/src/Makefile.am
diff -u src/crypto/external/bsd/netpgp/dist/src/Makefile.am:1.4 src/crypto/external/bsd/netpgp/dist/src/Makefile.am:1.5
--- src/crypto/external/bsd/netpgp/dist/src/Makefile.am:1.4 Wed Jun 10 00:38:09 2009
+++ src/crypto/external/bsd/netpgp/dist/src/Makefile.am Sat Aug 7 04:16:40 2010
@@ -1,3 +1,3 @@
-## $NetBSD: Makefile.am,v 1.4 2009/06/10 00:38:09 agc Exp $
+## $NetBSD: Makefile.am,v 1.5 2010/08/07 04:16:40 agc Exp $
-SUBDIRS = lib netpgp netpgpkeys netpgpverify
+SUBDIRS = libmj lib netpgp netpgpkeys netpgpverify
Index: src/crypto/external/bsd/netpgp/dist/src/Makefile.in
diff -u src/crypto/external/bsd/netpgp/dist/src/Makefile.in:1.3 src/crypto/external/bsd/netpgp/dist/src/Makefile.in:1.4
--- src/crypto/external/bsd/netpgp/dist/src/Makefile.in:1.3 Wed Jun 10 00:38:09 2009
+++ src/crypto/external/bsd/netpgp/dist/src/Makefile.in Sat Aug 7 04:16:40 2010
@@ -34,7 +34,8 @@
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/ax_check_openssl.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -69,37 +70,43 @@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-ECHO = @ECHO@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OPENSSL_INCLUDES = @OPENSSL_INCLUDES@
+OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -107,6 +114,7 @@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -119,8 +127,7 @@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -151,6 +158,7 @@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -166,7 +174,7 @@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-SUBDIRS = lib netpgp netpgpkeys netpgpverify
+SUBDIRS = libmj lib netpgp netpgpkeys netpgpverify
all: all-recursive
.SUFFIXES:
Index: src/crypto/external/bsd/netpgp/dist/src/lib/Makefile.in
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/Makefile.in:1.8 src/crypto/external/bsd/netpgp/dist/src/lib/Makefile.in:1.9
--- src/crypto/external/bsd/netpgp/dist/src/lib/Makefile.in:1.8 Mon Jul 26 06:39:43 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/Makefile.in Sat Aug 7 04:16:40 2010
@@ -36,7 +36,8 @@
DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in mkinstalldirs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/ax_check_openssl.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -56,13 +57,12 @@
libnetpgp_la-compress.lo libnetpgp_la-create.lo \
libnetpgp_la-crypto.lo libnetpgp_la-fastctype.lo \
libnetpgp_la-keyring.lo libnetpgp_la-misc.lo \
- libnetpgp_la-mj.lo \
- libnetpgp_la-netpgp.lo libnetpgp_la-openssl_crypto.lo \
- libnetpgp_la-packet-parse.lo libnetpgp_la-packet-print.lo \
- libnetpgp_la-packet-show.lo libnetpgp_la-reader.lo \
- libnetpgp_la-signature.lo libnetpgp_la-ssh2pgp.lo \
- libnetpgp_la-symmetric.lo libnetpgp_la-validate.lo \
- libnetpgp_la-writer.lo
+ libnetpgp_la-mj.lo libnetpgp_la-netpgp.lo \
+ libnetpgp_la-openssl_crypto.lo libnetpgp_la-packet-parse.lo \
+ libnetpgp_la-packet-print.lo libnetpgp_la-packet-show.lo \
+ libnetpgp_la-reader.lo libnetpgp_la-signature.lo \
+ libnetpgp_la-ssh2pgp.lo libnetpgp_la-symmetric.lo \
+ libnetpgp_la-validate.lo libnetpgp_la-writer.lo
libnetpgp_la_OBJECTS = $(am_libnetpgp_la_OBJECTS)
DEFAULT_INCLUDES = -...@am__isrc@
depcomp = $(SHELL) $(top_srcdir)/buildaux/depcomp
@@ -98,37 +98,43 @@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-ECHO = @ECHO@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OPENSSL_INCLUDES = @OPENSSL_INCLUDES@
+OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -136,6 +142,7 @@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -148,8 +155,7 @@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -180,6 +186,7 @@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -315,6 +322,7 @@
@AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/libnetpgp_la-fastctype....@am__quote@
@AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/libnetpgp_la-keyring....@am__quote@
@AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/libnetpgp_la-misc....@am__quote@
+...@amdep_true@@am__include@ @am__qu...@./$(DEPDIR)/libnetpgp_la-mj....@am__quote@
@AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/libnetpgp_la-netpgp....@am__quote@
@AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/libnetpgp_la-openssl_crypto....@am__quote@
@AMDEP_TRUE@@am__include@ @am__qu...@./$(DEPDIR)/libnetpgp_la-packet-parse....@am__quote@
Index: src/crypto/external/bsd/netpgp/dist/src/lib/config.h.in
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/config.h.in:1.8 src/crypto/external/bsd/netpgp/dist/src/lib/config.h.in:1.9
--- src/crypto/external/bsd/netpgp/dist/src/lib/config.h.in:1.8 Tue May 26 05:03:57 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/config.h.in Sat Aug 7 04:16:40 2010
@@ -114,6 +114,10 @@
/* Define to 1 if you have the <zlib.h> header file. */
#undef HAVE_ZLIB_H
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
/* Name of package */
#undef PACKAGE
Index: src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c:1.39 src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c:1.40
--- src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c:1.39 Fri Jul 9 05:35:34 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c Sat Aug 7 04:16:40 2010
@@ -57,7 +57,7 @@
#if defined(__NetBSD__)
__COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: keyring.c,v 1.39 2010/07/09 05:35:34 agc Exp $");
+__RCSID("$NetBSD: keyring.c,v 1.40 2010/08/07 04:16:40 agc Exp $");
#endif
#ifdef HAVE_FCNTL_H
@@ -995,6 +995,44 @@
return 1;
}
+int
+__ops_keyring_json(__ops_io_t *io, const __ops_keyring_t *keyring, mj_t *obj, const int psigs)
+{
+ __ops_key_t *key;
+ unsigned n;
+
+ (void) memset(obj, 0x0, sizeof(*obj));
+ mj_create(obj, "array");
+ obj->size = keyring->keyvsize;
+ if (__ops_get_debug_level(__FILE__)) {
+ (void) fprintf(io->errs, "__ops_keyring_json: vsize %u\n", obj->size);
+ }
+ if ((obj->value.v = calloc(sizeof(*obj->value.v), obj->size)) == NULL) {
+ (void) fprintf(io->errs, "calloc failure\n");
+ return 0;
+ }
+ for (n = 0, key = keyring->keys; n < keyring->keyc; ++n, ++key) {
+ if (__ops_is_key_secret(key)) {
+ __ops_sprint_mj(io, keyring, key, &obj->value.v[obj->c],
+ "sec", &key->key.seckey.pubkey, psigs);
+ } else {
+ __ops_sprint_mj(io, keyring, key, &obj->value.v[obj->c],
+ "pub", &key->key.pubkey, psigs);
+ }
+ if (obj->value.v[obj->c].type != 0) {
+ obj->c += 1;
+ }
+ }
+ if (__ops_get_debug_level(__FILE__)) {
+ char *s;
+
+ mj_asprint(&s, obj);
+ (void) fprintf(stderr, "__ops_keyring_json: '%s'\n", s);
+ free(s);
+ }
+ return 1;
+}
+
/* this interface isn't right - hook into callback for getting passphrase */
char *
Index: src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.28 src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.29
--- src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.28 Mon Jul 26 06:37:35 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h Sat Aug 7 04:16:40 2010
@@ -96,6 +96,7 @@
const char *);
int __ops_keyring_list(__ops_io_t *, const __ops_keyring_t *, const int);
+int __ops_keyring_json(__ops_io_t *, const __ops_keyring_t *, mj_t *, const int);
void __ops_set_seckey(__ops_contents_t *, const __ops_key_t *);
void __ops_forget(void *, unsigned);
@@ -120,7 +121,7 @@
const __ops_key_t *, char **, const char *,
const __ops_pubkey_t *, const int);
int __ops_sprint_mj(__ops_io_t *, const __ops_keyring_t *,
- const __ops_key_t *, char **, const char *,
+ const __ops_key_t *, mj_t *, const char *,
const __ops_pubkey_t *, const int);
int __ops_hkp_sprint_keydata(__ops_io_t *, const __ops_keyring_t *,
const __ops_key_t *, char **,
Index: src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.65 src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.66
--- src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c:1.65 Fri Jul 9 14:45:43 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c Sat Aug 7 04:16:40 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.65 2010/07/09 14:45:43 agc Exp $");
+__RCSID("$NetBSD: netpgp.c,v 1.66 2010/08/07 04:16:40 agc Exp $");
#endif
#include <sys/types.h>
@@ -631,6 +631,27 @@
return __ops_keyring_list(netpgp->io, netpgp->pubring, psigs);
}
+/* list the keys in a keyring, returning a JSON string */
+int
+netpgp_list_keys_json(netpgp_t *netpgp, char **json, const int psigs)
+{
+ mj_t obj;
+ int ret;
+
+ if (netpgp->pubring == NULL) {
+ (void) fprintf(stderr, "No keyring\n");
+ return 0;
+ }
+ (void) memset(&obj, 0x0, sizeof(obj));
+ if (!__ops_keyring_json(netpgp->io, netpgp->pubring, &obj, psigs)) {
+ (void) fprintf(stderr, "No keys in keyring\n");
+ return 0;
+ }
+ ret = mj_asprint(json, &obj);
+ mj_delete(&obj);
+ return ret;
+}
+
DEFINE_ARRAY(strings_t, char *);
#ifndef HKP_VERSION
@@ -687,6 +708,48 @@
return pubs.c;
}
+/* find and list some keys in a keyring - return JSON string */
+int
+netpgp_match_keys_json(netpgp_t *netpgp, char **json, char *name, const char *fmt, const int psigs)
+{
+ const __ops_key_t *key;
+ unsigned k;
+ mj_t id_array;
+ int ret;
+
+ if (name[0] == '0' && name[1] == 'x') {
+ name += 2;
+ }
+ (void) memset(&id_array, 0x0, sizeof(id_array));
+ k = 0;
+ *json = NULL;
+ mj_create(&id_array, "array");
+ do {
+ key = __ops_getnextkeybyname(netpgp->io, netpgp->pubring,
+ name, &k);
+ if (key != NULL) {
+ if (strcmp(fmt, "mr") == 0) {
+#if 0
+ __ops_hkp_sprint_keydata(netpgp->io, netpgp->pubring,
+ key, &pubs.v[pubs.c],
+ &key->key.pubkey, psigs);
+#endif
+ } else {
+ ALLOC(mj_t, id_array.value.v, id_array.size,
+ id_array.c, 10, 10, "netpgp_match_keys_json", return 0);
+ __ops_sprint_mj(netpgp->io, netpgp->pubring,
+ key, &id_array.value.v[id_array.c++],
+ "pub",
+ &key->key.pubkey, psigs);
+ }
+ k += 1;
+ }
+ } while (key != NULL);
+ ret = mj_asprint(json, &id_array);
+ mj_delete(&id_array);
+ return ret;
+}
+
/* find and list some public keys in a keyring */
int
netpgp_match_pubkeys(netpgp_t *netpgp, char *name, void *vp)
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.34 src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.35
--- src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.34 Mon Jul 26 06:37:35 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c Sat Aug 7 04:16:40 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.34 2010/07/26 06:37:35 agc Exp $");
+__RCSID("$NetBSD: packet-print.c,v 1.35 2010/08/07 04:16:40 agc Exp $");
#endif
#include <string.h>
@@ -473,22 +473,17 @@
uidbuf);
}
+/* return the key info as a JSON encoded string */
int
__ops_sprint_mj(__ops_io_t *io, const __ops_keyring_t *keyring,
- const __ops_key_t *key, char **buf, const char *header,
+ const __ops_key_t *key, mj_t *keyjson, const char *header,
const __ops_pubkey_t *pubkey, const int psigs)
{
const __ops_key_t *trustkey;
unsigned from;
unsigned i;
unsigned j;
- time_t now;
- mj_t expired_obj;
- mj_t uids_array;
- mj_t sig_array;
- mj_t sig_obj;
- mj_t key_obj;
- char uidbuf[KB(64)];
+ mj_t sub_obj;
char keyid[OPS_KEY_ID_SIZE * 3];
char fp[(OPS_FINGERPRINT_SIZE * 3) + 1];
int r;
@@ -496,40 +491,28 @@
if (key == NULL || key->revoked) {
return -1;
}
- (void) memset(uidbuf, 0x0, sizeof(uidbuf));
- (void) memset(&key_obj, 0x0, sizeof(key_obj));
- mj_create(&key_obj, "object");
- mj_append_field(&key_obj, "header", "string", header);
- mj_append_field(&key_obj, "key bits", "integer", (int64_t) numkeybits(pubkey));
- mj_append_field(&key_obj, "pka", "string", __ops_show_pka(pubkey->alg));
- mj_append_field(&key_obj, "key id", "string", strhexdump(keyid, key->key_id, OPS_KEY_ID_SIZE, ""));
- mj_append(&key_obj, "fingerprint", "string",
+ (void) memset(keyjson, 0x0, sizeof(*keyjson));
+ mj_create(keyjson, "object");
+ mj_append_field(keyjson, "header", "string", header);
+ mj_append_field(keyjson, "key bits", "integer", (int64_t) numkeybits(pubkey));
+ mj_append_field(keyjson, "pka", "string", __ops_show_pka(pubkey->alg));
+ mj_append_field(keyjson, "key id", "string", strhexdump(keyid, key->key_id, OPS_KEY_ID_SIZE, ""));
+ mj_append_field(keyjson, "fingerprint", "string",
strhexdump(fp, key->fingerprint.fingerprint, key->fingerprint.length, " "));
- now = time(NULL);
- mj_append_field(&key_obj, "birthtime", "integer", pubkey->birthtime);
- mj_append_field(&key_obj, "duration", "integer", pubkey->duration);
- if (pubkey->duration > 0) {
- (void) memset(&expired_obj, 0x0, sizeof(expired_obj));
- mj_append_field(&expired_obj, "expiry status", "string",
- (pubkey->birthtime + pubkey->duration < now) ? "[EXPIRED]" : "[EXPIRES]");
- mj_append_field(&expired_obj, "expiry", "integer",
- (int64_t)(pubkey->birthtime + pubkey->duration));
- mj_append_field(&key_obj, "expiration", "object", &expired_obj);
- }
- (void) memset(&uids_array, 0x0, sizeof(uids_array));
- mj_create(&uids_array, "array");
+ mj_append_field(keyjson, "birthtime", "integer", pubkey->birthtime);
+ mj_append_field(keyjson, "duration", "integer", pubkey->duration);
for (i = 0; i < key->uidc; i++) {
if ((r = isrevoked(key, i)) >= 0 &&
key->revokes[r].code == OPS_REVOCATION_COMPROMISED) {
continue;
}
- mj_append(&uids_array, "string", key->uids[i]);
- mj_append(&uids_array, "integer", r);
- (void) memset(&sig_array, 0x0, sizeof(sig_array));
- mj_create(&sig_array, "array");
+ (void) memset(&sub_obj, 0x0, sizeof(sub_obj));
+ mj_create(&sub_obj, "array");
+ mj_append(&sub_obj, "string", key->uids[i]);
+ mj_append(&sub_obj, "string", (r >= 0) ? "[REVOKED]" : "");
+ mj_append_field(keyjson, "uid", "array", &sub_obj);
+ mj_delete(&sub_obj);
for (j = 0 ; j < key->subsigc ; j++) {
- (void) memset(&sig_obj, 0x0, sizeof(sig_obj));
- mj_create(&sig_obj, "object");
if (psigs) {
if (key->subsigs[j].uid != i) {
continue;
@@ -541,39 +524,39 @@
continue;
}
}
- mj_append_field(&sig_obj, "pgp version", "integer", (int64_t)key->subsigs[j].sig.info.version);
+ (void) memset(&sub_obj, 0x0, sizeof(sub_obj));
+ mj_create(&sub_obj, "array");
if (key->subsigs[j].sig.info.version == 4 &&
key->subsigs[j].sig.info.type == OPS_SIG_SUBKEY) {
- mj_append_field(&sig_obj, "header", "string", "sub");
- mj_append_field(&sig_obj, "key size", "integer", (int64_t)numkeybits(pubkey));
- mj_append_field(&sig_obj, "pka", "string",
+ mj_append(&sub_obj, "integer", (int64_t)numkeybits(pubkey));
+ mj_append(&sub_obj, "string",
(const char *)__ops_show_pka(key->subsigs[j].sig.info.key_alg));
- mj_append_field(&sig_obj, "signer", "string",
+ mj_append(&sub_obj, "string",
strhexdump(keyid, key->subsigs[j].sig.info.signer_id, OPS_KEY_ID_SIZE, ""));
- mj_append_field(&sig_obj, "signtime", "integer",
- (int64_t)key->subsigs[j].sig.info.birthtime);
+ mj_append(&sub_obj, "integer", (int64_t)key->subsigs[j].sig.info.birthtime);
+ mj_append_field(keyjson, "sub", "array", &sub_obj);
+ mj_delete(&sub_obj);
} else {
- mj_append_field(&sig_obj, "signer", "string",
+ mj_append(&sub_obj, "string",
strhexdump(keyid, key->subsigs[j].sig.info.signer_id, OPS_KEY_ID_SIZE, ""));
- mj_append_field(&sig_obj, "signtime", "integer",
+ mj_append(&sub_obj, "integer",
(int64_t)(key->subsigs[j].sig.info.birthtime));
from = 0;
trustkey = __ops_getkeybyid(io, keyring, key->subsigs[j].sig.info.signer_id, &from);
- mj_append_field(&sig_obj, "trustkey", "string",
+ mj_append(&sub_obj, "string",
(trustkey) ? (char *)trustkey->uids[trustkey->uid0] : "[unknown]");
+ mj_append_field(keyjson, "sig", "array", &sub_obj);
+ mj_delete(&sub_obj);
}
- mj_append(&sig_array, "object", &sig_obj);
- mj_delete(&sig_obj);
- }
- if (mj_arraycount(&sig_array) > 0) {
- mj_append(&uids_array, "array", &sig_array);
}
- mj_delete(&sig_array);
}
- mj_append_field(&key_obj, "uids", "array", &uids_array);
- mj_delete(&uids_array);
- mj_asprint(buf, &key_obj);
- mj_delete(&key_obj);
+ if (__ops_get_debug_level(__FILE__)) {
+ char *buf;
+
+ mj_asprint(&buf, keyjson);
+ (void) fprintf(stderr, "__ops_sprint_mj: '%s'\n", buf);
+ free(buf);
+ }
return 1;
}
Index: src/crypto/external/bsd/netpgp/dist/src/lib/version.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.37 src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.38
--- src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.37 Fri Jul 9 05:35:35 2010
+++ src/crypto/external/bsd/netpgp/dist/src/lib/version.h Sat Aug 7 04:16:40 2010
@@ -58,7 +58,7 @@
#endif
/* development versions have .99 suffix */
-#define NETPGP_BASE_VERSION "3.99.7"
+#define NETPGP_BASE_VERSION "3.99.8"
#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.16 src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile:1.17
--- src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile:1.16 Fri Jul 9 05:36:28 2010
+++ src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile Sat Aug 7 04:16:40 2010
@@ -117,16 +117,16 @@
PACKAGE = netpgp
PACKAGE_BUGREPORT = Alistair Crooks <[email protected]> c0596823
PACKAGE_NAME = netpgp
-PACKAGE_STRING = netpgp 20100707
+PACKAGE_STRING = netpgp 20100708
PACKAGE_TARNAME = netpgp
-PACKAGE_VERSION = 20100707
+PACKAGE_VERSION = 20100708
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/ksh
STRIP = strip
-VERSION = 20100707
+VERSION = 20100708
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/netpgp/Makefile.in
diff -u src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile.in:1.2 src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile.in:1.3
--- src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile.in:1.2 Wed Jun 10 00:38:09 2009
+++ src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile.in Sat Aug 7 04:16:40 2010
@@ -37,7 +37,8 @@
DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/ax_check_openssl.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -83,37 +84,43 @@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-ECHO = @ECHO@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OPENSSL_INCLUDES = @OPENSSL_INCLUDES@
+OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -121,6 +128,7 @@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -133,8 +141,7 @@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -165,6 +172,7 @@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
Index: src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/Makefile.in
diff -u src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/Makefile.in:1.1 src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/Makefile.in:1.2
--- src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/Makefile.in:1.1 Wed Jun 10 00:38:10 2009
+++ src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/Makefile.in Sat Aug 7 04:16:41 2010
@@ -37,7 +37,8 @@
DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/ax_check_openssl.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -83,37 +84,43 @@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-ECHO = @ECHO@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OPENSSL_INCLUDES = @OPENSSL_INCLUDES@
+OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -121,6 +128,7 @@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -133,8 +141,7 @@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -165,6 +172,7 @@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
Index: src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c
diff -u src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c:1.14 src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c:1.15
--- src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c:1.14 Thu Jul 1 04:27:21 2010
+++ src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c Sat Aug 7 04:16:41 2010
@@ -33,11 +33,13 @@
#include <sys/stat.h>
#include <getopt.h>
+#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <mj.h>
#include <netpgp.h>
/*
@@ -156,6 +158,190 @@
progname, progname, usagemsg);
}
+/* vararg print function */
+static void
+p(FILE *fp, char *s, ...)
+{
+ va_list args;
+
+ va_start(args, s);
+ while (s != NULL) {
+ (void) fprintf(fp, "%s", s);
+ s = va_arg(args, char *);
+ }
+ va_end(args);
+}
+
+/* print a JSON object to the FILE stream */
+static void
+pobj(FILE *fp, mj_t *obj, int depth)
+{
+ int i;
+
+ for (i = 0 ; i < depth ; i++) {
+ p(fp, " ", NULL);
+ }
+ switch(obj->type) {
+ case MJ_NULL:
+ case MJ_FALSE:
+ case MJ_TRUE:
+ p(fp, (obj->type == MJ_NULL) ? "null" : (obj->type == MJ_FALSE) ? "false" : "true", NULL);
+ break;
+ case MJ_NUMBER:
+ p(fp, obj->value.s, NULL);
+ break;
+ case MJ_STRING:
+ (void) fprintf(fp, "%.*s", (int)(obj->c), obj->value.s);
+ break;
+ case MJ_ARRAY:
+ for (i = 0 ; i < obj->c ; i++) {
+ pobj(fp, &obj->value.v[i], depth + 1);
+ if (i < obj->c - 1) {
+ (void) fprintf(fp, ", ");
+ }
+ }
+ (void) fprintf(fp, "\n");
+ break;
+ case MJ_OBJECT:
+ for (i = 0 ; i < obj->c ; i += 2) {
+ pobj(fp, &obj->value.v[i], depth + 1);
+ p(fp, ": ", NULL);
+ pobj(fp, &obj->value.v[i + 1], 0);
+ if (i < obj->c - 1) {
+ p(fp, ", ", NULL);
+ }
+ }
+ p(fp, "\n", NULL);
+ break;
+ default:
+ break;
+ }
+}
+
+/* return the time as a string */
+static char *
+ptimestr(char *dest, size_t size, time_t t)
+{
+ struct tm *tm;
+
+ tm = gmtime(&t);
+ (void) snprintf(dest, size, "%04d-%02d-%02d",
+ tm->tm_year + 1900,
+ tm->tm_mon + 1,
+ tm->tm_mday);
+ return dest;
+}
+
+/* format a JSON object */
+static void
+formatobj(FILE *fp, mj_t *obj, const int psigs)
+{
+ int64_t birthtime;
+ int64_t duration;
+ time_t now;
+ char tbuf[32];
+ char *s;
+ mj_t *sub;
+ int r;
+ int i;
+
+ if (__ops_get_debug_level(__FILE__)) {
+ mj_asprint(&s, obj);
+ (void) fprintf(stderr, "formatobj: json is '%s'\n", s);
+ free(s);
+ }
+ pobj(fp, &obj->value.v[mj_object_find(obj, "header", 0, 2) + 1], 0);
+ p(fp, " ", NULL);
+ pobj(fp, &obj->value.v[mj_object_find(obj, "key bits", 0, 2) + 1], 0);
+ p(fp, "/", NULL);
+ pobj(fp, &obj->value.v[mj_object_find(obj, "pka", 0, 2) + 1], 0);
+ p(fp, " ", NULL);
+ pobj(fp, &obj->value.v[mj_object_find(obj, "key id", 0, 2) + 1], 0);
+ birthtime = strtoll(obj->value.v[mj_object_find(obj, "birthtime", 0, 2) + 1].value.s, NULL, 10);
+ p(fp, " ", ptimestr(tbuf, sizeof(tbuf), birthtime), NULL);
+ duration = strtoll(obj->value.v[mj_object_find(obj, "duration", 0, 2) + 1].value.s, NULL, 10);
+ if (duration > 0) {
+ now = time(NULL);
+ p(fp, " ", (birthtime + duration < now) ? "[EXPIRED " : "[EXPIRES ",
+ ptimestr(tbuf, sizeof(tbuf), birthtime + duration), "]", NULL);
+ }
+ p(fp, "\n", "Key fingerprint: ", NULL);
+ pobj(fp, &obj->value.v[mj_object_find(obj, "fingerprint", 0, 2) + 1], 0);
+ p(fp, "\n", NULL);
+ /* go to field after \"duration\" */
+ for (i = mj_object_find(obj, "duration", 0, 2) + 2; i < mj_arraycount(obj) ; i += 2) {
+ if (strcmp(obj->value.v[i].value.s, "uid") == 0) {
+ sub = &obj->value.v[i + 1];
+ p(fp, "uid", NULL);
+ pobj(fp, &sub->value.v[0], (psigs) ? 4 : 14); /* human name */
+ pobj(fp, &sub->value.v[1], 1); /* any revocation */
+ p(fp, "\n", NULL);
+ } else if (strcmp(obj->value.v[i].value.s, "sub") == 0) {
+ sub = &obj->value.v[i + 1];
+ p(fp, "sub", NULL);
+ pobj(fp, &sub->value.v[0], 1); /* size */
+ p(fp, "/", NULL);
+ pobj(fp, &sub->value.v[1], 0); /* alg */
+ p(fp, " ", NULL);
+ pobj(fp, &sub->value.v[2], 0); /* id */
+ p(fp, " ", ptimestr(tbuf, sizeof(tbuf), strtoll(sub->value.v[3].value.s, NULL, 10)),
+ "\n", NULL);
+ } else if (strcmp(obj->value.v[i].value.s, "sig") == 0) {
+ sub = &obj->value.v[i + 1];
+ p(fp, "sig", NULL);
+ pobj(fp, &sub->value.v[0], 8); /* size */
+ p(fp, " ", ptimestr(tbuf, sizeof(tbuf), strtoll(sub->value.v[1].value.s, NULL, 10)),
+ " ", NULL); /* time */
+ pobj(fp, &sub->value.v[2], 0); /* human name */
+ p(fp, "\n", NULL);
+ } else {
+ fprintf(stderr, "weird '%s'\n", obj->value.v[i].value.s);
+ pobj(fp, &obj->value.v[i], 0); /* human name */
+ }
+ }
+ p(fp, "\n", NULL);
+}
+
+/* match keys, decoding from json if we do find any */
+static int
+match_keys(netpgp_t *netpgp, FILE *fp, char *f, const int psigs)
+{
+ char *json;
+ mj_t ids;
+ int from;
+ int idc;
+ int tok;
+ int to;
+ int i;
+
+ if (f == NULL) {
+ if (!netpgp_list_keys_json(netpgp, &json, psigs)) {
+ return 0;
+ }
+ } else {
+ if (netpgp_match_keys_json(netpgp, &json, f, "human", psigs) == 0) {
+ return 0;
+ }
+ }
+ if (__ops_get_debug_level(__FILE__)) {
+ (void) fprintf(stderr, "match_keys: json is '%s'\n", json);
+ }
+ /* ids is an array of strings, each containing 1 entry */
+ (void) memset(&ids, 0x0, sizeof(ids));
+ from = to = tok = 0;
+ /* convert from string into an mj structure */
+ (void) mj_parse(&ids, json, &from, &to, &tok);
+ idc = mj_arraycount(&ids);
+ (void) fprintf(fp, "%d key%s found\n", idc, (idc == 1) ? "" : "s");
+ for (i = 0 ; i < idc ; i++) {
+ formatobj(fp, &ids.value.v[i], psigs);
+ }
+ /* clean up */
+ free(json);
+ mj_delete(&ids);
+ return idc;
+}
+
/* do a command once for a specified file 'f' */
static int
netpgp_cmd(netpgp_t *netpgp, prog_t *p, char *f)
@@ -164,9 +350,8 @@
switch (p->cmd) {
case LIST_KEYS:
- return (f == NULL) ? netpgp_list_keys(netpgp, 0) : netpgp_match_keys(netpgp, f, "human", stdout, 0);
case LIST_SIGS:
- return (f == NULL) ? netpgp_list_keys(netpgp, 1) : netpgp_match_keys(netpgp, f, "human", stdout, 1);
+ return match_keys(netpgp, stdout, f, (p->cmd == LIST_SIGS));
case FIND_KEY:
return netpgp_find_key(netpgp, netpgp_getvar(netpgp, "userid"));
case EXPORT_KEY:
Index: src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile
diff -u src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.15 src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.16
--- src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile:1.15 Fri Jul 9 05:36:29 2010
+++ src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile Sat Aug 7 04:16:41 2010
@@ -118,16 +118,16 @@
PACKAGE = netpgp
PACKAGE_BUGREPORT = Alistair Crooks <[email protected]> c0596823
PACKAGE_NAME = netpgp
-PACKAGE_STRING = netpgp 20100707
+PACKAGE_STRING = netpgp 20100708
PACKAGE_TARNAME = netpgp
-PACKAGE_VERSION = 20100707
+PACKAGE_VERSION = 20100708
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/ksh
STRIP = strip
-VERSION = 20100707
+VERSION = 20100708
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
Index: src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile.in
diff -u src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile.in:1.3 src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile.in:1.4
--- src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile.in:1.3 Mon May 31 06:09:41 2010
+++ src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile.in Sat Aug 7 04:16:41 2010
@@ -37,7 +37,8 @@
DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/ax_check_openssl.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
@@ -49,7 +50,6 @@
am_netpgpverify_OBJECTS = netpgpverify-verify.$(OBJEXT)
netpgpverify_OBJECTS = $(am_netpgpverify_OBJECTS)
netpgpverify_DEPENDENCIES = ../lib/libnetpgp.la
-netpgpverify_LDADD = ../lib/libnetpgp.la
DEFAULT_INCLUDES = -...@am__isrc@ -I$(top_builddir)/src/lib
depcomp = $(SHELL) $(top_srcdir)/buildaux/depcomp
am__depfiles_maybe = depfiles
@@ -84,37 +84,43 @@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
-ECHO = @ECHO@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
+OPENSSL_INCLUDES = @OPENSSL_INCLUDES@
+OPENSSL_LDFLAGS = @OPENSSL_LDFLAGS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -122,6 +128,7 @@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
@@ -134,8 +141,7 @@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -166,6 +172,7 @@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@@ -184,6 +191,7 @@
AM_CFLAGS = $(WARNCFLAGS)
netpgpverify_SOURCES = verify.c
netpgpverify_CPPFLAGS = -I$(top_srcdir)/include
+netpgpverify_LDADD = ../lib/libnetpgp.la
man1_MANS = netpgpverify.1
dist_man_MANS = netpgpverify.1
all: all-am