scd: Use vendor and product id macros also in apdu.c

* scd/ccid-driver.c: Move vendor and product ids to ...
* scd/ccid-driver.h: here.
* scd/apdu.c (CCID_DRIVER_INCLUDE_USB_IDS): Define to include ids.
(pcsc_vendor_specific_init): Use vendor and product id macros.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2013-08-30 09:28:17 +02:00
parent 95a3bffeaf
commit fc31d730d8
3 changed files with 33 additions and 25 deletions

View File

@ -62,6 +62,7 @@
#include "iso7816.h" #include "iso7816.h"
#include "apdu.h" #include "apdu.h"
#define CCID_DRIVER_INCLUDE_USB_IDS 1
#include "ccid-driver.h" #include "ccid-driver.h"
/* Due to conflicting use of threading libraries we usually can't link /* Due to conflicting use of threading libraries we usually can't link
@ -1797,7 +1798,7 @@ pcsc_vendor_specific_init (int slot)
p += l; p += l;
} }
if (vendor == 0x0982 && product == 0x0008) /* Vega Alpha */ if (vendor == VENDOR_VEGA && product == VEGA_ALPHA)
{ {
/* /*
* Please read the comment of ccid_vendor_specific_init in * Please read the comment of ccid_vendor_specific_init in
@ -1809,7 +1810,7 @@ pcsc_vendor_specific_init (int slot)
if (sw) if (sw)
return SW_NOT_SUPPORTED; return SW_NOT_SUPPORTED;
} }
else if (vendor == 0x04e6 && product == 0xe003) /* SCM SPR532 */ else if (vendor == VENDOR_SCM && product == SCM_SPR532) /* SCM SPR532 */
{ {
reader_table[slot].is_spr532 = 1; reader_table[slot].is_spr532 = 1;
reader_table[slot].pinpad_varlen_supported = 1; reader_table[slot].pinpad_varlen_supported = 1;

View File

@ -91,6 +91,7 @@
#include "scdaemon.h" #include "scdaemon.h"
#include "iso7816.h" #include "iso7816.h"
#define CCID_DRIVER_INCLUDE_USB_IDS 1
#include "ccid-driver.h" #include "ccid-driver.h"
#define DRVNAME "ccid-driver: " #define DRVNAME "ccid-driver: "
@ -203,29 +204,6 @@ enum {
#define CCID_ERROR_CODE(buf) (((unsigned char *)(buf))[8]) #define CCID_ERROR_CODE(buf) (((unsigned char *)(buf))[8])
/* We need to know the vendor to do some hacks. */
enum {
VENDOR_CHERRY = 0x046a,
VENDOR_SCM = 0x04e6,
VENDOR_OMNIKEY= 0x076b,
VENDOR_GEMPC = 0x08e6,
VENDOR_VEGA = 0x0982,
VENDOR_KAAN = 0x0d46,
VENDOR_FSIJ = 0x234b,
VENDOR_VASCO = 0x1a44
};
/* Some product ids. */
#define SCM_SCR331 0xe001
#define SCM_SCR331DI 0x5111
#define SCM_SCR335 0x5115
#define SCM_SCR3320 0x5117
#define SCM_SPR532 0xe003
#define CHERRY_ST2000 0x003e
#define VASCO_920 0x0920
#define GEMPC_PINPAD 0x3478
#define VEGA_ALPHA 0x0008
/* A list and a table with special transport descriptions. */ /* A list and a table with special transport descriptions. */
enum { enum {
TRANSPORT_USB = 0, /* Standard USB transport. */ TRANSPORT_USB = 0, /* Standard USB transport. */

View File

@ -56,6 +56,35 @@
#ifndef CCID_DRIVER_H #ifndef CCID_DRIVER_H
#define CCID_DRIVER_H #define CCID_DRIVER_H
#ifdef CCID_DRIVER_INCLUDE_USB_IDS
/* We need to know the vendor to do some hacks. */
enum {
VENDOR_CHERRY = 0x046a,
VENDOR_SCM = 0x04e6,
VENDOR_OMNIKEY= 0x076b,
VENDOR_GEMPC = 0x08e6,
VENDOR_VEGA = 0x0982,
VENDOR_KAAN = 0x0d46,
VENDOR_FSIJ = 0x234b,
VENDOR_VASCO = 0x1a44
};
/* Some product ids. */
#define SCM_SCR331 0xe001
#define SCM_SCR331DI 0x5111
#define SCM_SCR335 0x5115
#define SCM_SCR3320 0x5117
#define SCM_SPR532 0xe003 /* Also used succeeding model SPR332. */
#define CHERRY_ST2000 0x003e
#define VASCO_920 0x0920
#define GEMPC_PINPAD 0x3478
#define VEGA_ALPHA 0x0008
#endif /*CCID_DRIVER_INCLUDE_USB_IDS*/
/* The CID driver returns the same error codes as the status words /* The CID driver returns the same error codes as the status words
used by GnuPG's apdu.h. For ease of maintenance they should always used by GnuPG's apdu.h. For ease of maintenance they should always
match. */ match. */