mirror of
git://git.gnupg.org/gnupg.git
synced 2025-04-17 15:44:34 +02:00
* apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
(get_ccid_error_string): New. Not very useful messages, though.
This commit is contained in:
parent
3344618b2e
commit
c8fb3836fb
@ -1,5 +1,13 @@
|
|||||||
|
2003-10-30 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
|
||||||
|
(get_ccid_error_string): New. Not very useful messages, though.
|
||||||
|
|
||||||
2003-10-25 Werner Koch <wk@gnupg.org>
|
2003-10-25 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* ccid-driver.c (ccid_open_reader): Return an error if no USB
|
||||||
|
devices are found.
|
||||||
|
|
||||||
* command.c (cmd_genkey, cmd_passwd): Fixed faulty use of
|
* command.c (cmd_genkey, cmd_passwd): Fixed faulty use of
|
||||||
!spacep().
|
!spacep().
|
||||||
|
|
||||||
|
17
scd/apdu.c
17
scd/apdu.c
@ -363,7 +363,7 @@ open_ct_reader (int port)
|
|||||||
static int
|
static int
|
||||||
close_ct_reader (int slot)
|
close_ct_reader (int slot)
|
||||||
{
|
{
|
||||||
/* FIXME: Implement. */
|
CT_close (slot);
|
||||||
reader_table[slot].used = 0;
|
reader_table[slot].used = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -594,7 +594,7 @@ pcsc_send_apdu (int slot, unsigned char *apdu, size_t apdulen,
|
|||||||
static int
|
static int
|
||||||
close_pcsc_reader (int slot)
|
close_pcsc_reader (int slot)
|
||||||
{
|
{
|
||||||
/* FIXME: Implement. */
|
pcsc_release_context (reader_table[slot].pcsc.context);
|
||||||
reader_table[slot].used = 0;
|
reader_table[slot].used = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -608,6 +608,15 @@ close_pcsc_reader (int slot)
|
|||||||
Internal CCID driver interface.
|
Internal CCID driver interface.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static const char *
|
||||||
|
get_ccid_error_string (long err)
|
||||||
|
{
|
||||||
|
if (!err)
|
||||||
|
return "okay";
|
||||||
|
else
|
||||||
|
return "unknown CCID error";
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
open_ccid_reader (void)
|
open_ccid_reader (void)
|
||||||
{
|
{
|
||||||
@ -973,7 +982,7 @@ apdu_open_reader (const char *portstr)
|
|||||||
pcsc_disconnect = dlsym (handle, "SCardDisconnect");
|
pcsc_disconnect = dlsym (handle, "SCardDisconnect");
|
||||||
pcsc_status = dlsym (handle, "SCardStatus");
|
pcsc_status = dlsym (handle, "SCardStatus");
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (pcsc_status)
|
if (!pcsc_status)
|
||||||
pcsc_status = dlsym (handle, "SCardStatusA");
|
pcsc_status = dlsym (handle, "SCardStatusA");
|
||||||
#endif
|
#endif
|
||||||
pcsc_begin_transaction = dlsym (handle, "SCardBeginTransaction");
|
pcsc_begin_transaction = dlsym (handle, "SCardBeginTransaction");
|
||||||
@ -1062,7 +1071,7 @@ error_string (int slot, long rc)
|
|||||||
return ct_error_string (rc);
|
return ct_error_string (rc);
|
||||||
#ifdef HAVE_LIBUSB
|
#ifdef HAVE_LIBUSB
|
||||||
else if (reader_table[slot].is_ccid)
|
else if (reader_table[slot].is_ccid)
|
||||||
return "no CCID driver error strings yet";
|
return get_ccid_error_string (rc);
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_OPENSC
|
#ifdef HAVE_OPENSC
|
||||||
else if (reader_table[slot].is_osc)
|
else if (reader_table[slot].is_osc)
|
||||||
|
@ -494,6 +494,9 @@ ccid_open_reader (ccid_driver_t *handle, int readerno)
|
|||||||
shallow copy of the list created internally by usb_init ? */
|
shallow copy of the list created internally by usb_init ? */
|
||||||
usb_free_match (match);
|
usb_free_match (match);
|
||||||
|
|
||||||
|
if (!rc && !*handle)
|
||||||
|
rc = -1; /* In case we didn't enter the while lool at all. */
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user