diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4021bb8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/ccid-1.4.10.tar.bz2 diff --git a/.pcsc-lite-ccid.metadata b/.pcsc-lite-ccid.metadata new file mode 100644 index 0000000..c331a1f --- /dev/null +++ b/.pcsc-lite-ccid.metadata @@ -0,0 +1 @@ +6056a45c4cf37bdda24d3ed3a840486303037bc8 SOURCES/ccid-1.4.10.tar.bz2 diff --git a/SOURCES/ccid-1.4.10-add-1.4.29-readers.patch b/SOURCES/ccid-1.4.10-add-1.4.29-readers.patch new file mode 100644 index 0000000..34a003a --- /dev/null +++ b/SOURCES/ccid-1.4.10-add-1.4.29-readers.patch @@ -0,0 +1,799 @@ +diff -up ./readers/supported_readers.txt.v1429 ./readers/supported_readers.txt +--- ./readers/supported_readers.txt.v1429 2018-02-15 14:13:53.155301582 -0800 ++++ ./readers/supported_readers.txt 2018-05-21 16:35:32.698189312 -0700 +@@ -1,6 +1,6 @@ + # + # List of readers supported by the CCID driver +-# Generated: 2013-04-16 ++# Generated: 2018-02-20 + # + # DO NOT EDIT BY HAND + +@@ -19,12 +19,15 @@ + + # Alcor Micro + 0x058F:0x9520:Alcor Micro AU9520 +-0x058F:0x9540:Alcor Micro AU9540 ++0x058F:0x9540:Alcor Micro AU9560 + + # Athena + 0x0DC3:0x1004:Athena ASE IIIe + 0x0DC3:0x1102:Athena ASEDrive IIIe KB + ++# BLUTRONICS ++0x1B0E:0x1078:BLUTRONICS BLUDRIVE II CCID ++ + # C3PO + 0x0783:0x0006:C3PO LTC31 v2 + +@@ -46,12 +49,8 @@ + 0x073D:0x0008:Eutron CryptoIdentity CCID + 0x073D:0x0B00:Eutron Digipass 860 + 0x073D:0x0C00:Eutron Card Reader +-0x073D:0x0C00:Eutron SIM Reader + 0x073D:0x0C01:Eutron Smart Pocket + +-# Feitian +-0x096E:0x0807:Feitian ePass2003 +- + # Gemalto + 0x08E6:0x1227:Gemalto PDT + 0x08E6:0x3437:Gemalto PC Twin Reader +@@ -61,18 +60,24 @@ + 0x08E6:0x34C0:Gemalto Ezio Shield + 0x08E6:0x34C3:Gemalto EZIO CB+ + 0x08E6:0x4433:Gemalto Gemplus USB SmartCard Reader 433-Swap +-0x08E6:0x5503:Gemalto Prox Dual USB PC LinkReader +-0x08E6:0x5503:Gemalto Prox Dual USB PC LinkReader +-0x08E6:0x5504:Gemalto Prox SU USB PC LinkReader ++0x08E6:0x5503:Gemalto Prox Dual USB PC Link Reader + 0x08E6:0x5504:Gemalto Prox SU USB PC LinkReader + 0x08E6:0x8000:Gemalto Smart Enterprise Guardian Secure USB Device ++0x08E6:0x8141:Gemalto IDBridge K3000 + + # Giesecke & Devrient GmbH + 0x1059:0x0017:Giesecke & Devrient GmbH StarSign Crypto USB Token ++0x1059:0x0019:Giesecke & Devrient GmbH StarSign CUT S + + # id3 Semiconductors + 0x0B81:0x0200:id3 Semiconductors CL1356T + ++# INGENICO ++0x0F14:0x003B:INGENICO Leo ++ ++# Ingenico ++0x0F14:0x003D:Ingenico WITEO USB Smart Card Reader ++ + # KOBIL + 0x0D46:0x3001:KOBIL KAAN Base + 0x0D46:0x3002:KOBIL KAAN Advanced +@@ -87,7 +92,6 @@ + + # OMNIKEY AG + 0x076B:0x3021:OMNIKEY AG CardMan 3121 +-0x076B:0x3022:OMNIKEY AG CardMan 3121-1 + + # Precise Biometrics + 0x076B:0xA022:Precise Biometrics Sense MC +@@ -112,43 +116,72 @@ + 0x0F14:0x0011:XIRING XI-SIGN USB V2 + 0x0F14:0x0037:XIRING MyLeo + 0x0F14:0x0038:XIRING Leo v2 +-0x076B:0xA022:XIRING Teo + + ########################## + # section: shouldwork + ########################## + ++# Access IS ++0x0DB5:0x0138:Access IS ePassport Reader ++0x0DB5:0x0160:Access IS NFC Smart Module ++0x0DB5:0x0164:Access IS NFC Smart Module ++ + # ACS + 0x072F:0x1204:ACS ACR101 ICC Reader ++0x072F:0x221A:ACS ACR1251 Dual Reader ++0x072F:0x223B:ACS ACR1252 Dual Reader ++0x072F:0x223F:ACS ACR1255U-J1 + 0x072F:0x8201:ACS APG8201 PINhandy 1 + 0x072F:0x8202:ACS APG8201 USB Reader +-0x072F:0x90CC:ACS ACR122U +-0x072F:0x90CC:ACS ACR100 +-0x072F:0x90CC:ACS ACR38 plugin +-0x072F:0x90CC:ACS AET65 + 0x072F:0x90DB:ACS CryptoMate64 ++0x072F:0xB000:ACS ACR3901U ICC Reader ++0x072F:0xB100:ACS ACR39U ICC Reader ++0x072F:0xB106:ACS CryptoMate (T2) ++ ++# AK910 ++0x2021:0x0001:AK910 CKey ++0x2021:0x0011:AK910 CKey ++0x2021:0x0101:AK910 IDONE + + # Akasa +-0x058F:0x9520:Akasa AK-CR-03 + + # Aktiv + 0x0A89:0x0025:Aktiv Rutoken lite + 0x0A89:0x0030:Aktiv Rutoken ECP + 0x0A89:0x0080:Aktiv PINPad Ex + 0x0A89:0x0081:Aktiv PINPad In ++0x0A89:0x0082:Aktiv Rutoken PINPad 2 + + # Aktiv Co., ProgramPark + 0x0A89:0x0060:Aktiv Co., ProgramPark Rutoken Magistra + ++# Aladdin R.D. ++0x24DC:0x0101:Aladdin R.D. JaCarta ++0x24DC:0x0102:Aladdin R.D. JaCarta LT ++0x24DC:0x0201:Aladdin R.D. JCR-770 ++0x24DC:0x0401:Aladdin R.D. JC-WebPass (JC600) ++0x24DC:0x0402:Aladdin R.D. JaCarta ++0x24DC:0x0501:Aladdin R.D. JaCarta U2F (JC602) ++0x24DC:0x100F:Aladdin R.D. JaCarta Flash ++ + # Alcor Micro +-0x058F:0x9520:Alcor Micro SCR001 + 0x058F:0x9522:Alcor Micro AU9522 + ++# ANCUD ++0x0483:0xACD1:ANCUD CCID USB Reader & RNG ++ ++# appidkey GmbH ++0x2406:0x5003:appidkey GmbH ID50 -USB ++0x2406:0x5004:appidkey GmbH ID100L-USB-SC-Reader ++0x2406:0x5006:appidkey GmbH ID60-USB ++ + # ASK-RFID + 0x1FD3:0xCC1D:ASK-RFID CPL108 + + # Athena + 0x0DC3:0x0900:Athena IDProtect Key v2 ++0x0DC3:0x1007:Athena ASEDrive IIIe KB Bio PIV ++0x0DC3:0x1008:Athena ASEDrive IIIe Combo Bio PIV + + # ATMEL + 0x03EB:0x6004:ATMEL AT91SO CCID Smart Card Reader +@@ -169,23 +202,28 @@ + # BIFIT + 0x23A0:0x0001:BIFIT USB-Token iBank2key + 0x23A0:0x0002:BIFIT iBank2Key ++0x23A0:0x0003:BIFIT iToken + + # Bit4id + 0x25DD:0x1101:Bit4id miniLector-s + 0x25DD:0x1201:Bit4id cryptokey + 0x25DD:0x2221:Bit4id iAM + 0x25DD:0x2321:Bit4id CKey4 ++0x25DD:0x2341:Bit4id tokenME FIPS v3 ++0x25DD:0x2351:Bit4id Digital DNA Key ++0x25DD:0x2361:Bit4id Digital-DNA Key BT ++0x25DD:0x2362:Bit4id Digital-DNA Key + 0x25DD:0x3111:Bit4id miniLector + ++# Bluink Ltd. ++0x2ABE:0x1003:Bluink Ltd. Bluink CCID ++ + # BLUTRONICS +-0x1B0E:0x1078:BLUTRONICS BLUDRIVE II CCID ++0x1B0E:0x1079:BLUTRONICS BLUDRIVE II CCID + + # Broadcom Corp +-0x0A5C:0x5800:Broadcom Corp 5880 Unsupported Needs Microcode Update +-0x0A5C:0x5801:Broadcom Corp 5880 Unsupported Needs Microcode Update + 0x0A5C:0x5802:Broadcom Corp 5880 + 0x0A5C:0x5804:Broadcom Corp 5880 +-0x0A5C:0x5805:Broadcom Corp 5880 Unsupported Needs Microcode Update + 0x0A5C:0x5832:Broadcom Corp 5880 + 0x0A5C:0x5833:Broadcom Corp 5880 + 0x0A5C:0x5834:Broadcom Corp 5880 +@@ -196,24 +234,67 @@ + 0x0783:0x0010:C3PO LTC32 + 0x0783:0x0036:C3PO LTC36 + ++# CASTLES ++0x0CA6:0x00A0:CASTLES EZCCID Smart Card Reader ++ + # CCB + 0x8829:0xCCB2:CCB eSafeLD + + # charismathics + 0x19E7:0x0002:charismathics plug'n'crypt CCID token + ++# Cherry ++0x046A:0x0090:Cherry Smart Card Reader USB ++0x046A:0x0092:Cherry TC 1300 ++0x046A:0x00A1:Cherry KC 1000 SC ++0x046A:0x00A2:Cherry KC 1000 SC/DI ++0x046A:0x00A3:Cherry Smartcard Keyboard G87-1xx44 ++0x046A:0x00A4:Cherry KC 1000 SC Z ++0x046A:0x00A5:Cherry KC 1000 SC/DI Z ++0x046A:0x00A7:Cherry SmartTerminal XX44 ++ + # Cherry GmbH + 0x046A:0x005B:Cherry GmbH SmartBoard XX1X + 0x046A:0x0070:Cherry GmbH SmartTerminal XX1X + 0x046A:0x0072:Cherry GmbH SmartTerminal ST-1275 +-0x046A:0x0090:Cherry GmbH TC 1100 ++ ++# Chicony ++0x04F2:0x0967:Chicony USB Smart Card Keyboard ++0x03F0:0x114A:Chicony HP USB Smartcard CCID Keyboard KR ++0x03F0:0x124A:Chicony HP USB Smartcard CCID Keyboard JP ++0x04F2:0x1469:Chicony HP Skylab USB Smartcard Keyboard + + # COVADIS + 0x0982:0x0008:COVADIS VEGA-ALPHA + 0x0982:0x0040:COVADIS Auriga + +-# Dectel +-0x0BDA:0x0165:Dectel CI692 ++# DUALi ++0x1DB2:0x0801:DUALi DE-620 Combi ++0x1DB2:0x088B:DUALi DRAGON NFC READER ++ ++# eID_R6 001 ++0x257B:0xD205:eID_R6 001 X8 ++ ++# Elatec ++0x09D8:0x0427:Elatec TWN4 SmartCard NFC ++0x09D8:0x0428:Elatec TWN4/B1.06/CPF3.05/S1SC1.32/P (Beta 3) ++ ++# ESMART ++0x2CE4:0x7479:ESMART Token GOST ++ ++# FEITIAN ++0x096E:0x0619:FEITIAN iR301 ++0x096E:0x061A:FEITIAN bR301 ++0x096E:0x061C:FEITIAN iR301 ++ ++# Feitian ++0x096E:0x0608:Feitian 502-CL ++0x096E:0x060D:Feitian R502 ++0x096E:0x0622:Feitian VR504 VHBR Contactless & Contact Card Reader ++0x096E:0x0623:Feitian bR500 ++0x096E:0x0624:Feitian bR301 ++0x096E:0x0807:Feitian ePass2003 ++0x096E:0x080F:Feitian eJAVA Token + + # Feitian Technologies + 0x096E:0x0505:Feitian Technologies FT SCR310 +@@ -221,29 +302,48 @@ + # Free Software Initiative of Japan + 0x234B:0x0000:Free Software Initiative of Japan Gnuk + ++# FT ++0x096E:0x080A:FT ePass2003Auto ++0x096E:0x0853:FT U2F CCID KB ++0x096E:0x0855:FT CCID KB ++0x096E:0x0856:FT U2F CCID ++0x096E:0x0859:FT CCID ++ ++# Fujitsu ++0x0BF8:0x1024:Fujitsu Smartcard Reader D323 ++ + # Fujitsu Siemens Computers + 0x0BF8:0x1005:Fujitsu Siemens Computers SmartCard Keyboard USB 2A + 0x0BF8:0x1006:Fujitsu Siemens Computers SmartCard USB 2A + + # FujitsuTechnologySolutions GmbH + 0x0BF8:0x1017:FujitsuTechnologySolutions GmbH SmartCase KB SCR eSIG ++0x0BF8:0x1021:FujitsuTechnologySolutions GmbH Smartcard Keyboard G87-914x ++0x0BF8:0x1022:FujitsuTechnologySolutions GmbH Keyboard KB100 SCR ++0x0BF8:0x1023:FujitsuTechnologySolutions GmbH Keyboard KB100 SCR eSIG ++ ++# GEMALTO ++0x08E6:0x3440:GEMALTO CT1100 + + # Gemalto + 0x08E6:0x2202:Gemalto Gem e-Seal Pro USB Token +-0x08E6:0x3478:Gemalto USB GemPCPinpad SmartCard Reader ++0x08E6:0x34C1:Gemalto Ezio Shield Secure Channel + 0x08E6:0x34C2:Gemalto Ezio Shield + 0x08E6:0x34C5:Gemalto Ezio Shield Branch Reader + 0x08E6:0x34EC:Gemalto GemPC Express + 0x08E6:0x4042:Gemalto SA .NET Dual + 0x08E6:0x5743:Gemalto Hybrid Smartcard Reader + 0x08E6:0x8108:Gemalto Smart Enterprise Guardian Secure USB Device +-0x08E6:0x8141:Gemalto IDBridge K3000 + + # Gemplus + 0x08E6:0x3479:Gemplus GemCore POS Pro Smart Card Reader + + # Generic + 0x0BDA:0x0169:Generic USB2.0-CRW ++0x048D:0x1366:Generic MultiCard Device ++ ++# Generic USB ++0x076B:0x3A21:Generic USB Smart Card Reader + + # German Privacy Foundation + 0x20A0:0x4107:German Privacy Foundation Crypto Stick v1.2 +@@ -262,23 +362,74 @@ + 0x1677:0x0025:HDZB uKeyCI800-K18 + + # Hewlett Packard ++0x03F0:0x104A:Hewlett Packard HP USB Smartcard CCID Keyboard + 0x03F0:0x2924:Hewlett Packard MFP Smart Card Reader + ++# Hewlett-Packard ++0x03F0:0x581D:Hewlett-Packard HP lt4112 Gobi 4G Module ++ ++# HID ++ ++# HID Global ++0x076B:0x3031:HID Global OMNIKEY 3x21 Smart Card Reader ++0x076B:0x5022:HID Global OMNIKEY 5022 Smart Card Reader ++0x076B:0x5023:HID Global OMNIKEY 5023 Smart Card Reader ++0x076B:0x5400:HID Global veriCLASS Reader ++0x076B:0x5412:HID Global OMNIKEY 5122 Smartcard Reader ++0x076B:0x5422:HID Global OMNIKEY 5422 Smartcard Reader ++0x076B:0x5432:HID Global OMNIKEY 5122 Dual ++0x076B:0x5A27:HID Global OMNIKEY 5027CK CCID CONFIG IF ++0x076B:0x6632:HID Global OMNIKEY 6121 Smart Card Reader ++ ++# HID OMNIKEY ++0x076B:0x502A:HID OMNIKEY 5025-CL ++0x076B:0x5127:HID OMNIKEY 5127 CK ++0x076B:0x5326:HID OMNIKEY 5326 DFR ++0x076B:0x5427:HID OMNIKEY 5427 CK ++ ++# Hitachi, Ltd. ++0x04A4:0x00C7:Hitachi, Ltd. Hitachi Biometric Reader ++0x04A4:0x00D4:Hitachi, Ltd. Hitachi Portable Biometric Reader ++ + # id3 Semiconductors +-0x0B81:0x0200:id3 Semiconductors CL1356T5 + 0x0B81:0x0220:id3 Semiconductors CL1356A_HID + ++# Identiv ++0x04E6:0x5713:Identiv CLOUD 2980 F Smart Card Reader ++0x04E6:0x5724:Identiv Identiv uTrust 4701 F Dual Interface Reader ++0x04E6:0x5790:Identiv uTrust 3700 F CL Reader ++0x04E6:0x5791:Identiv uTrust 3701 F CL Reader ++0x04E6:0x5811:Identiv uTrust 2900 R Smart Card Reader ++0x04E6:0x5812:Identiv uTrust 2910 R Smart Card Reader ++0x04E6:0x5814:Identiv SCR3500 A Contact Reader ++0x04E6:0x5815:Identiv SCR3500 B Contact Reader ++0x04E6:0x5816:Identiv uTrust 3512 SAM slot Token ++0x04E6:0x5818:Identiv @MAXX Light2 token ++0x04E6:0x5819:Identiv @MAXX ID-1 Smart Card Reader ++0x04E6:0x581A:Identiv uTrust 3522 embd SE RFID Token ++0x04E6:0x581B:Identiv uTrust 2910 R Taglio SC Reader ++0x04E6:0x581C:Identiv SCR35xx USB Smart Card Reader ++ + # Identive + 0x04E6:0x5710:Identive CLOUD 2700 F Smart Card Reader + 0x04E6:0x5720:Identive Identive CLOUD 4500 F Dual Interface Reader +-0x04E6:0x5720:Identive Identive CLOUD 4500 F Dual Interface Reader +-0x04E6:0x5720:Identive Identive CLOUD 4700 F Dual Interface Reader +-0x04E6:0x5720:Identive Identive CLOUD 4700 F Dual Interface Reader +-0x04E6:0x5721:Identive Identive CLOUD 4510 F Contactless + SAM Reader + 0x04E6:0x5721:Identive Identive CLOUD 4510 F Contactless + SAM Reader +-0x04E6:0x5721:Identive Identive CLOUD 4710 F Contactless + SAM Reader +-0x04E6:0x5721:Identive Identive CLOUD 4710 F Contactless + SAM Reader ++0x04E6:0x5723:Identive Identive CLOUD 4000 F DTC + 0x04E6:0x5810:Identive CLOUD 2700 R Smart Card Reader ++0x04E6:0x5817:Identive SCT3522CC token ++ ++# Identive Technologies ++0x1FFA:0x000C:Identive Technologies Multi-ISO HF Reader - USB ++ ++# IID ++0x2406:0x6200:IID AT90S064 CCID READER ++ ++# IIT ++0x03EB:0x9308:IIT E.Key Crystal-1 ++0x03EB:0x9324:IIT E.Key Almaz-1C ++ ++# InfoThink ++0x1FC9:0x0102:InfoThink IT-102MU Reader + + # Inside Secure + 0x2406:0x6300:Inside Secure VaultIC 420 Smart Object +@@ -288,8 +439,23 @@ + 0x2406:0x6404:Inside Secure AT90SCR050 + 0x2406:0x6407:Inside Secure AT90SCR200 + +-# KEBTechnology +-0x04CC:0x5072:KEBTechnology KONA USB SmartCard ++# INSIDE Secure ++0x2406:0x6303:INSIDE Secure VaultIC 405 Smart Object ++0x2406:0x6305:INSIDE Secure VaultIC 441 Smart Object ++ ++# IonIDe ++0x076B:0x3B01:IonIDe Smartcard Reader ++ ++# KACST ++0x2A18:0x5000:KACST HSID Reader ++0x2A18:0x5001:KACST HSID Reader Single Storage ++0x2A18:0x5002:KACST HSID Reader Dual Storage ++ ++# Kapsch TrafficCom ++0x28B9:0x0002:Kapsch TrafficCom USB SAM reader ++ ++# KeyXentic Inc. ++0x2F76:0x0906:KeyXentic Inc. KX906 Smart Card Reader + + # Kingtrust + 0x0483:0x0007:Kingtrust Multi-Reader +@@ -303,9 +469,35 @@ + 0x0D46:0x4389:KOBIL Systems mIDentity fullsize + 0x0D46:0x43A9:KOBIL Systems mIDentity fullsize AES + ++# KRONEGGER ++0x2D25:0x0000:KRONEGGER NFC blue Reader Platform ++0x2D25:0x0001:KRONEGGER Micro Core Platform ++ ++# Ledger ++0x2C97:0x0001:Ledger Nano S ++ ++# Lenovo ++0x17EF:0x6007:Lenovo Lenovo USB Smartcard Keyboard ++0x17EF:0x6055:Lenovo Lenovo USB Smartcard Keyboard ++ ++# Liteon ++0x03F0:0x164A:Liteon HP SC Keyboard - Apollo (Liteon) ++0x03F0:0x174A:Liteon HP SC Keyboard - Apollo KR (Liteon) ++0x03F0:0x184A:Liteon HP SC Keyboard - Apollo JP (Liteon) ++ + # Macally + 0x08AE:0x0BDF:Macally NFC CCID eNetPad + ++# mCore ++0x1403:0x7502:mCore SCard-Reader ++ ++# Microchip ++0x0424:0x1104:Microchip SEC1110 ++0x0424:0x1202:Microchip SEC1210 ++ ++# MK Technology ++0x0416:0xC136:MK Technology KeyPass S1 ++ + # Morpho + 0x079B:0x0026:Morpho MSO350/MSO351 Fingerprint Sensor & SmartCard Reader + 0x079B:0x0052:Morpho MSO1350 Fingerprint Sensor & SmartCard Reader +@@ -313,16 +505,26 @@ + # MSI + 0x0BDA:0x0161:MSI StarReader SMART + ++# Mulann ++0x4D55:0x0010:Mulann PVT ++ + # Neowave + 0x1E0D:0x0013:Neowave Weneo + 0x1E0D:0x0033:Neowave Weneo + 0x1E0D:0x1023:Neowave Weneo + 0x1E0D:0x8033:Neowave Weneo + ++# Nitrokey ++0x20A0:0x4108:Nitrokey Nitrokey Pro ++0x20A0:0x4109:Nitrokey Nitrokey Storage ++0x20A0:0x4211:Nitrokey Nitrokey Start ++0x20A0:0x4230:Nitrokey Nitrokey HSM ++ + # NTT Communications Corp. + 0x04E6:0x511A:NTT Communications Corp. SCR3310-NTTCom USB SmartCard Reader + + # NXP ++0x1FC9:0x0107:NXP Pegoda 2 N + 0x1FC9:0x010B:NXP PR533 + + # OBERTHUR TECHNOLOGIES +@@ -335,15 +537,17 @@ + 0x076B:0x1021:OMNIKEY CardMan 1021 + 0x076B:0x4321:OMNIKEY CardMan 4321 + 0x076B:0x5321:OMNIKEY CardMan 5321 ++0x076B:0x5421:OMNIKEY 5421 + 0x076B:0x6321:OMNIKEY 6321 CLi USB + + # OMNIKEY AG +-0x076B:0x3021:OMNIKEY AG CardMan 3021 ++0x076B:0x3022:OMNIKEY AG 3121 USB + 0x076B:0x3621:OMNIKEY AG CardMan 3621 + 0x076B:0x3821:OMNIKEY AG CardMan 3821 + 0x076B:0x5121:OMNIKEY AG CardMan 5121 + 0x076B:0x5125:OMNIKEY AG CardMan 5125 + 0x076B:0x6622:OMNIKEY AG CardMan 6121 ++0x076B:0x6623:OMNIKEY AG 6121 USB mobile + 0x076B:0xA021:OMNIKEY AG Smart Card Reader + + # Panasonic +@@ -353,16 +557,39 @@ + 0x0471:0x040F:Philips Semiconductors JCOP41V221 + 0x04B9:0x1400:Philips Semiconductors SmartMX Sample + ++# PIVKey ++0x096E:0x0603:PIVKey T800 ++ ++# Planeta ++0x21AB:0x0010:Planeta RC700-NFC CCID ++ + # Raritan + 0x14DD:0x1006:Raritan D2CIM-DVUSB VM/CCID + ++# Regula ++0x1C6A:0x7050:Regula RFID Reader ++ + # REINER SCT ++0x0C4B:0x0500:REINER SCT cyberJack RFID standard + 0x0C4B:0x0504:REINER SCT cyberJack go ++0x0C4B:0x0520:REINER SCT tanJack Bluetooth ++0x0C4B:0x0580:REINER SCT cyberJack one + 0x0C4B:0x9102:REINER SCT cyberJack RFID basis + ++# Rocketek ++0x14CD:0x8166:Rocketek RT-SCR1 ++ ++# SafeNet ++0x0529:0x0602:SafeNet eToken 7300 ++0x0529:0x0620:SafeNet eToken 5100 ++0x08E6:0x34CC:SafeNet eToken 5300 ++ + # SafeTech + 0x24A2:0x0102:SafeTech SafeTouch + ++# SAFETRUST ++0x2EE1:0x0001:SAFETRUST SABRE SCR ++ + # SchlumbergerSema + 0x0973:0x0003:SchlumbergerSema SchlumbergerSema Cyberflex Access + +@@ -375,12 +602,16 @@ + 0x04E6:0x5120:SCM Microsystems Inc. SCR331-DI USB Smart Card Reader + 0x04E6:0x5121:SCM Microsystems Inc. SDI010 Smart Card Reader + 0x04E6:0x512B:SCM Microsystems Inc. SDI011 Contactless Reader ++0x04E6:0x512C:SCM Microsystems Inc. SDI011 Contactless Reader ++0x04E6:0x5291:SCM Microsystems Inc. SCL010 Contactless Reader + 0x04E6:0x5293:SCM Microsystems Inc. SCL01x Contactless Reader +-0x04E6:0x5410:SCM Microsystems Inc. SCR35xx v2.0 USB SC Reader + + # Secure Device Solutions + 0x0B81:0x8007:Secure Device Solutions DOMINO-Key TWIN + ++# SecuTech ++0x0403:0xC587:SecuTech SecuTech Token ++ + # Sitecom + 0x0DF6:0x800A:Sitecom Sitecom USB simcard reader MD-010 + +@@ -399,12 +630,22 @@ + 0x1C34:0x91B1:SpringCard H663 Series + 0x1C34:0xA1A1:SpringCard H512 Series + ++# Spyrus Inc ++0x08DF:0x0004:Spyrus Inc Rosetta USB ++0x08DF:0x3115:Spyrus Inc WorkSafe Pro ++0x08DF:0x3201:Spyrus Inc PocketVault P-3X ++ + # SYNNIX + 0x1206:0x2105:SYNNIX STD200 + + # Teridian Semiconductors + 0x1862:0x0000:Teridian Semiconductors TSC12xxFV.09 + ++# THURSBY SOFTWARE ++0x1976:0x0001:THURSBY SOFTWARE TSS-PK1 ++ ++# Thursby Software Systems, Inc. ++ + # Tianyu + 0xA625:0x0810:Tianyu Smart Card Reader + +@@ -415,6 +656,13 @@ + # ubisys + 0x19A6:0x0009:ubisys 13.56MHz RFID (CCID) + ++# udea ++0x2A17:0x0001:udea MILKO V1. ++ ++# Unicept GmbH ++0x2DFF:0x1540:Unicept GmbH AirID USB ++0x2DFF:0x1543:Unicept GmbH AirID USB Dongle ++ + # Validy + 0x1CF0:0x0001:Validy TokenA sl vt + +@@ -429,16 +677,28 @@ + 0x1A44:0x0122:VASCO DIGIPASS KEY 202 + 0x1A44:0x0855:VASCO DP855 + 0x1A44:0x0865:VASCO DP865 ++0x1A44:0x0870:VASCO DIGIPASS 870 ++0x1A44:0x0875:VASCO DIGIPASS 875 + 0x1A44:0x0920:VASCO DIGIPASS 920 + + # VMware + 0x0E0F:0x0004:VMware Virtual USB CCID + ++# WatchCNPC ++0x163C:0x0406:WatchCNPC USB CCID Key ++ ++# Watchdata ++0x163C:0x0407:Watchdata USB Key ++0x163C:0x0417:Watchdata USB Key ++0x163C:0x0418:Watchdata USB Key ++ ++# Watchdata W5181 ++0x163C:0x0A03:Watchdata W5181 ++ + # Winbond + 0x0416:0x3815:Winbond CCID SmartCard Controller + + # XIRING +-0x0F14:0x0011:XIRING XI-SIGN USB V2 + + # Yubico + 0x1050:0x0111:Yubico Yubikey NEO OTP+CCID +@@ -461,11 +721,19 @@ + 0x09C3:0x0008:ActivCard ActivCard USB Reader V2 + + # Aladdin +-0x0529:0x0620:Aladdin eToken PRO USB 72K Java ++ ++# Alcor Micro ++ ++# Athena ++0x0DC3:0x100F:Athena IDProtect Flash + + # ATMEL + 0x03EB:0x6016:ATMEL VaultIC460 + ++# Broadcom Corp ++0x0A5C:0x5800:Broadcom Corp 5880 Unsupported Needs Microcode Update ++0x0A5C:0x5801:Broadcom Corp 5880 Unsupported Needs Microcode Update ++0x0A5C:0x5805:Broadcom Corp 5880 Unsupported Needs Microcode Update + + # C3PO + 0x0783:0x0003:C3PO LTC3x USB +@@ -473,11 +741,15 @@ + # Feitian + 0x096E:0x0503:Feitian SCR301 + ++# Generic ++0x0BDA:0x0165:Generic Smart Card Reader Interface ++ + # Hewlett-Packard Company + 0x03F0:0x0036:Hewlett-Packard Company HP USB CCID Smartcard Keyboard + 0x03F0:0x1024:Hewlett-Packard Company HP USB Smart Card Keyboard +-0x03F0:0x104A:Hewlett-Packard Company HP Smart Card Terminal KUS1206 +-0x03F0:0x164A:Hewlett-Packard Company HP Smart Card Terminal SK-2027 ++ ++# KEBTechnology ++0x04CC:0x5072:KEBTechnology KONA USB SmartCard + + # KOBIL Systems + 0x0D46:0x4000:KOBIL Systems mIDentity M +@@ -494,52 +766,79 @@ + # RSA + 0x15E1:0x2007:RSA RSA SecurID (R) Authenticator + ++# THRC ++0x062D:0x0001:THRC Smart Card Reader ++ ++# VMware ++ + ########################## + # section: disabled + ########################## + ++# DUALi ++#0x1DB2:0x0600:DUALi DE-ABCM6 ++ ++# HID OMNIKEY ++#0x076B:0x5340:HID OMNIKEY 5021 CL ++ ++# Jinmuyu Electronics Co., Ltd. ++#0x03EB:0x6120:Jinmuyu Electronics Co., Ltd. MR800 ++ + # jNet Technology inc. + #0x0483:0x2010:jNet Technology inc. jToken s1 + ++# Morpho ++#0x1A6F:0x0104:Morpho ypsID Key E ++ + # MX5 + #0x0980:0x902F:MX5 MX5 SMART CCID DRIVER + + # OCS ID-One Cosmo Card + #0x1A74:0x6356:OCS ID-One Cosmo Card USB Smart Chip Device + ++# OMNIKEY ++#0x076B:0x532A:OMNIKEY 5321 CLi USB ++ ++# Precise Biometrics ++#0x08C3:0x0406:Precise Biometrics Precise 200 MC Upgrade ++ + # Reiner-SCT + #0x0C4B:0x0300:Reiner-SCT cyberJack pinpad(a) + + # SCM Microsystems Inc. +-#0x04E6:0x5291:SCM Microsystems Inc. SCL010 Contactless Reader + #0x04E6:0x5292:SCM Microsystems Inc. SCL01x Contactless Reader + + # SMART + #0x0B8C:0x000E:SMART SBV280 + +-# THRC +-#0x062D:0x0001:THRC USB Smart Card Reader +- + ########################## + # section: duplicates + ########################## ++#0x046A:0x0090:Cherry Smart Card Reader USB (Cherry_Smart_Card_Reader_USB.txt) ++#0x046A:0x0090:Cherry Cherry TC 1100 (Cherry_Smart_Card_Reader_USB_2_04.txt) ++ ++#0x04E6:0x5291:SCM Microsystems Inc. SCL010 Contactless Reader (SCL010.txt) ++#0x04E6:0x5291:SCM Microsystems Inc. SCL010 Contactless Reader (SCM_SCL010.txt) ++ + #0x04E6:0x5410:SCM Microsystems Inc. SCR35xx v2.0 USB SC Reader (SCR3500.txt) + #0x04E6:0x5410:SCM Microsystems Inc. SCR 355 (SCR355.txt) + + #0x04E6:0x5720:Identive Identive CLOUD 4500 F Dual Interface Reader (Identive_CLOUD_4500_F.txt) +-#0x04E6:0x5720:Identive Identive CLOUD 4500 F Dual Interface Reader (Identive_CLOUD_4500_F.txt_i1) + #0x04E6:0x5720:Identive Identive CLOUD 4700 F Dual Interface Reader (Identive_CLOUD_4700_F.txt) +-#0x04E6:0x5720:Identive Identive CLOUD 4700 F Dual Interface Reader (Identive_CLOUD_4700_F.txt_i1) + + #0x04E6:0x5721:Identive Identive CLOUD 4510 F Contactless + SAM Reader (Identive_CLOUD_4510_F.txt) +-#0x04E6:0x5721:Identive Identive CLOUD 4510 F Contactless + SAM Reader (Identive_CLOUD_4510_F.txt_i1) + #0x04E6:0x5721:Identive Identive CLOUD 4710 F Contactless + SAM Reader (Identive_CLOUD_4710_F.txt) +-#0x04E6:0x5721:Identive Identive CLOUD 4710 F Contactless + SAM Reader (Identive_CLOUD_4710_F.txt_i1) ++ ++#0x0529:0x0620:Aladdin eToken PRO USB 72K Java (Aladdin_eToken_PRO_USB_72K_Java.txt) ++#0x0529:0x0620:SafeNet eToken 5100 (SafeNet_Token_JC.txt) + + #0x058F:0x9520:Alcor Micro AU9520 (AU9520.txt) + #0x058F:0x9520:Akasa AK-CR-03 (Akasa_AK-CR-03.txt) + #0x058F:0x9520:Alcor Micro SCR001 (Alcor_SCR001.txt) + ++#0x058F:0x9540:Alcor Micro AU9540 (AU9540.txt) ++#0x058F:0x9540:Alcor Micro AU9560 (AlcorMicro_AU9560.txt) ++ + #0x072F:0x90CC:ACS ACR122U (ACR122U.txt) + #0x072F:0x90CC:ACS ACR 38U-CCID (ACR38U-CCID.txt) + #0x072F:0x90CC:ACS ACR100 (ACS_ACR100.txt) +@@ -552,21 +851,40 @@ + #0x076B:0x3021:OMNIKEY AG CardMan 3021 (CardMan3021.txt) + #0x076B:0x3021:OMNIKEY AG CardMan 3121 (CardMan3121.txt) + ++#0x076B:0x3A21:Generic USB Smart Card Reader (Generic_USB_Smart_Card_Reader.txt) ++#0x076B:0x3A21:HID AVIATOR Generic (HID_Aviator.txt) ++ + #0x076B:0xA022:Precise Biometrics Sense MC (Precise_Sense_MC.txt) + #0x076B:0xA022:XIRING Teo (Teo.txt) + ++#0x08E6:0x3437:Gemalto PC Twin Reader (GemPCTwin.txt) ++#0x08E6:0x3437:Gemalto IDBridge CT30 (Gemalto_IDBridge_CT30.txt) ++#0x08E6:0x3437:Gemalto K50 (Gemalto_K50.txt) ++ ++#0x08E6:0x3438:Gemalto USB Shell Token V2 (GemPCKey.txt) ++#0x08E6:0x3438:Gemalto IDBridge K30 (Gemalto_IDBridge_K30.txt) ++ ++#0x08E6:0x3440:GEMALTO CT1100 (Gemalto_CT1100.txt) ++#0x08E6:0x3440:GEMALTO K1100 (Gemalto_K1100.txt) ++ + #0x08E6:0x3478:Gemalto USB GemPCPinpad SmartCard Reader (GemPCPinpad.txt) + #0x08E6:0x3478:Gemalto USB GemPCPinpad SmartCard Reader (GemPCPinpadv2.txt) + +-#0x08E6:0x5503:Gemalto Prox Dual USB PC LinkReader (GemProxDU.txt) +-#0x08E6:0x5503:Gemalto Prox Dual USB PC LinkReader (GemProxDU.txt_i1) ++#0x08E6:0x34C0:Gemalto Ezio Shield (Gemalto_Ezio_Shield.txt) ++#0x08E6:0x34C0:Gemalto Ezio Shield Pro SC (Gemalto_Ezio_Shield_Pro_SC.txt) + +-#0x08E6:0x5504:Gemalto Prox SU USB PC LinkReader (GemProxSU.txt) +-#0x08E6:0x5504:Gemalto Prox SU USB PC LinkReader (GemProxSU.txt_i1) ++#0x0A5C:0x5802:Broadcom Corp 5880 (Broadcom_5880v3.txt) ++#0x0A5C:0x5802:Broadcom Corp 5880 (Broadcom_5880v4.txt) + + #0x0B81:0x0200:id3 Semiconductors CL1356T (id3_CL1356T.txt) + #0x0B81:0x0200:id3 Semiconductors CL1356T5 (id3_CL1356T5.txt) + ++#0x0E0F:0x0004:VMware Virtual USB CCID (VMware_Virtual_USB_CCID.txt) ++#0x0E0F:0x0004:VMware Virtual USB CCID (VMware_Virtual_USB_CCID2.txt) ++ + #0x0F14:0x0011:XIRING XI-SIGN USB V2 (Xiring_XI-SIGN.txt) + #0x0F14:0x0011:XIRING XI-SIGN USB V2 (Xiring_XI-SIGN_6000.txt) + ++#0x0F14:0x003D:Ingenico WITEO USB Smart Card Reader (Ingenico_WITEO_badge.txt) ++#0x0F14:0x003D:Ingenico WITEO USB Smart Card Reader (Ingenico_WITEO_base.txt) ++ diff --git a/SOURCES/ccid-1.4.10-broadcom.patch b/SOURCES/ccid-1.4.10-broadcom.patch new file mode 100644 index 0000000..b75e6cb --- /dev/null +++ b/SOURCES/ccid-1.4.10-broadcom.patch @@ -0,0 +1,49 @@ +diff -up ./readers/supported_readers.txt.broadcom ./readers/supported_readers.txt +--- ./readers/supported_readers.txt.broadcom 2017-09-05 15:45:54.780972598 -0700 ++++ ./readers/supported_readers.txt 2017-09-05 15:50:17.088475393 -0700 +@@ -181,10 +181,14 @@ + 0x1B0E:0x1078:BLUTRONICS BLUDRIVE II CCID + + # Broadcom Corp +-0x0A5C:0x5800:Broadcom Corp 5880 +-0x0A5C:0x5802:Broadcom Corp 5880 +-0x0A5C:0x5802:Broadcom Corp 5880 ++0x0A5C:0x5800:Broadcom Corp 5880 Unsupported Needs Microcode Update ++0x0A5C:0x5801:Broadcom Corp 5880 Unsupported Needs Microcode Update + 0x0A5C:0x5802:Broadcom Corp 5880 ++0x0A5C:0x5804:Broadcom Corp 5880 ++0x0A5C:0x5805:Broadcom Corp 5880 Unsupported Needs Microcode Update ++0x0A5C:0x5832:Broadcom Corp 5880 ++0x0A5C:0x5833:Broadcom Corp 5880 ++0x0A5C:0x5834:Broadcom Corp 5880 + + # C3PO + 0x0783:0x0007:C3PO TLTC2USB +@@ -202,6 +206,7 @@ + 0x046A:0x005B:Cherry GmbH SmartBoard XX1X + 0x046A:0x0070:Cherry GmbH SmartTerminal XX1X + 0x046A:0x0072:Cherry GmbH SmartTerminal ST-1275 ++0x046A:0x0090:Cherry GmbH TC 1100 + + # COVADIS + 0x0982:0x0008:COVADIS VEGA-ALPHA +@@ -461,8 +466,6 @@ + # ATMEL + 0x03EB:0x6016:ATMEL VaultIC460 + +-# Broadcom Corp +-0x0A5C:0x5801:Broadcom Corp 5880 + + # C3PO + 0x0783:0x0003:C3PO LTC3x USB +@@ -561,10 +564,6 @@ + #0x08E6:0x5504:Gemalto Prox SU USB PC LinkReader (GemProxSU.txt) + #0x08E6:0x5504:Gemalto Prox SU USB PC LinkReader (GemProxSU.txt_i1) + +-#0x0A5C:0x5802:Broadcom Corp 5880 (Broadcom_5880v3.txt) +-#0x0A5C:0x5802:Broadcom Corp 5880 (Broadcom_5880v4.txt) +-#0x0A5C:0x5802:Broadcom Corp 5880 (Broadcom_5880v4.txt_i1) +- + #0x0B81:0x0200:id3 Semiconductors CL1356T (id3_CL1356T.txt) + #0x0B81:0x0200:id3 Semiconductors CL1356T5 (id3_CL1356T5.txt) + diff --git a/SOURCES/ccid-1.4.10-coverity.patch b/SOURCES/ccid-1.4.10-coverity.patch new file mode 100644 index 0000000..1b43faf --- /dev/null +++ b/SOURCES/ccid-1.4.10-coverity.patch @@ -0,0 +1,28 @@ +diff -up ./src/ccid_usb.c.coverity ./src/ccid_usb.c +--- ./src/ccid_usb.c.coverity 2018-05-23 13:08:07.321600659 -0700 ++++ ./src/ccid_usb.c 2018-05-23 13:20:29.927742791 -0700 +@@ -1040,7 +1040,7 @@ static unsigned int *get_data_rates(unsi + n = len; + } + +- int_array = calloc(n+1, sizeof(int)); ++ int_array = calloc(n+1, sizeof(int_array[0])); + if (NULL == int_array) + { + DEBUG_CRITICAL("Memory allocation failed"); +diff -up ./src/ifdhandler.c.coverity ./src/ifdhandler.c +--- ./src/ifdhandler.c.coverity 2018-05-23 13:08:25.497629268 -0700 ++++ ./src/ifdhandler.c 2018-05-23 13:19:08.247618812 -0700 +@@ -139,8 +139,10 @@ static RESPONSECODE CreateChannelByNameO + + /* The reader may have to start here so give it some time */ + ret = CmdGetSlotStatus(reader_index, pcbuffer); +- if (IFD_NO_SUCH_DEVICE == ret) +- return ret; ++ if (IFD_NO_SUCH_DEVICE == ret) { ++ return_value = ret; ++ goto error; ++ } + + /* save the current read timeout computed from card capabilities */ + oldReadTimeout = ccid_descriptor->readTimeout; diff --git a/SOURCES/ccid-1.4.10-max-cpu-bug.patch b/SOURCES/ccid-1.4.10-max-cpu-bug.patch new file mode 100644 index 0000000..c84ee0b --- /dev/null +++ b/SOURCES/ccid-1.4.10-max-cpu-bug.patch @@ -0,0 +1,77 @@ +diff -up ./src/ccid_usb.c.max_cpu_bug ./src/ccid_usb.c +--- ./src/ccid_usb.c.max_cpu_bug 2012-06-22 00:25:20.000000000 -0700 ++++ ./src/ccid_usb.c 2016-06-29 17:17:11.284337349 -0700 +@@ -154,6 +154,36 @@ status_t OpenUSB(unsigned int reader_ind + } /* OpenUSB */ + + ++ /***************************************************************************** ++ * ++ * close_libusb_if_needed ++ * (pulled from upstream ccid_usb) ++ * ++ ****************************************************************************/ ++ static void close_libusb_if_needed(void) ++ { ++ int i, to_exit = TRUE; ++ ++ if (NULL == ctx) ++ return; ++ ++ /* if at least 1 reader is still in use we do not exit libusb */ ++ for (i=0; idwNonStandardFlags = 0; ++ + switch (ccid_descriptor->readerID) + { ++ case CARDMAN3121: ++ ccid_descriptor->dwNonStandardFlags = CCID_NON_STAND_OMK_3121_T1; ++ /* fall through */ + case CARDMAN3121+1: + /* Reader announces APDU but is in fact TPDU */ + ccid_descriptor->dwFeatures &= ~CCID_CLASS_EXCHANGE_MASK; +diff -up ./src/ccid.h.omnikey ./src/ccid.h +--- ./src/ccid.h.omnikey 2012-06-08 07:17:11.000000000 -0700 ++++ ./src/ccid.h 2014-09-26 16:40:54.279531436 -0700 +@@ -141,6 +141,7 @@ typedef struct + * Gemalto extra features, if any + */ + struct GEMALTO_FIRMWARE_FEATURES *gemalto_firmware_features; ++ unsigned int dwNonStandardFlags; + } _ccid_descriptor; + + /* Features from dwFeatures */ +@@ -156,6 +157,9 @@ typedef struct + #define CCID_CLASS_EXTENDED_APDU 0x00040000 + #define CCID_CLASS_EXCHANGE_MASK 0x00070000 + ++/* Features from the swNonStandardFlags */ ++#define CCID_NON_STAND_OMK_3121_T1 0x00000001 ++ + /* Features from bPINSupport */ + #define CCID_CLASS_PIN_VERIFY 0x01 + #define CCID_CLASS_PIN_MODIFY 0x02 +diff -up ./src/commands.c.omnikey ./src/commands.c +--- ./src/commands.c.omnikey 2014-09-26 16:40:54.276531385 -0700 ++++ ./src/commands.c 2014-09-26 16:41:39.463293364 -0700 +@@ -1186,6 +1186,39 @@ RESPONSECODE CmdXfrBlock(unsigned int re + return return_value; + } /* CmdXfrBlock */ + ++static RESPONSECODE omnikey_transmit_tpdu(unsigned int reader_index, ++ _ccid_descriptor *ccid_descriptor, unsigned int tx_length, ++ const unsigned char *tx_buffer) ++{ ++ unsigned char cmd[11+CMD_BUF_SIZE]; /* CCID + APDU buffer */ ++ status_t ret; ++ ++ cmd[0] = 0x6B; /* 3121 escape */ ++ i2dw(tx_length+1, cmd+1); /* APDU length */ ++ cmd[5] = ccid_descriptor->bCurrentSlotIndex; /* slot number */ ++ cmd[6] = (*ccid_descriptor->pbSeq)++; ++ cmd[7] = 0; ++ cmd[8] = 0; ++ cmd[9] = 0; ++ cmd[10] = 0x1A; ++ ++ /* check that the command is not too large */ ++ if (tx_length > CMD_BUF_SIZE) ++ { ++ DEBUG_CRITICAL2("TX Length too big: %d", tx_length); ++ return IFD_NOT_SUPPORTED; ++ } ++ ++ memcpy(cmd+11, tx_buffer, tx_length); ++ ++ ret = WritePort(reader_index, 11+tx_length, cmd); ++ if (STATUS_NO_SUCH_DEVICE == ret) ++ return IFD_NO_SUCH_DEVICE; ++ if (ret != STATUS_SUCCESS) ++ return IFD_COMMUNICATION_ERROR; ++ ++ return IFD_SUCCESS; ++} /* omnikey_transmit_tpdu */ + + /***************************************************************************** + * +@@ -1242,6 +1275,13 @@ RESPONSECODE CCID_Transmit(unsigned int + } + #endif + ++ /* hack for Onmikey 3121 */ ++ if ((ccid_descriptor->dwNonStandardFlags & CCID_NON_STAND_OMK_3121_T1) && ++ (ccid_descriptor->cardProtocol == SCARD_PROTOCOL_T1)) { ++ return omnikey_transmit_tpdu(reader_index, ccid_descriptor, tx_length, ++ tx_buffer); ++ } ++ + cmd[0] = 0x6F; /* XfrBlock */ + i2dw(tx_length, cmd+1); /* APDU length */ + cmd[5] = ccid_descriptor->bCurrentSlotIndex; /* slot number */ +@@ -1267,13 +1307,14 @@ RESPONSECODE CCID_Transmit(unsigned int + RESPONSECODE CCID_Receive(unsigned int reader_index, unsigned int *rx_length, + unsigned char rx_buffer[], unsigned char *chain_parameter) + { +- unsigned char cmd[10+CMD_BUF_SIZE]; /* CCID + APDU buffer */ ++ unsigned char cmd[11+CMD_BUF_SIZE]; /* CCID + APDU buffer */ + unsigned int length; ++ unsigned char *rx_ptr = cmd+10; + RESPONSECODE return_value = IFD_SUCCESS; + status_t ret; ++ _ccid_descriptor *ccid_descriptor = get_ccid_descriptor(reader_index); + + #ifndef TWIN_SERIAL +- _ccid_descriptor *ccid_descriptor = get_ccid_descriptor(reader_index); + + if (PROTOCOL_ICCD_A == ccid_descriptor->bInterfaceProtocol) + { +@@ -1447,6 +1488,14 @@ time_request: + } + + length = dw2i(cmd, 1); ++ ++ if (length && ++ (ccid_descriptor->dwNonStandardFlags & CCID_NON_STAND_OMK_3121_T1) && ++ (ccid_descriptor->cardProtocol == SCARD_PROTOCOL_T1)) { ++ length--; ++ rx_ptr = cmd+11; ++ } ++ + if (length <= *rx_length) + *rx_length = length; + else +@@ -1463,7 +1512,7 @@ time_request: + return_value = IFD_COMMUNICATION_ERROR; + } + else +- memcpy(rx_buffer, cmd+10, length); ++ memcpy(rx_buffer, rx_ptr, length); + + /* Extended case? + * Only valid for RDR_to_PC_DataBlock frames */ diff --git a/SOURCES/ccid-1.4.10-voltage.patch b/SOURCES/ccid-1.4.10-voltage.patch new file mode 100644 index 0000000..a0323fd --- /dev/null +++ b/SOURCES/ccid-1.4.10-voltage.patch @@ -0,0 +1,41 @@ +diff -up ./src/commands.c.voltage ./src/commands.c +--- ./src/commands.c.voltage 2013-03-16 06:52:33.000000000 -0700 ++++ ./src/commands.c 2013-11-26 15:44:13.533254750 -0800 +@@ -97,6 +97,7 @@ RESPONSECODE CmdPowerOn(unsigned int rea + status_t res; + int length, count = 1; + unsigned int atr_len; ++ int init_voltage = 0; + RESPONSECODE return_value = IFD_SUCCESS; + _ccid_descriptor *ccid_descriptor = get_ccid_descriptor(reader_index); + +@@ -207,6 +208,7 @@ RESPONSECODE CmdPowerOn(unsigned int rea + voltage = 0; /* auto */ + } + } ++ init_voltage = voltage; + + again: + cmd[0] = 0x62; /* IccPowerOn */ +@@ -256,14 +258,19 @@ again: + } + + /* continue with 3 volts and 5 volts */ +- if (voltage > 1) ++ if (voltage) + { + const char *voltage_code[] = { "auto", "5V", "3V", "1.8V" }; + + DEBUG_INFO3("Power up with %s failed. Try with %s.", + voltage_code[voltage], voltage_code[voltage-1]); + voltage--; +- goto again; ++ if (voltage == 0) { ++ voltage = 3; ++ } ++ if (voltage != init_voltage) { ++ goto again; ++ } + } + + return IFD_COMMUNICATION_ERROR; diff --git a/SOURCES/ccid-1.4.10-yubikey.patch b/SOURCES/ccid-1.4.10-yubikey.patch new file mode 100644 index 0000000..077b283 --- /dev/null +++ b/SOURCES/ccid-1.4.10-yubikey.patch @@ -0,0 +1,20 @@ +diff -up ./readers/supported_readers.txt.yubikey ./readers/supported_readers.txt +--- ./readers/supported_readers.txt.yubikey 2015-07-06 14:31:02.772908416 -0700 ++++ ./readers/supported_readers.txt 2015-07-06 14:31:25.783479307 -0700 +@@ -437,6 +437,7 @@ + # Yubico + 0x1050:0x0111:Yubico Yubikey NEO OTP+CCID + 0x1050:0x0112:Yubico Yubikey NEO CCID ++0x1050:0x0115:Yubico Yubikey NEO U2F+CCID + + ########################## + # section: unsupported +@@ -466,6 +467,8 @@ + # Hewlett-Packard Company + 0x03F0:0x0036:Hewlett-Packard Company HP USB CCID Smartcard Keyboard + 0x03F0:0x1024:Hewlett-Packard Company HP USB Smart Card Keyboard ++0x03F0:0x104A:Hewlett-Packard Company HP Smart Card Terminal KUS1206 ++0x03F0:0x164A:Hewlett-Packard Company HP Smart Card Terminal SK-2027 + + # KOBIL Systems + 0x0D46:0x4000:KOBIL Systems mIDentity M diff --git a/SOURCES/ccid-readers-3.4.20.patch b/SOURCES/ccid-readers-3.4.20.patch new file mode 100644 index 0000000..400e813 --- /dev/null +++ b/SOURCES/ccid-readers-3.4.20.patch @@ -0,0 +1,23 @@ +diff -up ./readers/supported_readers.txt.yubikey_2 ./readers/supported_readers.txt +--- ./readers/supported_readers.txt.yubikey_2 2016-06-23 15:45:33.152338328 -0700 ++++ ./readers/supported_readers.txt 2016-06-23 15:59:10.636954394 -0700 +@@ -87,6 +87,7 @@ + + # OMNIKEY AG + 0x076B:0x3021:OMNIKEY AG CardMan 3121 ++0x076B:0x3022:OMNIKEY AG CardMan 3121-1 + + # Precise Biometrics + 0x076B:0xA022:Precise Biometrics Sense MC +@@ -438,6 +439,11 @@ + 0x1050:0x0111:Yubico Yubikey NEO OTP+CCID + 0x1050:0x0112:Yubico Yubikey NEO CCID + 0x1050:0x0115:Yubico Yubikey NEO U2F+CCID ++0x1050:0x0116:Yubico Yubikey NEO OTP+U2F+CCID ++0x1050:0x0404:Yubico Yubikey 4 CCID ++0x1050:0x0405:Yubico Yubikey 4 OTP+CCID ++0x1050:0x0406:Yubico Yubikey 4 U2F+CCID ++0x1050:0x0407:Yubico Yubikey 4 OTP+U2F+CCID + + ########################## + # section: unsupported diff --git a/SOURCES/pcsc-lite-ccid-omnikey3022.patch b/SOURCES/pcsc-lite-ccid-omnikey3022.patch new file mode 100644 index 0000000..e10637a --- /dev/null +++ b/SOURCES/pcsc-lite-ccid-omnikey3022.patch @@ -0,0 +1,12 @@ +diff -up ./src/ccid.c.omnikey3022 ./src/ccid.c +--- ./src/ccid.c.omnikey3022 2019-03-21 12:09:41.327974503 -0700 ++++ ./src/ccid.c 2019-03-21 12:10:29.389078223 -0700 +@@ -54,7 +54,7 @@ int ccid_open_hack_pre(unsigned int read + case CARDMAN3121: + ccid_descriptor->dwNonStandardFlags = CCID_NON_STAND_OMK_3121_T1; + /* fall through */ +- case CARDMAN3121+1: ++ /*case CARDMAN3121+1: */ + /* Reader announces APDU but is in fact TPDU */ + ccid_descriptor->dwFeatures &= ~CCID_CLASS_EXCHANGE_MASK; + ccid_descriptor->dwFeatures |= CCID_CLASS_TPDU; diff --git a/SPECS/pcsc-lite-ccid.spec b/SPECS/pcsc-lite-ccid.spec new file mode 100644 index 0000000..1b00003 --- /dev/null +++ b/SPECS/pcsc-lite-ccid.spec @@ -0,0 +1,292 @@ +%global dropdir %(pkg-config libpcsclite --variable usbdropdir 2>/dev/null) +%global pcsc_lite_ver 1.8.3 +%global upstream_build 3897 + +Name: pcsc-lite-ccid +Version: 1.4.10 +Release: 15%{?dist} +Summary: Generic USB CCID smart card reader driver + +Group: System Environment/Libraries +License: LGPLv2+ +URL: http://pcsclite.alioth.debian.org/ccid.html +Source0: http://alioth.debian.org/download.php/%{upstream_build}/ccid-%{version}.tar.bz2 +Patch1: ccid-1.4.10-voltage.patch +Patch2: ccid-1.4.10-omnikey-3121.patch +Patch3: ccid-1.4.10-maxreaders.patch +Patch4: ccid-1.4.10-yubikey.patch +Patch5: ccid-readers-3.4.20.patch +Patch6: ccid-1.4.10-max-cpu-bug.patch +Patch7: ccid-1.4.10-broadcom.patch +Patch8: ccid-1.4.10-add-1.4.29-readers.patch +Patch9: ccid-1.4.10-coverity.patch +Patch10: pcsc-lite-ccid-omnikey3022.patch + +BuildRequires: libusb1-devel +BuildRequires: pcsc-lite-devel >= %{pcsc_lite_ver} +Requires(post): systemd +Requires(postun): systemd +Requires: pcsc-lite >= %{pcsc_lite_ver} +Provides: pcsc-ifd-handler +# Provide upgrade path from 'ccid' package +Obsoletes: ccid < 1.4.0-3 +Provides: ccid = %{version}-%{release} + +%description +Generic USB CCID (Chip/Smart Card Interface Devices) driver for use with the +PC/SC Lite daemon. + + +%prep +%setup -q -n ccid-%{version} +%patch1 -b .voltage +%patch2 -b .omnikey +%patch3 -b .maxreaders +%patch4 -b .yubikey +%patch5 -b .yubikey_2 +%patch6 -b .max_cpu_bug +%patch7 -b .broadcom +%patch8 -b .add_1_4_29_readers +%patch9 -b .coverity +%patch10 -b .omnikey3022 + + +%build +%configure --enable-twinserial +make %{?_smp_mflags} + + +%install +make install DESTDIR=$RPM_BUILD_ROOT +cp -p src/openct/LICENSE LICENSE.openct +rm -rf $RPM_BUILD_ROOT/%{_sysconfdir}/reader.conf.d + + +%post +/bin/systemctl try-restart pcscd.service >/dev/null 2>&1 || : + +%postun +/bin/systemctl try-restart pcscd.service >/dev/null 2>&1 || : + + +%files +%doc AUTHORS ChangeLog COPYING LICENSE.openct README +%{dropdir}/ifd-ccid.bundle/ +%{dropdir}/serial/ + + +%changelog +* Thu Mar 21 2019 Robert Relyea - 1.4.10-5 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 1.4.10-4 +- Mass rebuild 2013-12-27 + +* Tue Nov 26 2013 Robert Relyea - 1.4.10-3 +- bring in voltage patch + +* Thu Oct 24 2013 Robert Relyea - 1.4.10-2 +- rpmdiff cleanups + +* Wed Apr 17 2013 Kalev Lember - 1.4.10-1 +- Update to 1.4.10 + +* Thu Feb 28 2013 Kalev Lember - 1.4.9-1 +- Update to 1.4.9 + +* Thu Feb 14 2013 Fedora Release Engineering - 1.4.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Oct 07 2012 Kalev Lember - 1.4.8-1 +- Update to 1.4.8 + +* Fri Jul 20 2012 Fedora Release Engineering - 1.4.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jun 26 2012 Kalev Lember - 1.4.7-1 +- Update to 1.4.7 + +* Sat Apr 07 2012 Kalev Lember - 1.4.6-1 +- Update to 1.4.6 + +* Fri Jan 13 2012 Fedora Release Engineering - 1.4.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Fri Oct 14 2011 Kalev Lember - 1.4.5-1 +- Update to 1.4.5 +- Switch to systemctl for restarting pcscd after upgrade now that it is using + native systemd unit files. + +* Fri May 27 2011 Kalev Lember - 1.4.4-1 +- Update to 1.4.4 +- Clean up the spec file for modern rpmbuild + +* Sat Apr 02 2011 Kalev Lember - 1.4.3-1 +- Update to 1.4.3 +- GPLv2+ licensed RSA_SecurID no longer gets installed, which changes + the license of the binary RPM from 'LGPLv2+ and GPLv2+' to 'LGPLv2+'. + +* Tue Mar 29 2011 Kalev Lember - 1.4.2-2 +- Don't install the udev rules + +* Fri Feb 25 2011 Kalev Lember - 1.4.2-1 +- Update to 1.4.2 + +* Tue Feb 08 2011 Fedora Release Engineering - 1.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Dec 13 2010 Kalev Lember - 1.4.1-1 +- Update to 1.4.1 + +* Thu Dec 09 2010 Kalev Lember - 1.4.0-4 +- Install src/openct/LICENSE file as LICENSE.openct in docs (#660600) +- Added 'and GPLv2+' to license tag to cover RSA_SecurID (#660600) + +* Tue Dec 07 2010 Kalev Lember - 1.4.0-3 +- Renamed ccid package to pcsc-lite-ccid (#654377) +- Mark files under reader.conf.d as config(noreplace) +- Don't mark udev rules as config + +* Tue Dec 07 2010 Kalev Lember - 1.4.0-2 +- Removed ExcludeArch: s390 s390x as these arches now have libusb1 +- Updated description + +* Wed Aug 04 2010 Kalev Lember - 1.4.0-1 +- Update to 1.4.0 +- Build against libusb1 instead of libusb 0.1 +- Install libccidtwin configuration file +- Spec file clean up + +* Sun Jul 04 2010 Kalev Lember - 1.3.13-1 +- Update to 1.3.13 + +* Thu Nov 19 2009 Kalev Lember - 1.3.11-1 +- Updated to ccid 1.3.11 +- Removed iso-8859-1 to utf-8 conversion as the files are in utf-8 now + +* Fri Jul 24 2009 Fedora Release Engineering - 1.3.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Feb 24 2009 Bob Relyea - 1.3.9-1 +- update to ccid 1.3.9 + +* Mon Feb 23 2009 Fedora Release Engineering - 1.3.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Tue Aug 26 2008 Bob Relyea - 1.3.8-1 +- update to ccid 1.3.8 + +* Tue Feb 19 2008 Fedora Release Engineering - 1.2.1-4 +- Autorebuild for GCC 4.3 + +* Tue Aug 21 2007 Bob Relyea - 1.2.1-3 +- Update License description to the new Fedora standard + +* Mon Apr 30 2007 Bob Relyea - 1.2.1-2 +- Fix the missed use of the version macro + +* Tue Feb 06 2007 Bob Relyea - 1.2.1-1 +- Pick up ccid 1.2.1 +- use pcscd 'hotplug' feature instead of restarting the daemon +- add enable_udev + +* Mon Nov 06 2006 Bob Relyea - 1.1.0-2 +- Fix version macro to remove '-' + +* Thu Nov 02 2006 Bob Relyea - 1.1.0-1 +- Pickup ccid 1.1.0 + +* Wed Jul 19 2006 Florian La Roche - 1.0.1-5 +- require initscripts for post/postun + +* Sun Jul 16 2006 Florian La Roche - 1.0.1-4 +- fix excludearch line + +* Wed Jul 12 2006 Jesse Keating - 1.0.1-3.1 +- rebuild + +* Mon Jul 10 2006 Bob Relyea - 1.0.1-3 +- remove s390 from the build + +* Mon Jun 5 2006 Bob Relyea - 1.0.1-2 +- Move to Fedora Core, removed %%{_dist}. + +* Sat Apr 22 2006 Ville Skyttä - 1.0.1-1 +- 1.0.1. + +* Mon Mar 6 2006 Ville Skyttä - 1.0.0-1 +- 1.0.0, license changed to LGPL. + +* Wed Feb 15 2006 Ville Skyttä - 0.4.1-7 +- Rebuild. + +* Thu Nov 3 2005 Ville Skyttä - 0.4.1-6 +- Clean up build dependencies. +- Convert docs to UTF-8. + +* Thu Apr 7 2005 Michael Schwendt - 0.4.1-5 +- rebuilt + +* Fri Feb 25 2005 Ville Skyttä - 0.4.1-4 +- Drop Epoch: 0. +- Improve summary. +- Build with dependency tracking disabled. + +* Thu Jul 1 2004 Ville Skyttä - 0:0.4.1-0.fdr.3 +- Restart pcscd in post(un)install phase if it's available and running. + +* Thu May 13 2004 Ville Skyttä - 0:0.4.1-0.fdr.2 +- Provide pcsc-ifd-handler (idea from Debian). + +* Sat Feb 14 2004 Ville Skyttä - 0:0.4.1-0.fdr.1 +- Update to 0.4.1. + +* Fri Feb 13 2004 Ville Skyttä - 0:0.4.0-0.fdr.1 +- Update to 0.4.0. + +* Wed Nov 5 2003 Ville Skyttä - 0:0.3.2-0.fdr.1 +- Update to 0.3.2. +- Update URL. + +* Thu Oct 16 2003 Ville Skyttä - 0:0.3.1-0.fdr.1 +- Update to 0.3.1. + +* Wed Sep 10 2003 Ville Skyttä - 0:0.3.0-0.fdr.1 +- Update to 0.3.0. + +* Wed Aug 27 2003 Ville Skyttä - 0:0.2.0-0.fdr.1 +- Update to 0.2.0. + +* Tue Aug 19 2003 Ville Skyttä - 0:0.1.0-0.fdr.1 +- First build.