* configure.ac: Required newer versions of some libraries.

* misc.c (openpgp_pk_algo_usage): Allow AUTH where SIGN is allowed.

* keygen.c (ask_passphrase): No need to allocated S2K in secure
memory.

* scdaemon.c (main): --pcsc-driver again defaults to pcsclite.
David Corcoran was so kind to remove the GPL incompatible
advertisng clause from pcsclite.
* apdu.c (apdu_open_reader): Actually make pcsc-driver option work.
This commit is contained in:
Werner Koch 2003-09-06 13:23:48 +00:00
parent 25430119e8
commit be034cf34c
10 changed files with 58 additions and 38 deletions

View File

@ -1,3 +1,9 @@
2003-09-06 Werner Koch <wk@gnupg.org>
Released 1.9.1.
* configure.ac: Required newer versions of some libraries.
2003-09-02 Werner Koch <wk@gnupg.org>
* configure.ac (HAVE_LIBUSB): Added a simple test for libusb.

9
NEWS
View File

@ -1,10 +1,15 @@
Noteworthy changes in version 1.9.1 (unreleased)
Noteworthy changes in version 1.9.1 (2003-09-06)
------------------------------------------------
* Support for OpenSC is back. scdaemon support a --disable-opensc to
* Support for OpenSC is back. scdaemon supports a --disable-opensc to
disable OpenSC use at runtime, so that PC/SC or ct-API can still be
used directly.
* Rudimentary support for the SCR335 smartcard reader using an
internal driver. Requires current libusb from CVS.
* Bug fixes.
Noteworthy changes in version 1.9.0 (2003-08-05)
------------------------------------------------

View File

@ -22,16 +22,16 @@
AC_PREREQ(2.52)
# Version number: Remember to change it immediately *after* a release.
# Add a "-cvs" prefix for non-released code.
AC_INIT(gnupg, 1.9.1-cvs, gnupg-devel@gnupg.org)
AC_INIT(gnupg, 1.9.1, gnupg-devel@gnupg.org)
# Set development_version to yes if the minor number is odd or you
# feel that the default check for a development version is not
# sufficient.
development_version=yes
NEED_GPG_ERROR_VERSION=0.2
NEED_LIBGCRYPT_VERSION=1.1.42
NEED_GPG_ERROR_VERSION=0.4
NEED_LIBGCRYPT_VERSION=1.1.43
NEED_LIBASSUAN_VERSION=0.6.0
NEED_KSBA_VERSION=0.4.6
NEED_OPENSC_VERSION=0.7.0
NEED_OPENSC_VERSION=0.8.0
PACKAGE=$PACKAGE_NAME
@ -378,10 +378,10 @@ AM_PATH_KSBA("$NEED_KSBA_VERSION",have_ksba=yes,have_ksba=no)
#
# libusb allows us to use the integrated CCID smartcard reader driver.
#
# Note, that we need the CVS version. FIXME: libusb should have a
# regular check as the other libraries do.
#
AC_CHECK_LIB(usb, usb_find_device,
[ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
AC_DEFINE(HAVE_LIBUSB,1,

View File

@ -1,3 +1,10 @@
2003-09-06 Werner Koch <wk@gnupg.org>
* misc.c (openpgp_pk_algo_usage): Allow AUTH where SIGN is allowed.
* keygen.c (ask_passphrase): No need to allocated S2K in secure
memory.
2003-09-04 Werner Koch <wk@gnupg.org>
* keygen.c (do_add_key_flags, parse_parameter_usage)

View File

@ -1629,7 +1629,7 @@ ask_passphrase( STRING2KEY **ret_s2k )
tty_printf(_("You need a Passphrase to protect your secret key.\n\n") );
s2k = xmalloc_secure ( sizeof *s2k );
s2k = xmalloc ( sizeof *s2k );
for(;;) {
s2k->mode = opt.s2k_mode;
s2k->hash_algo = opt.s2k_digest_algo;

View File

@ -260,7 +260,7 @@ openpgp_pk_algo_usage ( int algo )
/* they are hardwired in gpg 1.0 */
switch ( algo ) {
case PUBKEY_ALGO_RSA:
use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_ENC;
use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_ENC | PUBKEY_USAGE_AUTH;
break;
case PUBKEY_ALGO_RSA_E:
use = PUBKEY_USAGE_ENC;
@ -272,10 +272,10 @@ openpgp_pk_algo_usage ( int algo )
use = PUBKEY_USAGE_ENC;
break;
case PUBKEY_ALGO_DSA:
use = PUBKEY_USAGE_SIG;
use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_AUTH;
break;
case PUBKEY_ALGO_ELGAMAL:
use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_ENC;
use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_ENC | PUBKEY_USAGE_AUTH;
break;
default:
break;

View File

@ -1,3 +1,10 @@
2003-09-06 Werner Koch <wk@gnupg.org>
* scdaemon.c (main): --pcsc-driver again defaults to pcsclite.
David Corcoran was so kind to remove the GPL incompatible
advertisng clause from pcsclite.
* apdu.c (apdu_open_reader): Actually make pcsc-driver option work.
2003-09-05 Werner Koch <wk@gnupg.org>
* ccid-driver.c: More work, data can now actually be retrieved.

View File

@ -823,8 +823,8 @@ osc_send_apdu (int slot, unsigned char *apdu, size_t apdulen,
/* Open the reader and return an internal slot number or -1 on
error. If PORTSTR is NULL we default to a suitable port (for ctAPI:
the first USB reader. For PC/SC the first listed reader). IF
OpenSC support is cmpiled in, we first try to use OpenSC. */
the first USB reader. For PC/SC the first listed reader). If
OpenSC support is compiled in, we first try to use OpenSC. */
int
apdu_open_reader (const char *portstr)
{
@ -839,7 +839,7 @@ apdu_open_reader (const char *portstr)
if (slot != -1)
return slot; /* got one */
}
#endif
#endif /* HAVE_LIBUSB */
#ifdef HAVE_OPENSC
if (!opt.disable_opensc)
@ -886,17 +886,11 @@ apdu_open_reader (const char *portstr)
{
void *handle;
if (!opt.pcsc_driver || !*opt.pcsc_driver)
{
log_error ("no PC/SC driver has been specified\n");
return -1;
}
handle = dlopen ("libpcsclite.so", RTLD_LAZY);
handle = dlopen (opt.pcsc_driver, RTLD_LAZY);
if (!handle)
{
log_error ("apdu_open_reader: failed to open driver: %s",
dlerror ());
log_error ("apdu_open_reader: failed to open driver `%s': %s",
opt.pcsc_driver, dlerror ());
return -1;
}

View File

@ -286,7 +286,9 @@ bulk_in (ccid_driver_t handle, unsigned char *buffer, size_t length,
rc = usb_bulk_read (handle->idev,
0x82,
buffer, length,
1000 /* ms timeout */ );
10000 /* ms timeout */ );
/* Fixme: instead of using a 10 second timeout we should better
handle the timeout here and retry if appropriate. */
if (rc < 0)
{
DEBUGOUT_1 ("usb_bulk_read error: %s\n", strerror (errno));
@ -556,10 +558,10 @@ ccid_transceive (ccid_driver_t handle,
DEBUGOUT_CONT_1 (" %02X", msg[i]);
DEBUGOUT_LF ();
fprintf (stderr, "T1: put %c-block seq=%d\n",
((msg[11] & 0xc0) == 0x80)? 'R' :
(msg[11] & 0x80)? 'S' : 'I',
((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40)));
/* fprintf (stderr, "T1: put %c-block seq=%d\n", */
/* ((msg[11] & 0xc0) == 0x80)? 'R' : */
/* (msg[11] & 0x80)? 'S' : 'I', */
/* ((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40))); */
rc = bulk_out (handle, msg, msglen);
if (rc)
@ -576,16 +578,16 @@ ccid_transceive (ccid_driver_t handle,
if (tpdulen < 4)
{
DEBUGOUT ("cannot yet handle short block!!\n");
DEBUGOUT ("cannot yet handle short blocks!\n");
return -1;
}
fprintf (stderr, "T1: got %c-block seq=%d err=%d\n",
((msg[11] & 0xc0) == 0x80)? 'R' :
(msg[11] & 0x80)? 'S' : 'I',
((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40)),
((msg[11] & 0xc0) == 0x80)? (msg[11] & 0x0f) : 0
);
/* fprintf (stderr, "T1: got %c-block seq=%d err=%d\n", */
/* ((msg[11] & 0xc0) == 0x80)? 'R' : */
/* (msg[11] & 0x80)? 'S' : 'I', */
/* ((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40)), */
/* ((msg[11] & 0xc0) == 0x80)? (msg[11] & 0x0f) : 0 */
/* ); */
if (!(tpdu[1] & 0x80))
{ /* This is an I-block. */

View File

@ -277,8 +277,7 @@ main (int argc, char **argv )
may_coredump = disable_core_dumps ();
/* Set default options. */
opt.pcsc_driver = NULL; /* We can't use libpcsclite due to license
conflicts. */
opt.pcsc_driver = "libpcsclite.so";
shell = getenv ("SHELL");