* 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> 2003-09-02 Werner Koch <wk@gnupg.org>
* configure.ac (HAVE_LIBUSB): Added a simple test for libusb. * 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 disable OpenSC use at runtime, so that PC/SC or ct-API can still be
used directly. 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) Noteworthy changes in version 1.9.0 (2003-08-05)
------------------------------------------------ ------------------------------------------------

View File

@ -22,16 +22,16 @@
AC_PREREQ(2.52) AC_PREREQ(2.52)
# Version number: Remember to change it immediately *after* a release. # Version number: Remember to change it immediately *after* a release.
# Add a "-cvs" prefix for non-released code. # 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 # Set development_version to yes if the minor number is odd or you
# feel that the default check for a development version is not # feel that the default check for a development version is not
# sufficient. # sufficient.
development_version=yes development_version=yes
NEED_GPG_ERROR_VERSION=0.2 NEED_GPG_ERROR_VERSION=0.4
NEED_LIBGCRYPT_VERSION=1.1.42 NEED_LIBGCRYPT_VERSION=1.1.43
NEED_LIBASSUAN_VERSION=0.6.0 NEED_LIBASSUAN_VERSION=0.6.0
NEED_KSBA_VERSION=0.4.6 NEED_KSBA_VERSION=0.4.6
NEED_OPENSC_VERSION=0.7.0 NEED_OPENSC_VERSION=0.8.0
PACKAGE=$PACKAGE_NAME 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. # libusb allows us to use the integrated CCID smartcard reader driver.
#
# Note, that we need the CVS version. FIXME: libusb should have a # Note, that we need the CVS version. FIXME: libusb should have a
# regular check as the other libraries do. # regular check as the other libraries do.
#
AC_CHECK_LIB(usb, usb_find_device, AC_CHECK_LIB(usb, usb_find_device,
[ LIBUSB_LIBS="$LIBUSB_LIBS -lusb" [ LIBUSB_LIBS="$LIBUSB_LIBS -lusb"
AC_DEFINE(HAVE_LIBUSB,1, 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> 2003-09-04 Werner Koch <wk@gnupg.org>
* keygen.c (do_add_key_flags, parse_parameter_usage) * 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") ); tty_printf(_("You need a Passphrase to protect your secret key.\n\n") );
s2k = xmalloc_secure ( sizeof *s2k ); s2k = xmalloc ( sizeof *s2k );
for(;;) { for(;;) {
s2k->mode = opt.s2k_mode; s2k->mode = opt.s2k_mode;
s2k->hash_algo = opt.s2k_digest_algo; 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 */ /* they are hardwired in gpg 1.0 */
switch ( algo ) { switch ( algo ) {
case PUBKEY_ALGO_RSA: case PUBKEY_ALGO_RSA:
use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_ENC; use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_ENC | PUBKEY_USAGE_AUTH;
break; break;
case PUBKEY_ALGO_RSA_E: case PUBKEY_ALGO_RSA_E:
use = PUBKEY_USAGE_ENC; use = PUBKEY_USAGE_ENC;
@ -272,10 +272,10 @@ openpgp_pk_algo_usage ( int algo )
use = PUBKEY_USAGE_ENC; use = PUBKEY_USAGE_ENC;
break; break;
case PUBKEY_ALGO_DSA: case PUBKEY_ALGO_DSA:
use = PUBKEY_USAGE_SIG; use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_AUTH;
break; break;
case PUBKEY_ALGO_ELGAMAL: case PUBKEY_ALGO_ELGAMAL:
use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_ENC; use = PUBKEY_USAGE_SIG | PUBKEY_USAGE_ENC | PUBKEY_USAGE_AUTH;
break; break;
default: default:
break; 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> 2003-09-05 Werner Koch <wk@gnupg.org>
* ccid-driver.c: More work, data can now actually be retrieved. * 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 /* 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: 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 the first USB reader. For PC/SC the first listed reader). If
OpenSC support is cmpiled in, we first try to use OpenSC. */ OpenSC support is compiled in, we first try to use OpenSC. */
int int
apdu_open_reader (const char *portstr) apdu_open_reader (const char *portstr)
{ {
@ -839,7 +839,7 @@ apdu_open_reader (const char *portstr)
if (slot != -1) if (slot != -1)
return slot; /* got one */ return slot; /* got one */
} }
#endif #endif /* HAVE_LIBUSB */
#ifdef HAVE_OPENSC #ifdef HAVE_OPENSC
if (!opt.disable_opensc) if (!opt.disable_opensc)
@ -886,17 +886,11 @@ apdu_open_reader (const char *portstr)
{ {
void *handle; void *handle;
if (!opt.pcsc_driver || !*opt.pcsc_driver) handle = dlopen (opt.pcsc_driver, RTLD_LAZY);
{
log_error ("no PC/SC driver has been specified\n");
return -1;
}
handle = dlopen ("libpcsclite.so", RTLD_LAZY);
if (!handle) if (!handle)
{ {
log_error ("apdu_open_reader: failed to open driver: %s", log_error ("apdu_open_reader: failed to open driver `%s': %s",
dlerror ()); opt.pcsc_driver, dlerror ());
return -1; 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, rc = usb_bulk_read (handle->idev,
0x82, 0x82,
buffer, length, 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) if (rc < 0)
{ {
DEBUGOUT_1 ("usb_bulk_read error: %s\n", strerror (errno)); 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_CONT_1 (" %02X", msg[i]);
DEBUGOUT_LF (); DEBUGOUT_LF ();
fprintf (stderr, "T1: put %c-block seq=%d\n", /* fprintf (stderr, "T1: put %c-block seq=%d\n", */
((msg[11] & 0xc0) == 0x80)? 'R' : /* ((msg[11] & 0xc0) == 0x80)? 'R' : */
(msg[11] & 0x80)? 'S' : 'I', /* (msg[11] & 0x80)? 'S' : 'I', */
((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40))); /* ((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40))); */
rc = bulk_out (handle, msg, msglen); rc = bulk_out (handle, msg, msglen);
if (rc) if (rc)
@ -576,16 +578,16 @@ ccid_transceive (ccid_driver_t handle,
if (tpdulen < 4) if (tpdulen < 4)
{ {
DEBUGOUT ("cannot yet handle short block!!\n"); DEBUGOUT ("cannot yet handle short blocks!\n");
return -1; return -1;
} }
fprintf (stderr, "T1: got %c-block seq=%d err=%d\n", /* fprintf (stderr, "T1: got %c-block seq=%d err=%d\n", */
((msg[11] & 0xc0) == 0x80)? 'R' : /* ((msg[11] & 0xc0) == 0x80)? 'R' : */
(msg[11] & 0x80)? 'S' : 'I', /* (msg[11] & 0x80)? 'S' : 'I', */
((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40)), /* ((msg[11] & 0x80)? !!(msg[11]& 0x10) : !!(msg[11] & 0x40)), */
((msg[11] & 0xc0) == 0x80)? (msg[11] & 0x0f) : 0 /* ((msg[11] & 0xc0) == 0x80)? (msg[11] & 0x0f) : 0 */
); /* ); */
if (!(tpdu[1] & 0x80)) if (!(tpdu[1] & 0x80))
{ /* This is an I-block. */ { /* This is an I-block. */

View File

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