-
Notifications
You must be signed in to change notification settings - Fork 19
acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers. This library provides a PC/SC IFD handler implementation and communicates with the readers through the PC/SC Lite resource manager (pcscd).
License
acshk/acsccid
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ACS CCID PC/SC Driver for Linux/Mac OS X Advanced Card Systems Ltd. Introduction ------------ acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers. This library provides a PC/SC IFD handler implementation and communicates with the readers through the PC/SC Lite resource manager (pcscd). acsccid is based on ccid. See CCID free software driver [1] for more information. To build acsccid, you need the following software: Linux - pcsclite 1.8.3 or above - libusb 1.0.9 or above - flex - perl - pkg-config Mac OS X - libusb 1.0.9 or above - pkg-config For more information, see the INSTALL file. [1] https://ccid.apdu.fr/ System Requirements ------------------- Linux Mac OS X 10.5 or above Supported Readers ----------------- CCID Readers VID PID Reader Reader Name ---- ---- ------------------- ----------------------------- 072F B301 ACR32-A1 ACS ACR32 ICC Reader 072F B304 ACR3201-A1 ACS ACR3201 ICC Reader 072F B305 ACR3201 ACS ACR3201 ICC Reader 072F 8300 ACR33U-A1 ACS ACR33U-A1 3SAM ICC Reader 072F 8302 ACR33U-A2 ACS ACR33U-A2 3SAM ICC Reader 072F 8307 ACR33U-A3 ACS ACR33U-A3 3SAM ICC Reader 072F 8301 ACR33U ACS ACR33U 4SAM ICC Reader 072F 90CC ACR38U-CCID ACS ACR38U-CCID 072F 90CC ACR100-CCID ACS ACR38U-CCID 072F 90D8 ACR3801 ACS ACR3801 072F B100 ACR39U ACS ACR39U ICC Reader 072F B500 ACR39 BL ACS ACR39 FW_Upgrade 072F B101 ACR39K ACS ACR39K ICC Reader 072F B102 ACR39T ACS ACR39T ICC Reader 072F B103 ACR39F ACS ACR39F ICC Reader 072F B104 ACR39U-SAM ACS ACR39U-SAM ICC Reader 072F B10C ACR39U-U1 ACS ACR39U ID1 Card Reader 072F B113 ACR39U-W1 ACS ACR39U-W1 Top ICC Reader 072F B114 ACR39U-W1 ACS ACR39U-W1 Edge ICC Reader 072F B116 ACR39U-W1 Z_ACS ACR39U-W1 Top Reader 072F B117 ACR39U-W1 Z_ACS ACR39U-W1 Edge Reader 072F B000 ACR3901U ACS ACR3901 ICC Reader 072F B501 ACR40T ACS ACR40T ICC Reader 072F B504 ACR40T BL ACS ACR40 FW_Upgrade 072F B506 ACR40U ACS ACR40U ICC Reader 072F B505 ACR40U BL ACS SCR FW_Upgrade 072F 90D2 ACR83U-A1 ACS ACR83U 072F 8306 ACR85 ACS ACR85 PINPad Reader 072F 2011 ACR88U ACS ACR88U 072F 8900 ACR89U-A1 ACS ACR89 ICC Reader 072F 8901 ACR89U-A2 ACS ACR89 Dual Reader 072F 8902 ACR89U-FP ACS ACR89 FP Reader 072F 1205 ACR100I ACS ACR100 ICC Reader 072F 1204 ACR101 ACS ACR101 ICC Reader 072F 1206 ACR102 ACS ACR102 ICC Reader 072F 2200 ACR122U ACS ACR122U 072F 2200 ACR122U-SAM ACS ACR122U 072F 2200 ACR122T ACS ACR122U 072F 2214 ACR1222U-C1 ACS ACR1222 1SAM PICC Reader 072F 1280 ACR1222U-C3 ACS ACR1222 1SAM Dual Reader 072F 2207 ACR1222U-C6 ACS ACR1222 Dual Reader 072F 222B ACR1222U-C8 ACS ACR1222 1SAM PICC Reader 072F 2206 ACR1222L-D1 ACS ACR1222 3S PICC Reader 072F 222E ACR123U ACS ACR123 3S Reader 072F 2237 ACR123U ACS ACR123 PICC Reader 072F 2219 ACR123U Bootloader ACS ACR123US_BL 072F 2203 ACR125 ACS ACR125 nPA plus 072F 221A ACR1251U-A1 ACS ACR1251 1S CL Reader 072F 2229 ACR1251U-A2 ACS ACR1251 CL Reader 072F 222D [OEM Reader] [OEM Reader Name] 072F 2218 ACR1251U-C (SAM) ACS ACR1251U-C Smart Card Reader 072F 221B ACR1251U-C ACS ACR1251U-C Smart Card Reader 072F 2232 ACR1251UK ACS ACR1251K Dual Reader 072F 2242 ACR1251U-C3 ACS ACR1251 1S Dual Reader 072F 2238 ACR1251U-C9 ACS ACR1251 Reader 072F 225F ACR1251T-E2 ACS ACR1251T CL Reader 072F 224F ACM1251U-Z2 ACS ACR1251 CL Reader 072F 223B ACR1252U-A1 ACS ACR1252 1S CL Reader 072F 223B ACR1252U-M1 ACS ACR1252 1S CL Reader 072F 223E ACR1252U-A2 ACS ACR1252 CL Reader 072F 223D ACR1252U BL ACS ACR1252 USB FW_Upgrade v100 072F 2244 ACR1252U-A1 (PICC) ACS ACR1252U BADANAMU MAGIC READER 072F 2259 ACR1252U-A1 ACS ACR1252IMP 1S CL Reader 072F 225B ACM1252U-Z2ACE ACS ACR1252 CL Reader 072F 225C ACM1252U-Z2ACE BL ACS ACR1252 USB FW_Upgrade v100 072F 226B ACR1252U-MW/MV ACS WalletMate 1S CL Reader 072F 226A ACR1252U-MW/MV BL ACS WalletMate USB FW_Upgrade 072F 223F ACR1255U-J1 ACS ACR1255U-J1 PICC Reader 072F 2239 ACR1256U ACS ACR1256U PICC Reader 072F 2211 ACR1261U-C1 ACS ACR1261 1S Dual Reader 072F 2252 ACR1261U-A ACS ACR1261 CL Reader 072F 2100 ACR128U ACS ACR128U 072F 2224 ACR1281U-C1 ACS ACR1281 1S Dual Reader 072F 220F ACR1281U-C2 (qPBOC) ACS ACR1281 CL Reader 072F 2217 ACR1281U-C2 (UID) ACS ACR1281 Dual Reader 072F 2223 ACR1281U (qPBOC) ACS ACR1281 PICC Reader 072F 2208 ACR1281U-C3 (qPBOC) ACS ACR1281 Dual Reader 072F 0901 ACR1281U-C4 (BSI) ACS ACR1281 PICC Reader 072F 220A ACR1281U-C5 (BSI) ACS ACR1281 Dual Reader 072F 2215 ACR1281U-C6 ACS ACR1281 2S CL Reader 072F 2220 ACR1281U-C7 ACS ACR1281 1S PICC Reader 072F 2233 ACR1281U-K ACS ACR1281U-K PICC Reader 072F 2234 ACR1281U-K ACS ACR1281U-K Dual Reader 072F 2235 ACR1281U-K ACS ACR1281U-K 1S Dual Reader 072F 2236 ACR1281U-K ACS ACR1281U-K 4S Dual Reader 072F 2213 ACR1283L-D1 ACS ACR1283 4S CL Reader 072F 222C ACR1283L-D2 ACS ACR1283 CL Reader 072F 220C ACR1283 Bootloader ACS ACR1283U FW Upgrade 072F 2258 ACR1311U-N1 ACS ACR1311 PICC Reader 072F 2303 ACR1552U-M1 ACS ACR1552 1S CL Reader 072F 2308 ACR1552U-M2 ACS ACR1552 CL Reader 072F 2302 ACR1552U BL ACS ACR1552 USB FW_Upgrade 072F 2307 ACR1552U-ZW ACS WalletMate II 1S CL Reader 072F 2306 ACR1552U-ZW BL ACS WalletMate II V2 Upgrade 072F 230A ACR1555U ACS ACR1555 1S CL Reader 072F 2309 ACR1555U BL ACS ACR1555 USB FW_Upgrade 072F 2301 ACR1581U-C1 ACS ACR1581 1S Dual Reader 072F 2300 ACR1581U-C1 BL ACS ACR1581 USB FW_Upgrade 072F 0102 AET62 ACS AET62 PICC Reader 072F 0103 AET62 ACS AET62 1SAM PICC Reader 072F 0100 AET65 ACS AET65 ICC Reader 072F 224A AMR220-C ACS AMR220 Reader 072F 8201 APG8201-A1 ACS APG8201 072F 8206 APG8201-B2 ACS APG8201-B2 072F 8207 APG8201-B2RO ACS ACR83U 072F 8202 [OEM Reader] [OEM Reader Name] 072F 8205 [OEM Reader] [OEM Reader Name] 072F 90DB CryptoMate64 ACS CryptoMate64 072F B200 ACOS5T1 ACS CryptoMate (T1) 072F B106 ACOS5T2 ACS CryptoMate (T2) 072F B112 ACOS5T2 ACS CryptoMate EVO non-CCID Readers VID PID Reader Reader Name ---- ---- ------------------- ----------------------------- 072F 9000 ACR38U ACS ACR38U 072F 90CF ACR38U-SAM ACS ACR38U-SAM 072F 90CE [OEM Reader] [OEM Reader Name] 072F 0101 AET65 ACS AET65 1SAM ICC Reader 072F 9006 CryptoMate ACS CryptoMate History ------- v1.1.11 (25/3/2024) - Add the following readers support: WalletMate II 1S CL Reader WalletMate II V2 Upgrade ACR1555 1S CL Reader ACR1555 USB FW_Upgrade - Enable WalletMate II (composite device) as multi-slot reader. - Enable the 2nd interface of WalletMate II as SAM slot. - Enable ACR1555U (composite device) as multi-slot reader. - Enable the 2nd interface of ACR1555U as SAM slot. v1.1.10 (1/8/2023) - Add the following readers support: ACR40U ICC Reader SCR FW_Upgrade ACR1552 1S CL Reader ACR1552 CL Reader ACR1552 USB FW_Upgrade - Enable ACR1552U-M1 (composite device) as multi-slot reader. - Enable the 2nd interface of ACR1552U-M1 as SAM slot. - Fix missing initialization in get_end_points(). - Update _usbDevice.has_interrupt in get_end_points(). - Initialize multislot for interrupt endpoint only in OpenUSBByName(). - Detect a card on macOS for interrupt endpoint only in OpenUSBByName(). - Simplify the code for delaying the write operation. - Allow ACR38 or the reader which needs write delay in WriteUSB(). - Check the packet size to avoid infinite loop in WriteUSB(). - Use #pragma pack(1) for all platforms in src/ifdhandler.c. v1.1.9 (15/3/2023) - Add the following readers support: APG8201-B2RO ACR39U-W1 Top Reader ACR39U-W1 Edge Reader WalletMate 1S CL Reader WalletMate USB FW_Upgrade ACR1581 1S Dual Reader ACR1581 USB FW_Upgrade ACR40T ICC Reader ACR40 FW_Upgrade ACR39 FW_Upgrade - Fix misleading read length in CCID_Receive(). - Use "buffer.h" instead of <openct/buffer.h>. - Merge with ccid 1.4.32. - ccid_open_hack_pre(): fix bug for ICCD type A & B devices. - Fix "Bus Error" on SPARC64 CPU and Solaris C compiler. - Add SCARD_ATTR_CHANNEL_ID for USB devices. - get_ccid_usb_interface(): No need to make the function EXTERNAL. - Merge with ccid 1.4.33. - Import files from ccid 1.4.33 to get Unicode support. - towitoko: do not use "bool" type. - configure: add --enable-oslog argument. - debug: add support of os_log(3) for macOS. - macOS: use --enable-oslog for macOS >= 10.12 - Enable syslog or oslog from deployment target in MacOSX/configure. - Fix ACR1281U-C1 communication issue with NXP SAM AV3. - Set arm64 and x86_64 for universal binary build in MacOSX/configure. - Fix segmentation fault for multi-slot readers on macOS Big Sur. - Merge with ccid 1.4.34. - T0ProcACK(): Fix a potential integer underflow. - Fix a potential crash in IFDHTransmitToICC(). - CmdPowerOn: fix log messages. - CmdPowerOn: fix a potential infinite loop. - T0ProcACK: fix a potential problem. - CmdPowerOn: fix a potential overrun with bogus ATR. - IFDHSetProtocolParameters(): Fix reading past the end-of-buffer. - CmdGetSlotStatus: fix potential read of uninitialized buffer. - ReadUSB: fix potential read of uninitialized buffer. - IFDHSetProtocolParameters: handle ATR_GetConvention() error. - PPS_Match: fix potential read of uninitialized buffer. - Fix potential reads of uninitialized buffer. - dw2i: fix potential integer overflow. - CCID_Transmit: call memcpy() only with a non-NULL src. - Do not report an error if the wrong interface is used by the driver. - Return "no smart card" if we get notified during a transmit. - Display libusb error code in text. - Add a new field dwProtocols in struct _ccid_descriptor. - Fail if the requested protocol is not supported by reader. - Fix potential memcpy call with null dest. - Merge with ccid 1.4.35. - Solve a performance issue with T=1 and CCID_CLASS_AUTO_PPS_PROP. - Reformat part of T0ProcACK(). - Fix a possible buffer overflow in T0ProcACK. - ccid_usb: ask for bNumDataRatesSupported data rates. - IFDHSetProtocolParameters: set IFSC/IFSD only for TPDU readers. - CmdPowerOn: fix debug message about Voltage. - Multi_PollingProc: use slot variable. - configure.ac: remove AC_HEADER_STDC. - configure.ac: remove AC_HEADER_TIME. - Import files from ccid 1.4.35. - Use ax_pthread.m4 macro from autoconf-archive. - Replace AM_PROG_LEX with AC_PROG_LEX([noyywrap]) in configure.ac. - Add ACS_APG8201_B2RO to src/ccid.h. - Disable card detection thread for APG8201-B2RO in OpenUSBByName(). - Return 6B 80 for APG8201-B2RO in CCID_Receive(). - Disable polling thread for APG8201-B2RO in IFDHGetCapabilities(). - Enable I/O controls for APG8201-B2RO in IFDHControl(). - Enable SPE pseudo APDU for APG8201-B2RO in process_spe_ppdu(). - Merge with ccid 1.4.36. - Code reformat: replace 4 spaces by 1 tab. - Enable ACR1252U-MW/MV (composite device) as multi-slot reader. - Enable the 2nd interface of ACR1252U-MW/MV as SAM slot. - Enable ACR1581U-C1 (composite device) as multi-slot reader. - Enable the 3rd interface of ACR1581U-C1 as SAM slot. - Enable SAM slot for ACR40T. - Update the status for SAM slot on macOS in CardDetectionThread(). - Disable polling thread for SAM slot in IFDHGetCapabilities(). - Remove unused TriggerSlotChange(). - Enable multislot extension for single slot readers in OpenUSBByName(). - Update the status for each slot in Multi_PollingProc(). - Use iconv.m4 macro from gettext. - Fix compiler warnings on macOS in CardDetectionThread(). - Enable ACR1581U-C1 to use bStatus in IFDHICCPresence(). v1.1.8 (6/1/2020) - Add the following readers support: ACR39U-W1 Top ICC Reader ACR39U-W1 Edge ICC Reader ACR1251T CL Reader - Import files from ccid 1.4.31. - Merge with ccid 1.4.31. - InterruptRead(): log the timeout used. - Remove response timeout fix for APG8201 and APG8201Z. v1.1.7 (24/7/2019) - Add the following readers support: ACR3201 ICC Reader CryptoMate EVO - Fix card detection issue for multi-slot readers on macOS. - Fix configuration descriptor issue on macOS in OpenUSBByName(). - Fix APG8201 response timeout issue. - Merge with ccid 1.4.5. - Do not build simclist with (unused) file dump option. - MacOSX/configure: fix checking error for dynamic library libusb. v1.1.6 (29/10/2018) - Add the following readers support: ACR1252 CL Reader (ACM1252U-Z2ACE) ACR1252 USB FW_Upgrade v100 (ACM1252U-Z2ACE BL) - Enable TLV properties for APG8201-B2 in IFDHControl(). - Enable TLV properties for APG8201-B2 in process_spe_ppdu(). - Fix ACR39U T=0 APDU problem in CmdXfrBlockTPDU_T0(). - Return 6B 80 for supported readers in CCID_Receive(). - Merge with ccid 1.4.29. - Remove extra_egt() causing problems. - Update the comment in IFDHControl(). - Fix undefined symbol yylex. - Set the status to absent if SAM reset failed in IFDHPowerICC(). - Merge with ccid 1.4.30. - Import files from ccid 1.4.30. - macOS: exit configure with an error when needed. - Fix libusb config descriptor leak. - Fix leaking an allocated bundle in case no matching reader was found. - InterruptStop(): Log the libusb text instead of number. - InterruptRead(): revert change. - Enable ICC extended APDU for ACR1281U-C1 >= v526. - Add IOCTL_SMARTCARD_TOGGLE_CARD_STATE for SAM slot. v1.1.5 (23/10/2017) - Add the following readers support: ACR1252IMP 1S CL Reader AMR220 Reader APG8201-B2 - Merge with ccid 1.4.26. - Fix spelling in log message. - PowerOn: use automatic voltage selection when needed. - PowerOn: move from 1.8V to 5V if 1.8V is not supported. - PowerOn: always try every possible voltage values. - PowerOn: default value comes from Info.plist. - MacOSX/configure: remove reference to libusbx. - MacOSX/configure: check static libusb will be used. - MacOSX/configure: move definition of MAC_VERSION. - ifdhandler: only GetNewReaderIndex() has to be thread protected. - FreeChannel(): release reader_index only after use. - Fix ACR39U memory card problem in IFDHSetProtocolParameters(). - Use CHECK_STATUS macro to check read/write status in acr38cmd.c. - Try 10 times to warm up the reader in CreateChannelByNameOrChannel(). - Merge with ccid 1.4.27. - InterruptRead(): return a valid IFDHandler code. - ccid_usb.c: document CCID composite devices. - Makefile.am: do not display udev message in red. - OpenUSBByName(): the device bus & addr must match. - CmdEscapeCheck(): signals buffer overflow. - OpenUSBByName(): simplify USE_COMPOSITE_AS_MULTISLOT code. - configure.ac: fix error message for SCardEstablishContext. - Return IFD_ERROR_INSUFFICIENT_BUFFER in IFDHControl(). - Rename ACR3901U ICC Reader to ACR3901 ICC Reader. - Merge with ccid 1.4.28. - udev rule: allow rule overwrite. - Makefile: add support of spaces in DESTDIR. - Process IOCTL_FEATURE_IFD_DISPLAY_PROPERTIES in IFDHControl(). - Process FEATURE_IFD_DISPLAY_PROPERTIES in process_spe_ppdu(). - Process IOCTL_FEATURE_GET_KEY in IFDHControl(). - Process FEATURE_GET_KEY in process_spe_ppdu(). - Process IOCTL_FEATURE_WRITE_DISPLAY in IFDHControl(). - Process FEATURE_WRITE_DISPLAY in process_spe_ppdu(). - Check for iconv. - Enable specific I/O controls for APG8201-B2 in IFDHControl(). v1.1.4 (7/12/2016) - Add the following readers support: ACR1261 CL Reader ACR1311 PICC Reader ACR1281 Dual Reader (ACR1281U-C2 UID Reader) - Merge with ccid 1.4.25. - Import src/misc.h. - log_msg(): log up to 3 lines of 80 characters. - Fix spelling error in a log message. - Add missing openct/README in distribution. - CmdXfrBlockCHAR_T0: returns an error when needed. - create_Info_plist.pl: fix typos in comment. - Remove extra spaces. - Fix incorrect message length for APG8201 v008I. v1.1.3 (22/6/2016) - Add the following readers support: ACR39U ID1 Card Reader ACR1251 CL Reader (ACM1251U-Z2) - Break if the device was disconnected in Multi_PollingProc(). - Merge with ccid 1.4.23. - MacOSX/configure: exit in error if configure failed. - InterruptRead(): log libusb error name. - Remove support of DRIVER_OPTION_RESET_ON_CLOSE. - Update URL in a comment. - ccid_usb.c: improve close_libusb_if_needed(). - Fix a busy loop consuming 100% of CPU. - Merge with ccid 1.4.15. - get_end_points(): be more strict for bInterfaceClass = 255. - Add control codes for Windows compatibility. - Merge with ccid 1.4.24. - ccid_usb.c: fix a race condition on multi reader. - CreateChannel: allow to use a non default timeout. - IFDHGetCapabilities: fix SCARD_ATTR_VENDOR_IFD_SERIAL_NO size. - Fix a race condition in CardDetectionThread(). - Avoid libusb timeout on Mac OS X in CreateChannelByNameOrChannel(). - Fix random order of interfaces in OpenUSBByName(). v1.1.2 (18/2/2016) - Return the second version in ACR83_GetFirmwareVersion(). - Disable SetParameters for OEM Reader (VID: 072F, PID: 8205) v029Z in ccid_open_hack_post(). - Merge with ccid 1.4.22. - Comments: Remove the $Id$ tag. - Move max() definition in a header file. - IFDHTransmitToICC: Reuse ccid_descriptor. - OpenUSBByName(): use device bus and address only when available. - IFDHCloseChannel(): use FreeChannel(). - CreateChannelByNameOrChannel(): call FreeChannel() in case of error. - OpenUSBByName(): do not call close_libusb_if_needed(). - OpenUSBByName(): read Info.plist only once. - OpenUSBByName(): add some low level debug. - OpenUSBByName(): fix possible use of uninitialized variable. v1.1.1 (3/11/2015) - Fix the mutex lock problem in Multi_InterruptRead(). - Fix uninitialized variable warning in ACR38_CmdPowerOn(). - Fix APDU sequence bug in ACR122U. - Merge with ccid 1.4.19. - Use libusb_error_name() instead of strerror(). - Ignore errno and use libusb returned value only. - IFDHSleep(): timout parameter is in ms not µs. - Enable syslog logging on Yosemite. - Merge with ccid 1.4.20. - MacOSX/configure: use /usr/local/libexec/... on El Capitan. - Merge with ccid 1.4.21. - Use libusb_error_name() to display the error name. - OpenUSBByName(): add more time on Mac OS X. - OpenUSBByName(): fix the order of interfaces in log. - OpenUSBByName(): free the device list in case of error. - Info.plist: use hex values in the documentation. - Replace ccid_error() with acr38_error() in ACR38_Receive(). - Update LIBUSB_NEEDED_VERSION to 1.0.9 in configure.ac. - Return IFD_ERROR_INSUFFICIENT_BUFFER if rx_length < 2 in CCID_Receive(). - Return 64 02 if two "new PIN" entries do not match in CCID_Receive(). - Implements SPE pseudo APDU from PC/SC v2.02.02 Part 10 Supplement. - Enable bPPDUSupport over SCardTransmit in IFDHControl(). - Return 6B 80 if the parameter is invalid in SecurePINVerify(). - Return 6B 80 if the parameter is invalid in SecurePINModify(). - Fix segmentation fault on Mac OS X in CardDetectionThread(). - Break if the device was disconnected in CardDetectionThread(). - Use pthread_exit() in CardDetectionThread(). - Add the following readers support: ACR1251 Reader ACR3201 ICC Reader OEM Reader (VID: 072F, PID: 8205) v1.1.0 (10/12/2014) - Add the following readers support: ACR1255U-J1 PICC Reader - Fix the PICC detection problem in ACR1281 2S CL Reader. - Merge with ccid 1.4.18. - Fix the memory leak in Multi_PollingProc(). - Fix the compilation warnings. v1.0.8 (3/7/2014) - Add the following readers support: ACS ACR1252U BADANAMU MAGIC READER ACS ACR1261 1S Dual Reader - Change the delay of cold reset to 10 ms. - Remove the checking of specific mode before setting the parameters. v1.0.7 (16/6/2014) - Fix ACR39U card power on problem. - Add the following readers support: ACR1251 1S Dual Reader CryptoMate (T1) CryptoMate (T2) - Remove ChangeLog from DISTCLEANFILES. v1.0.6 (17/4/2014) - Add the following readers support: ACR32 ICC Reader ACR1251K Dual Reader ACR1252 1S CL Reader ACR1252 CL Reader ACR1252 USB FW_Upgrade v100 ACR1256U PICC Reader - Fix ACR32 incorrect max slot index. - Get the data rates if bNumDataRatesSupported is not equal to zero. - Merge the fixes from ccid: Use ATTRS{bInterfaceClass}=="0b" in src/pcscd_acsccid.rules. Fix the buffer overflow in ATR_InitFromArray(). Fix the T1 resync problem. v1.0.5 (2/9/2013) - Fix a bug that ACR38U cannot select the card type reading from Info.plist on Linux x64 platform. - Fix a bug that ACR1222U-C1 and ACR39U cannot detect the card. - Fix a bug that the driver cannot start the debug mode on Mac OS X 10.8. - Import udev rules from ccid-1.4.12 to remove pcscd group support. - Add the following readers support: ACR3901U ICC Reader ACR123 3S Reader ACR123 PICC Reader ACR123US_BL ACR1251U-C Smart Card Reader (SAM) ACR1251U-C Smart Card Reader ACR1281U-K PICC Reader ACR1281U-K Dual Reader ACR1281U-K 1S Dual Reader ACR1281U-K 4S Dual Reader v1.0.4 (15/6/2012) - Add the following readers support: ACR39U ICC Reader ACR39K ICC Reader ACR39T ICC Reader ACR39F ICC Reader ACR39U-SAM ICC Reader ACR1251 1S CL Reader ACR1251 CL Reader OEM Reader (VID: 072F, PID: 222D) ACR1283 4S CL Reader ACR1283 CL Reader ACR1283U FW Upgrade - Fix a bug that only the first slot of reader (composite device) can be used if pcsc-lite is compiled with libudev support. - Fix a bug that APG8201 causes segmentation fault with pcsc-lite 1.8.2. - Fix a bug that the SAM slot support is not enabled for ACR1281 1S PICC Reader if the configure option "--enable-composite-as-multislot" is not used. - Enable silent build and disable static library creation. - Remove symbolic link creation. - Fix a bug that pcscd causes segmentation fault on Mac OS X after unloading the driver. - Display default message for ACR83U. v1.0.3 (13/1/2012) - Add the following readers support: ACR1281 PICC Reader (qPBOC) ACR1281 1S Dual Reader ACR1281 2S CL Reader ACR33 ICC Reader ACR1281 1S PICC Reader ACR38U ACR38U-SAM OEM Reader (VID: 072F, PID: 90CE) CryptoMate OEM Reader (VID: 072F, PID: 8202) ACR1222 1SAM PICC Reader (ACR1222U-C1) ACR1222 1SAM PICC Reader (ACR1222U-C8) ACR89 ICC Reader ACR89 Dual Reader ACR89 FP Reader AET62 PICC Reader AET62 1SAM PICC Reader AET65 ICC Reader AET65 1SAM ICC Reader CryptoMate64 - Import udev rules from ccid-1.4.3 to support pcscd auto-start. - Fix reader hang problem by checking card status of ACR85 PICC before exchanging APDU. - Correct the code that enabling polling mode is applied to ACR122U only and not all ACS readers. - Fix a problem that the optimal baud rate is not selected properly in IFDHSetProtocolParameters(). - Perform cold reset and try default Fl/Dl (0x11) if PPS_Exchange() or SetParameters() is failed in IFDHSetProtocolParameters(). - Protocol parameters will not be set in IFDHSetProtocolParameters() if card is specific mode. - Correct the value of CCID features and maximum data rate of ACR88U and ACR128U. - Add BSI miscellaneous command to return driver version for ACR1281 BSI readers. - Correct the value of CCID features and maximum data rate of ACR1281 1S Dual Reader. - Fix problem using pcsc-lite 1.7.3 or later header files. - Add SCARD_CTL_CODE(2079) support for sending escape command to ACR1222, ACR128 and ACR1281 readers. - Add firmware version check for ACR85. - Change PID of ACR33 ICC reader from 0x8306 to 0x8307 because 0x8306 is used by ACR85 ICC. - Check if the card supports the selected protocol before setting protocol in IFDHSetProtocolParameters() and return IFD_ERROR_PTS_FAILURE if the card does not support the selected protocol. On Mac OS X 10.6, pcscd will select wrong protocol if Starcos 3.2 card is inserted. - Rename "ACR1222L 3S CL Reader" to "ACR1222 3S PICC Reader". - Rename "ACR33 ICC Reader" to "ACS ACR33U-A1 3SAM ICC Reader", "ACS ACR33U-A2 3SAM ICC Reader", "ACS ACR33U-A3 3SAM ICC Reader" and "ACS ACR33U 4SAM ICC Reader". - Fix incorrect max slot index for ACR1222U-C1. - Enable SAM slot support. - Fix connection problem by setting default supported protocol to T=0 in IFDHSetProtocolParameters() if the card does not support any protocol. - Add SCARD_ATTR_ICC_INTERFACE_STATUS and SCARD_ATTR_ICC_PRESENCE support in IFDHGetCapabilities() (import from ccid-1.4.5). - Fix problem on getting IFSC from ATR (import from ccid-1.4.5). - Support extended APDU of up to 64kB with APDU readers (import from ccid-1.4.5). - Change CmdPowerOn() read timeout in IFDHPowerICC() from 4 seconds to 10 seconds. v1.0.2 (16/3/2011) - Add the following readers support: ACR125 nPA plus ACR1281 PICC Reader (BSI) ACR1281 Dual Reader (qPBOC) ACR1222 Dual Reader ACR1222 1SAM Dual Reader ACR83U ACR85 PINPad Reader APG8201 ACR100 ICC Reader ACR101 ICC Reader ACR102 ICC Reader ACR1222L 3S CL Reader ACR1281 CL Reader (qPBOC) ACR1281 Dual Reader (BSI) ACR3801 - Do not use separate thread to poll the slot ICC status due to poor performance of libusb v0.1.12. - Enable polling mode automatically for ACR122U v2.06. - Import Mac OS X 10.6 configure script from ccid-1.3.12. - Secure PIN Entry (SPE) support for ACR83U requires firmware version 4500 or later. - Add SCARD_CTL_CODE(3500) support for sending CCID escape command. - Add the following readers support: - Fix a bug that APG8201 and ACR85 cannot receive command properly if command length is greater than 64 bytes. - Set infinite timeout in T=0, Short APDU and Extended APDU exchange. - Simulate ACR1281 Dual Reader (composite device) as multi-slot reader. - Improve performance and stability for ACR122U v2.00 - v2.04. - Replace acx_pthread.m4 with ax_pthread.m4 from autoconf archive. - Add the following driver options and these options are enabled by default: DRIVER_OPTION_REMOVE_PUPI_FROM_ATR Remove PUPI from ATR if ISO 14443-B card is detected (ACR1222). DRIVER_OPTION_DISABLE_PICC Disable PICC if ICC is inserted (ACR1222). - Add DRIVER_OPTION_REMOVE_PUPI_FROM_ATR and DRIVER_OPTION_DISABLE_PICC driver options to ACR85. - Simulate ACR85 as multi-slot reader. The first slot is ICC and the second slot is PICC. - Add firmware version check for ACR1222. The driver options are for ACR1222 v401 only. - Fix reader hang problem by checking card status of ACR85 PICC if SW1SW2 "63 00" is received. v1.0.1 (9/11/2009) - Remove firmware version check. - Modify the driver to use separate thread to poll the slot ICC states from interrupt endpoint. v1.0.0 (14/10/2009) - New release. - Based on ccid-1.3.11 (http://pcsclite.alioth.debian.org/ccid.html). - Change CmdPowerOn() read timeout in IFDHPowerICC() from 60 seconds to 4 seconds. - Import Mac OS X 10.5 configure script from ccid-1.3.11. - Update AUTHORS and COPYING files. - Disable interrupt read in ccid_open_hack_pre() for all readers. It will cause the driver hang in ACR88U and ACR128U readers on Mac OS X. - There is a pcscd problem supporting multi-slot readers on Mac OS X. It will create duplicate reader name for each slot. ACR88U and ACR128U readers are affected by this bug. For more information, please refer to http://www.opensc-project.org/sca/wiki/LeopardBugs. - Test the driver on Mac OS X 10.6. Support ------- In case of problem, please contact ACS through: Web Site: http://www.acs.com.hk/ E-mail: [email protected] Tel: +852 2796 7873 Fax: +852 2796 1286 ------------------------------------------------------------------------------- Copyright (C) 2009-2024 Advanced Card Systems Ltd. Copyright (C) 2003-2011 Ludovic Rousseau Copyright (C) 2000-2001 Carlos Prados Copyright (C) 2003 Olaf Kirch Copyright (C) 1999-2002 Matthias Bruestle This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
About
acsccid is a PC/SC driver for Linux/Mac OS X and it supports ACS CCID smart card readers. This library provides a PC/SC IFD handler implementation and communicates with the readers through the PC/SC Lite resource manager (pcscd).
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published