mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
scd: New option --pcsc-shared.
* scd/scdaemon.h (opt): Add field opcsc_shared. * scd/scdaemon.c (opcscShared): New. (opts): Add "--pcsc-shared". (main): Set flag. * scd/apdu.c (connect_pcsc_card): Use it. (pcsc_get_status): Take flag in account. * scd/app-openpgp.c (cache_pin): Bypass in shared mode. (verify_chv2: Do not auto verify chv1 in shared mode. * scd/app-piv.c (cache_pin): By pass caceh in shared mode. -- This option should in general not be used. The patch tries to limit bad effects but using shared mode is somewhat dangerous depending on the other PC/SC users.
This commit is contained in:
parent
95156ef9bf
commit
5732e7a8e9
6 changed files with 23 additions and 4 deletions
|
@ -732,7 +732,8 @@ pcsc_get_status (int slot, unsigned int *status, int on_wire)
|
|||
mode. */
|
||||
if ( (*status & (APDU_CARD_PRESENT|APDU_CARD_ACTIVE))
|
||||
== (APDU_CARD_PRESENT|APDU_CARD_ACTIVE)
|
||||
&& !(reader_table[slot].pcsc.current_state & PCSC_STATE_INUSE) )
|
||||
&& (opt.pcsc_shared
|
||||
|| !(reader_table[slot].pcsc.current_state & PCSC_STATE_INUSE)))
|
||||
*status |= APDU_CARD_USABLE;
|
||||
#else
|
||||
/* Some winscard drivers may set EXCLUSIVE and INUSE at the same
|
||||
|
@ -856,7 +857,7 @@ connect_pcsc_card (int slot)
|
|||
|
||||
err = pcsc_connect (pcsc.context,
|
||||
reader_table[slot].rdrname,
|
||||
PCSC_SHARE_EXCLUSIVE,
|
||||
opt.pcsc_shared? PCSC_SHARE_SHARED:PCSC_SHARE_EXCLUSIVE,
|
||||
PCSC_PROTOCOL_T0|PCSC_PROTOCOL_T1,
|
||||
&reader_table[slot].pcsc.card,
|
||||
&reader_table[slot].pcsc.protocol);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue