gnupg2/gnupg-2.2.27-shared.patch
DistroBaker 19aa921fd8 Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/gnupg2.git#240056b3213666bb7dcee6f3732ed98cd40484d4
2021-04-01 07:50:20 +00:00

76 lines
2.5 KiB
Diff

# Add the option "shared-access" to scdaemon.
# If set, pcsc_connect is called with PCSC_SHARE_SHARED instead of PCSC_SHARE_EXCLUSIVE.
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -816,7 +816,7 @@ connect_pcsc_card (int slot)
err = pcsc_connect (reader_table[slot].pcsc.context,
reader_table[slot].rdrname,
- PCSC_SHARE_EXCLUSIVE,
+ opt.shared_access ? PCSC_SHARE_SHARED : PCSC_SHARE_EXCLUSIVE,
PCSC_PROTOCOL_T0|PCSC_PROTOCOL_T1,
&reader_table[slot].pcsc.card,
&reader_table[slot].pcsc.protocol);
--- a/scd/scdaemon.c
+++ b/scd/scdaemon.c
@@ -99,6 +99,7 @@ enum cmd_and_opt_values
oDenyAdmin,
oDisableApplication,
oEnablePinpadVarlen,
+ oSharedAccess,
oListenBacklog,
oNoop
@@ -164,6 +165,8 @@ static ARGPARSE_OPTS opts[] = {
/* Stubs for options which are implemented by 2.3 or later. */
ARGPARSE_s_s (oNoop, "application-priority", "@"),
+ ARGPARSE_s_n (oSharedAccess, "shared-access", N_("use PCSC_SHARE_SHARED for pcsc_connect")),
+
ARGPARSE_end ()
};
@@ -629,6 +632,8 @@ main (int argc, char **argv )
case oNoop: break;
+ case oSharedAccess: opt.shared_access = 1; break;
+
default:
if (configname)
pargs.err = ARGPARSE_PRINT_WARNING;
@@ -727,6 +732,7 @@ main (int argc, char **argv )
es_printf ("disable-pinpad:%lu:\n", GC_OPT_FLAG_NONE );
es_printf ("card-timeout:%lu:%d:\n", GC_OPT_FLAG_DEFAULT, 0);
es_printf ("enable-pinpad-varlen:%lu:\n", GC_OPT_FLAG_NONE );
+ es_printf ("shared-access:%lu:\n", GC_OPT_FLAG_NONE );
scd_exit (0);
}
--- a/scd/scdaemon.h
+++ b/scd/scdaemon.h
@@ -62,6 +62,8 @@ struct
strlist_t disabled_applications; /* Card applications we do not
want to use. */
unsigned long card_timeout; /* Disconnect after N seconds of inactivity. */
+
+ int shared_access;
} opt;
--- a/tools/gpgconf-comp.c
+++ b/tools/gpgconf-comp.c
@@ -653,6 +653,9 @@ static gc_option_t gc_options_scdaemon[] =
{ "card-timeout", GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME, GC_LEVEL_BASIC,
"gnupg", "|N|disconnect the card after N seconds of inactivity",
GC_ARG_TYPE_UINT32, GC_BACKEND_SCDAEMON },
+ { "shared-access", GC_OPT_FLAG_NONE|GC_OPT_FLAG_RUNTIME, GC_LEVEL_BASIC,
+ "gnupg", "use PCSC_SHARE_SHARED for pcsc_connect",
+ GC_ARG_TYPE_NONE, GC_BACKEND_SCDAEMON },
{ "Debug",
GC_OPT_FLAG_GROUP, GC_LEVEL_ADVANCED,