This patch serie provides an implementation for the EFI_SMART_CARD_READER_PROTOCOL added in UEFI version 2.5.
It is a port of my CCID driver from Unix to UEFI. Only part of the code has been specifically written for UEFI and edk2. Only this part of the code follows the coding rules. The idea os to keep most of the code common to edk2 and my original CCID driver so code is easy to backport from one project to the other. patch 1: are files from the libccid project [1], GNU LGLP v2.1 patch 2: are files from the pcsc-lite project [2], TianoCore Contribution Agreement 1.0 patch 3: are files specifically written for edk2, TianoCore Contribution Agreement 1.0 patch 4: edit MdeModulePkg/MdeModulePkg.dsc to add the driver, TianoCore Contribution Agreement 1.0 The code has been tested on a Dell E6430 with an internal Broadcom smart card reader and also different external USB smart card readers. [1] https://pcsclite.alioth.debian.org/ccid.html [2] https://pcsclite.alioth.debian.org/pcsclite.html Ludovic Rousseau (4): MdeModulePkg/SmartCardReader: Add files from the libccid project MdeModulePkg/SmartCardReader: Add files from pcsc-lite project MdeModulePkg/SmartCardReader: Implement Smart Card Reader Protocol MdeModulePkg: add SmartCardReader.inf MdeModulePkg/Library/SmartCardReader/CcidDriver.c | 819 +++++++ MdeModulePkg/Library/SmartCardReader/CcidDriver.h | 154 ++ .../Library/SmartCardReader/ComponentName.c | 198 ++ .../Library/SmartCardReader/ComponentName.h | 128 ++ .../Library/SmartCardReader/DriverBinding.h | 211 ++ MdeModulePkg/Library/SmartCardReader/License.txt | 87 + .../Library/SmartCardReader/SmartCardReader.inf | 97 + .../Library/SmartCardReader/SmartCardReader_impl.c | 453 ++++ .../Library/SmartCardReader/SmartCardReader_impl.h | 94 + MdeModulePkg/Library/SmartCardReader/config.h | 64 + MdeModulePkg/Library/SmartCardReader/debug.c | 62 + MdeModulePkg/Library/SmartCardReader/debuglog.h | 81 + MdeModulePkg/Library/SmartCardReader/ifdhandler.h | 825 +++++++ .../Library/SmartCardReader/libccid/ccid.c | 659 ++++++ .../Library/SmartCardReader/libccid/ccid.h | 340 +++ .../SmartCardReader/libccid/ccid_ifdhandler.h | 63 + .../Library/SmartCardReader/libccid/ccid_uefi.c | 470 ++++ .../Library/SmartCardReader/libccid/ccid_uefi.h | 46 + .../Library/SmartCardReader/libccid/commands.c | 2294 ++++++++++++++++++++ .../Library/SmartCardReader/libccid/commands.h | 64 + .../Library/SmartCardReader/libccid/debug.c | 157 ++ .../Library/SmartCardReader/libccid/debug.h | 100 + .../Library/SmartCardReader/libccid/defs.h | 126 ++ .../Library/SmartCardReader/libccid/ifdhandler.c | 2265 +++++++++++++++++++ .../Library/SmartCardReader/libccid/openct/LICENSE | 28 + .../Library/SmartCardReader/libccid/openct/README | 7 + .../SmartCardReader/libccid/openct/buffer.c | 73 + .../SmartCardReader/libccid/openct/buffer.h | 36 + .../SmartCardReader/libccid/openct/checksum.c | 95 + .../SmartCardReader/libccid/openct/checksum.h | 37 + .../SmartCardReader/libccid/openct/proto-t1.c | 800 +++++++ .../SmartCardReader/libccid/openct/proto-t1.h | 85 + .../SmartCardReader/libccid/towitoko/COPYING | 505 +++++ .../SmartCardReader/libccid/towitoko/README | 14 + .../Library/SmartCardReader/libccid/towitoko/atr.c | 365 ++++ .../Library/SmartCardReader/libccid/towitoko/atr.h | 111 + .../SmartCardReader/libccid/towitoko/defines.h | 56 + .../Library/SmartCardReader/libccid/towitoko/pps.c | 136 ++ .../Library/SmartCardReader/libccid/towitoko/pps.h | 71 + .../Library/SmartCardReader/libccid/utils.c | 85 + .../Library/SmartCardReader/libccid/utils.h | 33 + MdeModulePkg/Library/SmartCardReader/misc.h | 88 + MdeModulePkg/Library/SmartCardReader/pcsclite.h | 65 + MdeModulePkg/Library/SmartCardReader/reader.h | 285 +++ MdeModulePkg/Library/SmartCardReader/wintypes.h | 120 + MdeModulePkg/MdeModulePkg.dsc | 1 + 46 files changed, 12953 insertions(+) create mode 100644 MdeModulePkg/Library/SmartCardReader/CcidDriver.c create mode 100644 MdeModulePkg/Library/SmartCardReader/CcidDriver.h create mode 100644 MdeModulePkg/Library/SmartCardReader/ComponentName.c create mode 100644 MdeModulePkg/Library/SmartCardReader/ComponentName.h create mode 100644 MdeModulePkg/Library/SmartCardReader/DriverBinding.h create mode 100644 MdeModulePkg/Library/SmartCardReader/License.txt create mode 100644 MdeModulePkg/Library/SmartCardReader/SmartCardReader.inf create mode 100644 MdeModulePkg/Library/SmartCardReader/SmartCardReader_impl.c create mode 100644 MdeModulePkg/Library/SmartCardReader/SmartCardReader_impl.h create mode 100644 MdeModulePkg/Library/SmartCardReader/config.h create mode 100644 MdeModulePkg/Library/SmartCardReader/debug.c create mode 100644 MdeModulePkg/Library/SmartCardReader/debuglog.h create mode 100644 MdeModulePkg/Library/SmartCardReader/ifdhandler.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/ccid.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/ccid.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/ccid_ifdhandler.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/ccid_uefi.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/ccid_uefi.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/commands.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/commands.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/debug.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/debug.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/defs.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/ifdhandler.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/openct/LICENSE create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/openct/README create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/openct/buffer.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/openct/buffer.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/openct/checksum.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/openct/checksum.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/openct/proto-t1.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/openct/proto-t1.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/towitoko/COPYING create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/towitoko/README create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/towitoko/atr.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/towitoko/atr.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/towitoko/defines.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/towitoko/pps.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/towitoko/pps.h create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/utils.c create mode 100644 MdeModulePkg/Library/SmartCardReader/libccid/utils.h create mode 100644 MdeModulePkg/Library/SmartCardReader/misc.h create mode 100644 MdeModulePkg/Library/SmartCardReader/pcsclite.h create mode 100644 MdeModulePkg/Library/SmartCardReader/reader.h create mode 100644 MdeModulePkg/Library/SmartCardReader/wintypes.h -- 2.1.4 ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel