summaryrefslogtreecommitdiffstats
path: root/scd
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2013-08-21 15:44:52 +0200
committerWerner Koch <wk@gnupg.org>2013-08-21 15:45:07 +0200
commit7bde2bf3b0ddb5d3515a44879e1a7ddb581a5c0b (patch)
tree63deab699772dee3b8da4dfdddd07f9449c7eed4 /scd
parentagent: Extend cmd KEYINFO to return data from sshcontrol. (diff)
downloadgnupg2-7bde2bf3b0ddb5d3515a44879e1a7ddb581a5c0b.tar.xz
gnupg2-7bde2bf3b0ddb5d3515a44879e1a7ddb581a5c0b.zip
scd: Improve --enable-pinpad-varlen.
* tools/gpgconf-comp.c (gc_options_scdaemon): Add enable-pinpad-varlen. * scd/apdu.c (check_pcsc_pinpad): Detect SPRx32 reader. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'scd')
-rw-r--r--scd/apdu.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/scd/apdu.c b/scd/apdu.c
index 133058d59..ca45fc18c 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -2002,7 +2002,13 @@ check_pcsc_pinpad (int slot, int command, pininfo_t *pininfo)
pcsc_dword_t len = 256;
int sw;
- (void)pininfo; /* XXX: Identify reader and set pininfo->fixedlen. */
+ /* Hack to identify the SCM SPR532 and SPR332 readers which support
+ variable length PIN input.
+ FIXME: Figure out whether there is a feature attribute for this.
+ Alternatively use the USB ids to detect known readers. */
+ if (reader_table[slot].rdrname
+ && strstr (reader_table[slot].rdrname, "SPRx32"))
+ pininfo->fixedlen = 0;
check_again:
if (command == ISO7816_VERIFY)