Module Name: src
Committed By: agc
Date: Mon May 18 03:55:42 UTC 2009
Modified Files:
src/crypto/external/bsd/netpgp/dist: configure configure.ac tst
src/crypto/external/bsd/netpgp/dist/src/lib: config.h crypto.c crypto.h
keyring.h packet-parse.c packet-parse.h packet-print.c validate.c
validate.h version.h
Log Message:
+ some more name changes
+ we've had the ability to sign files with a detached signature for
a while now. We can now verify the files using the detached signature
file.
+ in honour of this, update version numbers - 1.0.0/20090517
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/crypto/external/bsd/netpgp/dist/configure \
src/crypto/external/bsd/netpgp/dist/configure.ac
cvs rdiff -u -r1.2 -r1.3 src/crypto/external/bsd/netpgp/dist/tst
cvs rdiff -u -r1.6 -r1.7 src/crypto/external/bsd/netpgp/dist/src/lib/config.h \
src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h \
src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.h \
src/crypto/external/bsd/netpgp/dist/src/lib/version.h
cvs rdiff -u -r1.9 -r1.10 \
src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c \
src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c
cvs rdiff -u -r1.5 -r1.6 src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h
cvs rdiff -u -r1.11 -r1.12 \
src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c
cvs rdiff -u -r1.10 -r1.11 \
src/crypto/external/bsd/netpgp/dist/src/lib/validate.c
cvs rdiff -u -r1.7 -r1.8 \
src/crypto/external/bsd/netpgp/dist/src/lib/validate.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/configure
diff -u src/crypto/external/bsd/netpgp/dist/configure:1.6 src/crypto/external/bsd/netpgp/dist/configure:1.7
--- src/crypto/external/bsd/netpgp/dist/configure:1.6 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/configure Mon May 18 03:55:42 2009
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for netpgp 20090515.
+# Generated by GNU Autoconf 2.63 for netpgp 20090517.
#
# Report bugs to <Alistair Crooks <[email protected]> c0596823>.
#
@@ -596,8 +596,8 @@
# Identity of this package.
PACKAGE_NAME='netpgp'
PACKAGE_TARNAME='netpgp'
-PACKAGE_VERSION='20090515'
-PACKAGE_STRING='netpgp 20090515'
+PACKAGE_VERSION='20090517'
+PACKAGE_STRING='netpgp 20090517'
PACKAGE_BUGREPORT='Alistair Crooks <[email protected]> c0596823'
ac_unique_file="src/bin/netpgp.c"
@@ -1268,7 +1268,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures netpgp 20090515 to adapt to many kinds of systems.
+\`configure' configures netpgp 20090517 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1338,7 +1338,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of netpgp 20090515:";;
+ short | recursive ) echo "Configuration of netpgp 20090517:";;
esac
cat <<\_ACEOF
@@ -1418,7 +1418,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-netpgp configure 20090515
+netpgp configure 20090517
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1432,7 +1432,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by netpgp $as_me 20090515, which was
+It was created by netpgp $as_me 20090517, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -6161,7 +6161,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by netpgp $as_me 20090515, which was
+This file was extended by netpgp $as_me 20090517, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -6220,7 +6220,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-netpgp config.status 20090515
+netpgp config.status 20090517
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
Index: src/crypto/external/bsd/netpgp/dist/configure.ac
diff -u src/crypto/external/bsd/netpgp/dist/configure.ac:1.6 src/crypto/external/bsd/netpgp/dist/configure.ac:1.7
--- src/crypto/external/bsd/netpgp/dist/configure.ac:1.6 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/configure.ac Mon May 18 03:55:42 2009
@@ -1,7 +1,7 @@
-dnl $Id: configure.ac,v 1.6 2009/05/16 06:30:38 agc Exp $
+dnl $Id: configure.ac,v 1.7 2009/05/18 03:55:42 agc Exp $
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
-AC_INIT([netpgp],[20090515],[Alistair Crooks <[email protected]> c0596823])
+AC_INIT([netpgp],[20090517],[Alistair Crooks <[email protected]> c0596823])
AC_CONFIG_SRCDIR([src/bin/netpgp.c])
AC_CONFIG_HEADER(src/lib/config.h)
AC_ARG_PROGRAM
Index: src/crypto/external/bsd/netpgp/dist/tst
diff -u src/crypto/external/bsd/netpgp/dist/tst:1.2 src/crypto/external/bsd/netpgp/dist/tst:1.3
--- src/crypto/external/bsd/netpgp/dist/tst:1.2 Tue May 5 01:28:15 2009
+++ src/crypto/external/bsd/netpgp/dist/tst Mon May 18 03:55:42 2009
@@ -31,6 +31,11 @@
/usr/bin/netpgp --encrypt d
/usr/bin/netpgp --decrypt d.gpg
diff e d && echo "No differences found"
+echo "======> sign/verify detached signature file"
+cat configure configure configure configure configure configure > f
+/usr/bin/netpgp --sign --detached f
+ls -l f f.sig
+/usr/bin/netpgp --verify f.sig
echo "======> version information"
/usr/bin/netpgp --version
-rm -f a a.gpg b b.gpg c c.gpg d d.gpg e
+rm -f a a.gpg b b.gpg c c.gpg d d.gpg e f f.sig
Index: src/crypto/external/bsd/netpgp/dist/src/lib/config.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/config.h:1.6 src/crypto/external/bsd/netpgp/dist/src/lib/config.h:1.7
--- src/crypto/external/bsd/netpgp/dist/src/lib/config.h:1.6 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/config.h Mon May 18 03:55:42 2009
@@ -122,13 +122,13 @@
#define PACKAGE_NAME "netpgp"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "netpgp 20090515"
+#define PACKAGE_STRING "netpgp 20090517"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "netpgp"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "20090515"
+#define PACKAGE_VERSION "20090517"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
Index: src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.6 src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.7
--- src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h:1.6 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h Mon May 18 03:55:42 2009
@@ -120,7 +120,7 @@
void __ops_print_seckeydata(const __ops_keydata_t *);
void __ops_list_packets(char *, unsigned, __ops_keyring_t *,
- __ops_parse_cb_t *);
+ __ops_cbfunc_t *);
int __ops_export_key(const __ops_keydata_t *, unsigned char *);
Index: src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.h:1.6 src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.h:1.7
--- src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.h:1.6 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.h Mon May 18 03:55:42 2009
@@ -76,9 +76,9 @@
OPS_FINISHED
} __ops_parse_cb_return_t;
-typedef struct __ops_parse_cb_info_t __ops_callback_data_t;
+typedef struct __ops_callback_data_t __ops_callback_data_t;
-typedef __ops_parse_cb_return_t __ops_parse_cb_t(const __ops_packet_t *,
+typedef __ops_parse_cb_return_t __ops_cbfunc_t(const __ops_packet_t *,
__ops_callback_data_t *);
__ops_parse_cb_return_t
@@ -117,8 +117,8 @@
__ops_error_t *__ops_parseinfo_get_errors(__ops_parseinfo_t *);
__ops_crypt_t *__ops_parse_get_decrypt(__ops_parseinfo_t *);
-void __ops_set_callback(__ops_parseinfo_t *, __ops_parse_cb_t *, void *);
-void __ops_parse_cb_push(__ops_parseinfo_t *, __ops_parse_cb_t *, void *);
+void __ops_set_callback(__ops_parseinfo_t *, __ops_cbfunc_t *, void *);
+void __ops_parse_cb_push(__ops_parseinfo_t *, __ops_cbfunc_t *, void *);
void *__ops_parse_cb_get_arg(__ops_callback_data_t *);
void *__ops_parse_cb_get_errors(__ops_callback_data_t *);
void __ops_reader_set(__ops_parseinfo_t *, __ops_reader_func_t *,
Index: src/crypto/external/bsd/netpgp/dist/src/lib/version.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.6 src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.7
--- src/crypto/external/bsd/netpgp/dist/src/lib/version.h:1.6 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/version.h Mon May 18 03:55:42 2009
@@ -58,7 +58,7 @@
#endif
/* development versions have .99 suffix */
-#define NETPGP_BASE_VERSION "0.99.4"
+#define NETPGP_BASE_VERSION "1.0.0"
#define NETPGP_VERSION_CAT(a, b) "NetPGP portable " a "/[" b "]"
#define NETPGP_VERSION_STRING \
Index: src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c:1.9 src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c:1.10
--- src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c:1.9 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c Mon May 18 03:55:42 2009
@@ -54,7 +54,7 @@
#if defined(__NetBSD__)
__COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: crypto.c,v 1.9 2009/05/16 06:30:38 agc Exp $");
+__RCSID("$NetBSD: crypto.c,v 1.10 2009/05/18 03:55:42 agc Exp $");
#endif
#include <sys/types.h>
@@ -311,7 +311,7 @@
__ops_keyring_t *keyring,
const unsigned use_armour,
const unsigned allow_overwrite,
- __ops_parse_cb_t *cb_get_passphrase)
+ __ops_cbfunc_t *cb_get_passphrase)
{
__ops_parseinfo_t *parse = NULL;
char *filename = NULL;
@@ -369,7 +369,7 @@
/* setup keyring and passphrase callback */
parse->cbinfo.cryptinfo.keyring = keyring;
- parse->cbinfo.cryptinfo.cb_get_passphrase = cb_get_passphrase;
+ parse->cbinfo.cryptinfo.getpassphrase = cb_get_passphrase;
/* Set up armour/passphrase options */
if (use_armour) {
@@ -425,7 +425,7 @@
return get_seckey_cb(pkt, cbinfo);
case OPS_PARSER_CMD_GET_SK_PASSPHRASE:
- return cbinfo->cryptinfo.cb_get_passphrase(pkt, cbinfo);
+ return cbinfo->cryptinfo.getpassphrase(pkt, cbinfo);
case OPS_PTAG_CT_LITERAL_DATA_BODY:
return litdata_cb(pkt, cbinfo);
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.9 src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.10
--- src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c:1.9 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c Mon May 18 03:55:42 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.9 2009/05/16 06:30:38 agc Exp $");
+__RCSID("$NetBSD: packet-print.c,v 1.10 2009/05/18 03:55:42 agc Exp $");
#endif
#include <string.h>
@@ -1216,7 +1216,7 @@
__ops_list_packets(char *filename,
unsigned armour,
__ops_keyring_t *keyring,
- __ops_parse_cb_t *cb_get_passphrase)
+ __ops_cbfunc_t *cb_get_passphrase)
{
__ops_parseinfo_t *pinfo = NULL;
const unsigned accumulate = 1;
@@ -1226,7 +1226,7 @@
accumulate);
__ops_parse_options(pinfo, OPS_PTAG_SS_ALL, OPS_PARSE_PARSED);
pinfo->cryptinfo.keyring = keyring;
- pinfo->cryptinfo.cb_get_passphrase = cb_get_passphrase;
+ pinfo->cryptinfo.getpassphrase = cb_get_passphrase;
if (armour) {
__ops_reader_push_dearmour(pinfo);
}
Index: src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.5 src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.6
--- src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h:1.5 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h Mon May 18 03:55:42 2009
@@ -183,7 +183,7 @@
const __ops_keydata_t *,
const unsigned, const unsigned);
unsigned __ops_decrypt_file(const char *, const char *, __ops_keyring_t *,
- const unsigned, const unsigned, __ops_parse_cb_t *);
+ const unsigned, const unsigned, __ops_cbfunc_t *);
/* Keys */
__ops_keydata_t *__ops_rsa_new_selfsign_keypair(const int,
@@ -216,16 +216,16 @@
char *passphrase;
__ops_keyring_t *keyring;
const __ops_keydata_t *keydata;
- __ops_parse_cb_t *cb_get_passphrase;
+ __ops_cbfunc_t *getpassphrase;
};
-/** __ops_parse_cb_info */
-struct __ops_parse_cb_info_t {
- __ops_parse_cb_t *cb; /* callback function */
+/** __ops_callback_data_t */
+struct __ops_callback_data_t {
+ __ops_cbfunc_t *cbfunc; /* callback function */
void *arg; /* args to pass to callback func */
__ops_error_t **errors; /* address of error stack */
__ops_callback_data_t *next;
- __ops_output_t *output; /* used if writing out parsed info */
+ __ops_output_t *output;/* used if writing out parsed info */
__ops_cryptinfo_t cryptinfo; /* used when decrypting */
};
Index: src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c:1.11 src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c:1.12
--- src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c:1.11 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c Mon May 18 03:55:42 2009
@@ -58,7 +58,7 @@
#if defined(__NetBSD__)
__COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: packet-parse.c,v 1.11 2009/05/16 06:30:38 agc Exp $");
+__RCSID("$NetBSD: packet-parse.c,v 1.12 2009/05/18 03:55:42 agc Exp $");
#endif
#ifdef HAVE_OPENSSL_CAST_H
@@ -3060,182 +3060,6 @@
return r;
}
-#if 0
-static int
-parse_detached(__ops_parseinfo_t *pinfo, unsigned long *pktlen)
-{
- __ops_packet_t pkt;
- __ops_region_t region;
- unsigned char ptag[1];
- struct stat st;
- unsigned indeterminate = 0;
- int ret;
-
- (void) memset(&pkt, 0x0, sizeof(pkt));
- pkt.u.ptag.position = pinfo->readinfo.position;
- if (__ops_get_debug_level(__FILE__)) {
- (void) fprintf(stderr,
- "__ops_parse_packet: base_read returned %d\n",
- ret);
- }
- ptag = (OPS_PTAG_ALWAYS_SET | OPS_PTAG_NEW_FORMAT);
- *pktlen = 0;
- if (!(*ptag & OPS_PTAG_ALWAYS_SET)) {
- pkt.u.error.error = "Format error (ptag bit not set)";
- CALLBACK(&pinfo->cbinfo, OPS_PARSER_ERROR, &pkt);
- return 0;
- }
- pkt.u.ptag.new_format = !!(*ptag & OPS_PTAG_NEW_FORMAT);
- if (pkt.u.ptag.new_format) {
- pkt.u.ptag.type =
- *ptag & OPS_PTAG_NF_CONTENT_TAG_MASK;
- pkt.u.ptag.length_type = 0;
- if (!read_new_length(&pkt.u.ptag.length, pinfo)) {
- return 0;
- }
- } else {
- unsigned rb;
-
- rb = 0;
- pkt.u.ptag.type = ((unsigned)*ptag &
- OPS_PTAG_OF_CONTENT_TAG_MASK)
- >> OPS_PTAG_OF_CONTENT_TAG_SHIFT;
- pkt.u.ptag.length_type =
- *ptag & OPS_PTAG_OF_LENGTH_TYPE_MASK;
- switch (pkt.u.ptag.length_type) {
- case OPS_PTAG_OLD_LEN_1:
- rb = _read_scalar(&pkt.u.ptag.length, 1, pinfo);
- break;
-
- case OPS_PTAG_OLD_LEN_2:
- rb = _read_scalar(&pkt.u.ptag.length, 2, pinfo);
- break;
-
- case OPS_PTAG_OLD_LEN_4:
- rb = _read_scalar(&pkt.u.ptag.length, 4, pinfo);
- break;
-
- case OPS_PTAG_OLD_LEN_INDETERMINATE:
- pkt.u.ptag.length = 0;
- indeterminate = 1;
- rb = 1;
- break;
- }
- if (!rb) {
- return 0;
- }
- }
-
- CALLBACK(&pinfo->cbinfo, OPS_PARSER_PTAG, &pkt);
-
- __ops_init_subregion(®ion, NULL);
- region.length = pkt.u.ptag.length;
- region.indeterminate = indeterminate;
- if (__ops_get_debug_level(__FILE__)) {
- (void) fprintf(stderr, "__ops_parse_packet: type %d\n",
- pkt.u.ptag.type);
- }
- switch (pkt.u.ptag.type) {
- case OPS_PTAG_CT_SIGNATURE:
- ret = parse_sig(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_PUBLIC_KEY:
- case OPS_PTAG_CT_PUBLIC_SUBKEY:
- ret = parse_pubkey(pkt.u.ptag.type, ®ion,
- pinfo);
- break;
-
- case OPS_PTAG_CT_TRUST:
- ret = parse_trust(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_USER_ID:
- ret = parse_userid(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_COMPRESSED:
- ret = parse_compressed(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_ONE_PASS_SIGNATURE:
- ret = parse_one_pass(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_LITERAL_DATA:
- ret = parse_litdata(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_USER_ATTRIBUTE:
- ret = parse_userattr(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_SECRET_KEY:
- ret = parse_seckey(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_SECRET_SUBKEY:
- ret = parse_seckey(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_PK_SESSION_KEY:
- ret = parse_pk_sesskey(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_SE_DATA:
- ret = parse_se_data(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_SE_IP_DATA:
- ret = parse_se_ip_data(®ion, pinfo);
- break;
-
- case OPS_PTAG_CT_MDC:
- ret = parse_mdc(®ion, pinfo);
- break;
-
- default:
- OPS_ERROR_1(&pinfo->errors, OPS_E_P_UNKNOWN_TAG,
- "Unknown content tag 0x%x",
- pkt.u.ptag.type);
- ret = 0;
- }
-
- /* Ensure that the entire packet has been consumed */
-
- if (region.length != region.readc && !region.indeterminate) {
- if (!consume_packet(®ion, pinfo, 0)) {
- ret = -1;
- }
- }
-
- /* also consume it if there's been an error? */
- /* \todo decide what to do about an error on an */
- /* indeterminate packet */
- if (ret == 0) {
- if (!consume_packet(®ion, pinfo, 0)) {
- ret = -1;
- }
- }
- /* set pktlen */
-
- *pktlen = pinfo->readinfo.alength;
-
- /* do callback on entire packet, if desired and there was no error */
-
- if (ret > 0 && pinfo->readinfo.accumulate) {
- pkt.u.packet.length = pinfo->readinfo.alength;
- pkt.u.packet.raw = pinfo->readinfo.accumulated;
- pinfo->readinfo.accumulated = NULL;
- pinfo->readinfo.asize = 0;
- CALLBACK(&pinfo->cbinfo, OPS_PARSER_PACKET_END, &pkt);
- }
- pinfo->readinfo.alength = 0;
-
- return (ret < 0) ? -1 : (ret) ? 1 : 0;
-}
-#endif
-
/**
\ingroup Core_ReadPackets
\brief Read a Symmetrically Encrypted packet
@@ -3646,9 +3470,9 @@
*/
void
-__ops_set_callback(__ops_parseinfo_t *pinfo, __ops_parse_cb_t *cb, void *arg)
+__ops_set_callback(__ops_parseinfo_t *pinfo, __ops_cbfunc_t *cb, void *arg)
{
- pinfo->cbinfo.cb = cb;
+ pinfo->cbinfo.cbfunc = cb;
pinfo->cbinfo.arg = arg;
pinfo->cbinfo.errors = &pinfo->errors;
}
@@ -3659,7 +3483,7 @@
\sa __ops_set_callback()
*/
void
-__ops_parse_cb_push(__ops_parseinfo_t *pinfo, __ops_parse_cb_t *cb, void *arg)
+__ops_parse_cb_push(__ops_parseinfo_t *pinfo, __ops_cbfunc_t *cb, void *arg)
{
__ops_callback_data_t *cbinfo = calloc(1, sizeof(*cbinfo));
@@ -3694,10 +3518,9 @@
\return Return value from callback, if present; else OPS_FINISHED
*/
__ops_parse_cb_return_t
-__ops_parse_cb(const __ops_packet_t *pkt,
- __ops_callback_data_t *cbinfo)
+__ops_parse_cb(const __ops_packet_t *pkt, __ops_callback_data_t *cbinfo)
{
- return (cbinfo->cb) ? cbinfo->cb(pkt, cbinfo) : OPS_FINISHED;
+ return (cbinfo->cbfunc) ? cbinfo->cbfunc(pkt, cbinfo) : OPS_FINISHED;
}
/**
Index: src/crypto/external/bsd/netpgp/dist/src/lib/validate.c
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.10 src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.11
--- src/crypto/external/bsd/netpgp/dist/src/lib/validate.c:1.10 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/validate.c Mon May 18 03:55:42 2009
@@ -54,7 +54,7 @@
#if defined(__NetBSD__)
__COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved.");
-__RCSID("$NetBSD: validate.c,v 1.10 2009/05/16 06:30:38 agc Exp $");
+__RCSID("$NetBSD: validate.c,v 1.11 2009/05/18 03:55:42 agc Exp $");
#endif
#include <sys/types.h>
@@ -348,8 +348,8 @@
break;
case OPS_PARSER_CMD_GET_SK_PASSPHRASE:
- if (key->cb_get_passphrase) {
- return key->cb_get_passphrase(pkt, cbinfo);
+ if (key->getpassphrase) {
+ return key->getpassphrase(pkt, cbinfo);
}
break;
@@ -360,6 +360,32 @@
return OPS_RELEASE_MEMORY;
}
+static unsigned char *
+readfile(const char *f, size_t *len)
+{
+ unsigned char *buf;
+ struct stat st;
+ FILE *fp;
+ int cc;
+ int n;
+
+ if ((fp = fopen(f, "r")) == NULL) {
+ (void) fprintf(stderr,
+ "readfile: can't open \"%s\" for reading\n", f);
+ return NULL;
+ }
+ (void) fstat(fileno(fp), &st);
+ *len = (size_t)st.st_size;
+ if ((buf = calloc(1, *len)) != NULL) {
+ for (n = 0 ;
+ (cc = read(fileno(fp), &buf[n], *len - n)) > 0 ;
+ n += cc) {
+ }
+ }
+ (void) fclose(fp);
+ return buf;
+}
+
__ops_parse_cb_return_t
validate_data_cb(const __ops_packet_t *pkt, __ops_callback_data_t *cbinfo)
{
@@ -437,8 +463,26 @@
switch (content->sig.info.type) {
case OPS_SIG_BINARY:
case OPS_SIG_TEXT:
- valid = check_binary_sig(
- __ops_mem_len(data->mem),
+ if (__ops_mem_len(data->mem) == 0 &&
+ data->detachname) {
+ /* check we have seen some data */
+ /* if not, need to read from detached name */
+ unsigned char *detached;
+ size_t len = 0;
+
+ printf(
+ "netpgp: assuming signed data in \"%s\"\n",
+ data->detachname);
+ detached = readfile(data->detachname, &len);
+ if (detached != NULL) {
+ data->mem = __ops_memory_new();
+ __ops_memory_init(data->mem, len);
+ __ops_memory_add(data->mem, detached,
+ len);
+ (void) free(detached);
+ }
+ }
+ valid = check_binary_sig(__ops_mem_len(data->mem),
__ops_mem_data(data->mem),
&content->sig,
__ops_get_pubkey(signer));
@@ -476,26 +520,6 @@
break;
case OPS_PARSER_PACKET_END:
-#if 0
- /* check we have seen some data */
- /* if not, need to read from synthetic literal data */
- if (data->detachname) {
- unsigned char *detached;
- size_t len = 0;
-
- printf("Reading detached sig from %s\n",
- data->detachname);
- data->data.litdata_body = content->litdata_body;
- data->use = LITERAL_DATA;
- detached = readfile(data->detachname, &len);
- if (detached != NULL) {
- __ops_memory_add(data->mem, detached, len);
- (void) free(detached);
- pkt->tag = OPS_PTAG_CT_LITERAL_DATA_BODY;
- return OPS_KEEP_MEMORY;
- }
- }
-#endif
break;
default:
@@ -559,7 +583,7 @@
(void) memset(&keysigs, 0x0, sizeof(keysigs));
keysigs.result = result;
- keysigs.cb_get_passphrase = cb_get_passphrase;
+ keysigs.getpassphrase = cb_get_passphrase;
pinfo = __ops_parseinfo_new();
/* __ops_parse_options(&opt,OPS_PTAG_CT_SIGNATURE,OPS_PARSE_PARSED); */
@@ -679,10 +703,9 @@
cc = snprintf(origfile, sizeof(origfile), "%s", infile);
if (strcmp(&origfile[cc - 4], ".sig") == 0) {
origfile[cc - 4] = 0x0;
- if (stat(origfile, &st) == 0) {
- if (st.st_size > sigsize - SIG_OVERHEAD) {
- detachname = strdup(origfile);
- }
+ if (stat(origfile, &st) == 0 &&
+ st.st_size > sigsize - SIG_OVERHEAD) {
+ detachname = strdup(origfile);
}
}
@@ -694,9 +717,7 @@
return 0;
}
- if (detachname) {
- validation.detachname = strdup(detachname);
- }
+ validation.detachname = detachname;
/* setup output filename */
filename = NULL;
Index: src/crypto/external/bsd/netpgp/dist/src/lib/validate.h
diff -u src/crypto/external/bsd/netpgp/dist/src/lib/validate.h:1.7 src/crypto/external/bsd/netpgp/dist/src/lib/validate.h:1.8
--- src/crypto/external/bsd/netpgp/dist/src/lib/validate.h:1.7 Sat May 16 06:30:38 2009
+++ src/crypto/external/bsd/netpgp/dist/src/lib/validate.h Mon May 18 03:55:42 2009
@@ -70,7 +70,7 @@
const __ops_keyring_t *keyring;
validate_reader_t *reader;
__ops_validation_t *result;
- __ops_parse_cb_return_t(*cb_get_passphrase) (const __ops_packet_t *,
+ __ops_parse_cb_return_t(*getpassphrase) (const __ops_packet_t *,
__ops_callback_data_t *);
} validate_key_cb_t;