diff options
Diffstat (limited to 'smcc/src/main/java/at/gv/egiz/smcc/ccid/ReaderFactory.java')
-rw-r--r-- | smcc/src/main/java/at/gv/egiz/smcc/ccid/ReaderFactory.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/smcc/src/main/java/at/gv/egiz/smcc/ccid/ReaderFactory.java b/smcc/src/main/java/at/gv/egiz/smcc/ccid/ReaderFactory.java index 07c16c3e..1e3bdce2 100644 --- a/smcc/src/main/java/at/gv/egiz/smcc/ccid/ReaderFactory.java +++ b/smcc/src/main/java/at/gv/egiz/smcc/ccid/ReaderFactory.java @@ -27,10 +27,18 @@ import javax.smartcardio.CardTerminal; public class ReaderFactory { public static CCID getReader(Card icc, CardTerminal ct) { - if ("Gemplus GemPC Pinpad 00 00".equals(ct.getName())) { - return new GemplusGemPCPinpad(icc, ct); - } else if ("OmniKey CardMan 3621 00 00".equals(ct.getName())) { - return new OMNIKEYCardMan3621(icc, ct); + String name = ct.getName(); + if (name != null) { + name = name.toLowerCase(); + if(name.startsWith("gemplus gempc pinpad")) { + return new GemplusGemPCPinpad(icc, ct); + } else if (name.startsWith("omnikey cardman 3621")) { + return new OMNIKEYCardMan3621(icc, ct); + } else if (name.startsWith("scm microsystems inc. sprx32 usb smart card reader")) { + return new SCMMicrosystemsSPRx32(icc, ct); + } else if (name.startsWith("cherry smartboard xx44")) { + return new CherrySmartBoardXX44(icc, ct); + } } return new DefaultReader(icc, ct); } |