diff --git a/ChangeLog b/ChangeLog index 5880994..e5168ff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,163 @@ -commit 8f33a2ff60919f579ee17012e91f927491ef70be (HEAD -> master, tag: ccid-1.4.32, origin/master, origin/HEAD) +commit 4a0359f22ed0dc668d09459c2be97009e5669969 (HEAD -> master, tag: ccid-1.4.33, zotac/master, origin/master, origin/HEAD, github/master) +Author: Ludovic Rousseau +Date: Thu Jun 25 20:17:51 2020 +0200 + + Release 1.4.33 + + README.md | 11 +++++++++++ + configure.ac | 2 +- + 2 files changed, 12 insertions(+), 1 deletion(-) + +commit cf394e8cb34b20665d2966ca4e4af41f14e283de +Author: Ludovic Rousseau +Date: Thu Jun 25 20:09:31 2020 +0200 + + Add Swissbit Secure USB PU-50n SE/PE + + readers/Swissbit_Secure_USB_PU-50n_SE-PE.txt | 53 ++++++++++++++++++++++++++++ + readers/supported_readers.txt | 5 ++- + 2 files changed, 57 insertions(+), 1 deletion(-) + +commit e36702a474a853d1a398ae552486db7ece545593 +Author: Ludovic Rousseau +Date: Thu Jun 18 09:44:25 2020 +0200 + + Add TOPPAN FORMS CO.,LTD TC63CUT021 + + readers/TOPPAN_FORMS_TC63CUT021.txt | 568 ++++++++++++++++++++++++++++++++++++ + readers/supported_readers.txt | 5 +- + 2 files changed, 572 insertions(+), 1 deletion(-) + +commit c11a42753125a8de8a4746afcbb5b15426509416 +Author: Ludovic Rousseau +Date: Mon Jun 15 15:35:24 2020 +0200 + + Add Genesys Logic CCID Card Reader (idProduct: 0x0771) + + readers/Genesys_Logic_CCID_Card_Reader_0x0771.txt | 112 ++++++++++++++++++++++ + readers/supported_readers.txt | 3 +- + 2 files changed, 114 insertions(+), 1 deletion(-) + +commit e782d48c44ac6f6c703f69d007cf26d5bdee06bd +Author: Ludovic Rousseau +Date: Tue May 26 17:10:33 2020 +0200 + + macOS: use --enable-oslog for macOS >= 10.12 + + Use the new logging mechanism for macOS >= 10.12 (Sierra). + + MacOSX/configure | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +commit 5b9ac9c9e121111268bc36b9c0bc81bf5a451c02 +Author: Ludovic Rousseau +Date: Tue May 26 17:04:36 2020 +0200 + + debug: add support of os_log(3) for macOS + + macOS uses a new logging mechanism to replace systlog(). + + You can see the log traces using: + log stream --predicate 'process == "com.apple.ifdreader"' + or + log stream --predicate 'process == "com.apple.ifdreader"' --debug + + src/ccid.c | 5 +++++ + src/debug.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/debug.h | 31 +++++++++++++++++++++++++++++++ + 3 files changed, 93 insertions(+) + +commit 63fc3fcaf9260ecd03e0a46828552f9da5805087 +Author: Ludovic Rousseau +Date: Tue May 26 17:01:51 2020 +0200 + + configure: add --enable-oslog argument + + Define USE_OS_LOG when --enable-oslog is used. + + configure.ac | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +commit fd2511e53e53845011091b902a9df2e067f5ed7e +Author: Ludovic Rousseau +Date: Tue May 26 11:58:29 2020 +0200 + + towitoko: do not use "bool" type + + Use an explicit "int" in the source code. + + Compilation fails on macOS when is used. + + ./towitoko/defines.h:52:28: error: cannot combine with previous 'int' + declaration specifier + typedef int bool; + ^ + /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/include/stdbool.h:31:14: note: + expanded from macro 'bool' + ^ + In file included from ifdhandler.c:49: + In file included from ./towitoko/atr.h:26: + ./towitoko/defines.h:52:1: warning: typedef requires a name + [-Wmissing-declarations] + typedef int bool; + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + src/towitoko/atr.h | 2 +- + src/towitoko/defines.h | 4 ---- + src/towitoko/pps.c | 4 ++-- + 3 files changed, 3 insertions(+), 7 deletions(-) + +commit 4350da44df0c2735b13eaa8201501f50ebd992fd +Author: Ludovic Rousseau +Date: Sat May 16 16:53:38 2020 +0200 + + Update PCSC submodule to get Unicode support + + PCSC | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d8a7f95ff5719e151b862fe08cc9963553f6ca99 +Author: Ludovic Rousseau +Date: Mon May 11 23:50:17 2020 +0200 + + Move CHERRY SECURE BOARD 1.0 in supported list + + readers/supported_readers.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 008f2c5b0dee0f22097acfba9e7ae3728fc3d680 +Author: Ludovic Rousseau +Date: Wed Apr 29 15:18:10 2020 +0200 + + HID_OMNIKEY_5422.txt: updated CCID descriptor + + readers/HID_OMNIKEY_5422.txt | 21 ++++++++++++++------- + 1 file changed, 14 insertions(+), 7 deletions(-) + +commit c6e4c082b2e895be03c5d1a5e4fb7965d04ce997 +Author: Ludovic Rousseau +Date: Fri Apr 24 11:50:50 2020 +0200 + + Fix typo in comment + + examples/scardcontrol.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a940d8994864e186ee7cc8ff01d8dac050af9f56 +Author: Ludovic Rousseau +Date: Wed Apr 22 14:52:34 2020 +0200 + + Fix compiler warning + + scardcontrol.c:851:27: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘DWORD’ {aka ‘long unsigned int’} [-Wformat=] + printf(" card response [%d bytes]:", length); + ~^ ~~~~~~ + %ld + + examples/scardcontrol.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 8f33a2ff60919f579ee17012e91f927491ef70be (tag: ccid-1.4.32) Author: Ludovic Rousseau Date: Wed Apr 22 11:14:30 2020 +0200 @@ -9,7 +168,7 @@ Date: Wed Apr 22 11:14:30 2020 +0200 ylwrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -commit 6d5c45d826219ded210e0dcf0038ccb632b036a9 (zotac/master) +commit 6d5c45d826219ded210e0dcf0038ccb632b036a9 Author: Ludovic Rousseau Date: Wed Apr 22 11:12:28 2020 +0200 @@ -162,7 +321,7 @@ Date: Wed Apr 15 11:21:15 2020 +0200 src/ccid_usb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -commit 4c8c809751211d35f4d417e1b086a554a79fd6e6 (github/master, usb) +commit 4c8c809751211d35f4d417e1b086a554a79fd6e6 (usb) Author: Stephan Guilloux (home) Date: Tue Apr 14 13:19:45 2020 +0200 diff --git a/MacOSX/configure b/MacOSX/configure index 96d6464..9409c9f 100755 --- a/MacOSX/configure +++ b/MacOSX/configure @@ -92,8 +92,14 @@ CONFIGURE_ARGS="--disable-dependency-tracking" # Are we on a CryptoTokenKit system? (like Mac OS X 10.10 Yosemite) if [ -d /System/Library/CryptoTokenKit ] then - # so we use syslog(3) to log errors - CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-syslog" + if [ 10012 -gt $MAC_VERSION ] + then + # use syslog(3) to logs for macOS < 10.12 + CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-syslog" + else + # use os_log(3) to logs for macOS >= 10.12 + CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-oslog" + fi fi # Check where to install the driver diff --git a/MacOSX/ifdhandler.h b/MacOSX/ifdhandler.h index a2f9f73..5f596d9 100644 --- a/MacOSX/ifdhandler.h +++ b/MacOSX/ifdhandler.h @@ -673,7 +673,7 @@ don't mind loading a new driver for each reader then ignore @p Lun. @param[out] Value Value of the desired data This function is also called when the application uses the PC/SC -SCardGetAttrib() function. The list of supported tags is not limited. +SCardSetAttrib() function. The list of supported tags is not limited. @return Error codes @retval IFD_SUCCESS Successful (\ref IFD_SUCCESS) diff --git a/MacOSX/reader.h b/MacOSX/reader.h index 7dae763..7c8a802 100644 --- a/MacOSX/reader.h +++ b/MacOSX/reader.h @@ -187,7 +187,7 @@ typedef struct uint8_t bEntryValidationCondition; /**< Conditions under which PIN entry should * be considered complete */ uint8_t bNumberMessage; /**< Number of messages to display for PIN verification */ - uint16_t wLangId; /**< Language for messages */ + uint16_t wLangId; /**< Language for messages. https://docs.microsoft.com/en-us/windows/win32/intl/language-identifier-constants-and-strings */ uint8_t bMsgIndex; /**< Message index (should be 00) */ uint8_t bTeoPrologue[3]; /**< T=1 block prologue field to use (fill with 00) */ uint32_t ulDataLength; /**< length of Data to be sent to the ICC */ @@ -224,7 +224,7 @@ typedef struct uint8_t bEntryValidationCondition; /**< Conditions under which PIN entry should * be considered complete */ uint8_t bNumberMessage; /**< Number of messages to display for PIN verification*/ - uint16_t wLangId; /**< Language for messages */ + uint16_t wLangId; /**< Language for messages. https://docs.microsoft.com/en-us/windows/win32/intl/language-identifier-constants-and-strings */ uint8_t bMsgIndex1; /**< index of 1st prompting message */ uint8_t bMsgIndex2; /**< index of 2d prompting message */ uint8_t bMsgIndex3; /**< index of 3d prompting message */ diff --git a/README.md b/README.md index de425f2..de90c3a 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,17 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. History: ======== +1.4.33 - 25 June 2020, Ludovic Rousseau + - Add support of + - Genesys Logic CCID Card Reader (idProduct: 0x0771) + - Swissbit Secure USB PU-50n SE/PE + - TOPPAN FORMS CO.,LTD TC63CUT021 + - add --enable-oslog argument for macOS + use os_log(3) for macOS >= 10.12 (Sierra) + - Update PCSC submodule to get Unicode support + - Some minor improvements + + 1.4.32 - 22 April 2020, Ludovic Rousseau - Add support of - AF Care One (idProduct: 0xAFC0) diff --git a/aclocal.m4 b/aclocal.m4 index 8fea2de..9a395e8 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -20,9 +20,9 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -dnl serial 11 (pkg-config-0.29) -dnl +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 12 (pkg-config-0.29.2) + dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl @@ -63,7 +63,7 @@ dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29]) +[m4_define([PKG_MACROS_VERSION], [0.29.2]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -164,7 +164,7 @@ AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no -AC_MSG_CHECKING([for $1]) +AC_MSG_CHECKING([for $2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) @@ -174,11 +174,11 @@ and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else + else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs @@ -195,7 +195,7 @@ installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full diff --git a/config.h.in b/config.h.in index 1499420..1e4d64c 100644 --- a/config.h.in +++ b/config.h.in @@ -127,6 +127,9 @@ /* composite device are seen as multi-slots */ #undef USE_COMPOSITE_AS_MULTISLOT +/* Use os_log(3) for debug */ +#undef USE_OS_LOG + /* Use syslog(3) for debug */ #undef USE_SYSLOG diff --git a/configure b/configure index f0a2a2e..95e1dd7 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ccid 1.4.32. +# Generated by GNU Autoconf 2.69 for ccid 1.4.33. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ccid' PACKAGE_TARNAME='ccid' -PACKAGE_VERSION='1.4.32' -PACKAGE_STRING='ccid 1.4.32' +PACKAGE_VERSION='1.4.33' +PACKAGE_STRING='ccid 1.4.33' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -807,6 +807,7 @@ enable_ccidtwindir enable_serialconfdir enable_pcsclite enable_syslog +enable_oslog enable_class enable_embedded enable_zlp @@ -1378,7 +1379,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ccid 1.4.32 to adapt to many kinds of systems. +\`configure' configures ccid 1.4.33 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1449,7 +1450,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ccid 1.4.32:";; + short | recursive ) echo "Configuration of ccid 1.4.33:";; esac cat <<\_ACEOF @@ -1486,7 +1487,10 @@ Optional Features: directory containing serial drivers (default to pcscd config) --disable-pcsclite do not use pcsc-lite debug support - --enable-syslog use syslog instead of printf for debug (Yosemite) + --enable-syslog use syslog(3) instead of printf() for debug + (Yosemite 10.10) + --enable-oslog use os_log(3) instead of printf() for debug (Sierra + 10.12) --disable-class remove the CCIDCLASSDRIVER from Info.plist --enable-embedded limit RAM and CPU ressources by disabling features (log) @@ -1593,7 +1597,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ccid configure 1.4.32 +ccid configure 1.4.33 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2012,7 +2016,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ccid $as_me 1.4.32, which was +It was created by ccid $as_me 1.4.33, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2876,7 +2880,7 @@ fi # Define the identity of the package. PACKAGE='ccid' - VERSION='1.4.32' + VERSION='1.4.33' cat >>confdefs.h <<_ACEOF @@ -4803,8 +4807,8 @@ if test -n "$PKG_CONFIG" && \ test $ac_status = 0; }; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PCSC" >&5 -$as_echo_n "checking for PCSC... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libpcsclite >= $PCSC_NEEDED_VERSION" >&5 +$as_echo_n "checking for libpcsclite >= $PCSC_NEEDED_VERSION... " >&6; } if test -n "$PCSC_CFLAGS"; then pkg_cv_PCSC_CFLAGS="$PCSC_CFLAGS" @@ -4844,7 +4848,7 @@ fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -4869,7 +4873,7 @@ $as_echo "$as_me: WARNING: install pcsc-lite $PCSC_NEEDED_VERSION or later" >&2; fi elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test -f /usr/local/lib/pkgconfig/libpcsclite.pc -a "x$PKG_CONFIG" != x ; then @@ -13095,8 +13099,8 @@ if test "x$use_libusb" != xno ; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBUSB" >&5 -$as_echo_n "checking for LIBUSB... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libusb-1.0 >= $LIBUSB_NEEDED_VERSION" >&5 +$as_echo_n "checking for libusb-1.0 >= $LIBUSB_NEEDED_VERSION... " >&6; } if test -n "$LIBUSB_CFLAGS"; then pkg_cv_LIBUSB_CFLAGS="$LIBUSB_CFLAGS" @@ -13136,7 +13140,7 @@ fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13157,8 +13161,8 @@ fi $as_echo "$as_me: WARNING: install libusb $LIBUSB_NEEDED_VERSION or later" >&2;} pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBUSB" >&5 -$as_echo_n "checking for LIBUSB... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libusb-1.0" >&5 +$as_echo_n "checking for libusb-1.0... " >&6; } if test -n "$LIBUSB_CFLAGS"; then pkg_cv_LIBUSB_CFLAGS="$LIBUSB_CFLAGS" @@ -13198,7 +13202,7 @@ fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13225,7 +13229,7 @@ Alternatively, you may set the environment variables LIBUSB_CFLAGS and LIBUSB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -13248,15 +13252,15 @@ $as_echo "yes" >&6; } fi elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: install libusb $LIBUSB_NEEDED_VERSION or later" >&5 $as_echo "$as_me: WARNING: install libusb $LIBUSB_NEEDED_VERSION or later" >&2;} pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBUSB" >&5 -$as_echo_n "checking for LIBUSB... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libusb-1.0" >&5 +$as_echo_n "checking for libusb-1.0... " >&6; } if test -n "$LIBUSB_CFLAGS"; then pkg_cv_LIBUSB_CFLAGS="$LIBUSB_CFLAGS" @@ -13296,7 +13300,7 @@ fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -13323,7 +13327,7 @@ Alternatively, you may set the environment variables LIBUSB_CFLAGS and LIBUSB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -14019,6 +14023,21 @@ $as_echo "#define USE_SYSLOG 1" >>confdefs.h fi +# --enable-oslog +# Check whether --enable-oslog was given. +if test "${enable_oslog+set}" = set; then : + enableval=$enable_oslog; use_oslog="${enableval}" +else + use_oslog=no +fi + + +if test x$use_oslog = xyes; then + +$as_echo "#define USE_OS_LOG 1" >>confdefs.h + +fi + # --disable-class # Check whether --enable-class was given. @@ -14160,6 +14179,7 @@ serial twin install dir: ${ccidtwindir} serial config directory: ${serialconfdir} compiled for pcsc-lite: ${pcsclite} syslog debug: ${use_syslog} +os_log debug: ${use_oslog} class driver: ${class} EOF @@ -14714,7 +14734,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ccid $as_me 1.4.32, which was +This file was extended by ccid $as_me 1.4.33, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14780,7 +14800,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ccid config.status 1.4.32 +ccid config.status 1.4.33 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 8d76e2e..03364f6 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ # Require autoconf 2.61 AC_PREREQ([2.69]) -AC_INIT([ccid],[1.4.32]) +AC_INIT([ccid],[1.4.33]) AC_CONFIG_SRCDIR(src/ifdhandler.c) AC_CONFIG_AUX_DIR([.]) AM_INIT_AUTOMAKE(1.8 dist-bzip2 no-dist-gzip subdir-objects foreign) @@ -239,13 +239,22 @@ AM_CONDITIONAL(WITHOUT_PCSC, test "${pcsclite}" != "yes") # --enable-syslog AC_ARG_ENABLE(syslog, - AS_HELP_STRING([--enable-syslog],[use syslog instead of printf for debug (Yosemite)]), + AS_HELP_STRING([--enable-syslog],[use syslog(3) instead of printf() for debug (Yosemite 10.10)]), [ use_syslog="${enableval}" ], [ use_syslog=no ] ) if test x$use_syslog = xyes; then AC_DEFINE(USE_SYSLOG, 1, [Use syslog(3) for debug]) fi +# --enable-oslog +AC_ARG_ENABLE(oslog, + AS_HELP_STRING([--enable-oslog],[use os_log(3) instead of printf() for debug (Sierra 10.12)]), + [ use_oslog="${enableval}" ], [ use_oslog=no ] ) + +if test x$use_oslog = xyes; then + AC_DEFINE(USE_OS_LOG, 1, [Use os_log(3) for debug]) +fi + # --disable-class AC_ARG_ENABLE(class, @@ -321,6 +330,7 @@ serial twin install dir: ${ccidtwindir} serial config directory: ${serialconfdir} compiled for pcsc-lite: ${pcsclite} syslog debug: ${use_syslog} +os_log debug: ${use_oslog} class driver: ${class} EOF diff --git a/examples/scardcontrol.c b/examples/scardcontrol.c index f61a37f..294aba0 100644 --- a/examples/scardcontrol.c +++ b/examples/scardcontrol.c @@ -251,7 +251,7 @@ int main(int argc, char *argv[]) /* table for bEntryValidationCondition * 0x01: Max size reached * 0x02: Validation key pressed - * 0x04: Timeout occured + * 0x04: Timeout occurred */ int bEntryValidationCondition = 7; @@ -848,7 +848,7 @@ int main(int argc, char *argv[]) error = TRUE; printf(error ? RED : GREEN); - printf(" card response [%d bytes]:", length); + printf(" card response [%"LF"d bytes]:", length); for (i=0; i /* from pcsc-lite */ +#ifdef USE_OS_LOG +#include + +#define DEBUG_CRITICAL(fmt) os_log_fault(OS_LOG_DEFAULT, fmt) +#define DEBUG_CRITICAL2(fmt, data1) os_log_fault(OS_LOG_DEFAULT, fmt, data1) +#define DEBUG_CRITICAL3(fmt, data1, data2) os_log_fault(OS_LOG_DEFAULT, fmt, data1, data2) +#define DEBUG_CRITICAL4(fmt, data1, data2, data3) os_log_fault(OS_LOG_DEFAULT, fmt, data1, data2, data3) +#define DEBUG_CRITICAL5(fmt, data1, data2, data3, data4) os_log_fault(OS_LOG_DEFAULT, fmt, data1, data2, data3, data4) + +#define DEBUG_INFO1(fmt) os_log_info(OS_LOG_DEFAULT, fmt) +#define DEBUG_INFO2(fmt, data1) os_log_info(OS_LOG_DEFAULT, fmt, data1) +#define DEBUG_INFO3(fmt, data1, data2) os_log_info(OS_LOG_DEFAULT, fmt, data1, data2) +#define DEBUG_INFO4(fmt, data1, data2, data3) os_log_info(OS_LOG_DEFAULT, fmt, data1, data2, data3) +#define DEBUG_INFO5(fmt, data1, data2, data3, data4) os_log_info(OS_LOG_DEFAULT, fmt, data1, data2, data3, data4) + +#define DEBUG_PERIODIC(fmt) os_log_debug(OS_LOG_DEFAULT, fmt) +#define DEBUG_PERIODIC2(fmt, data1) os_log_debug(OS_LOG_DEFAULT, fmt, data1) +#define DEBUG_PERIODIC3(fmt, data1, data2) os_log_debug(OS_LOG_DEFAULT, fmt, data1, data2) + +#define DEBUG_COMM(fmt) os_log_info(OS_LOG_DEFAULT, fmt) +#define DEBUG_COMM2(fmt, data1) os_log_info(OS_LOG_DEFAULT, fmt, data1) +#define DEBUG_COMM3(fmt, data1, data2) os_log_info(OS_LOG_DEFAULT, fmt, data1, data2) +#define DEBUG_COMM4(fmt, data1, data2, data3) os_log_info(OS_LOG_DEFAULT, fmt, data1, data2, data3) + +#define DEBUG_INFO_XXD(msg, buffer, size) if (LogLevel & DEBUG_LEVEL_INFO) log_xxd(PCSC_LOG_INFO, msg, buffer, size) +#define DEBUG_XXD(msg, buffer, size) if (LogLevel & DEBUG_LEVEL_COMM) log_xxd(PCSC_LOG_DEBUG, msg, buffer, size) + +#else + /* DEBUG_CRITICAL */ #define DEBUG_CRITICAL(fmt) if (LogLevel & DEBUG_LEVEL_CRITICAL) Log1(PCSC_LOG_CRITICAL, fmt) @@ -94,3 +123,5 @@ extern int LogLevel; #endif +#endif + diff --git a/src/tokenparser.l b/src/tokenparser.l index 0d58a69..e829a36 100644 --- a/src/tokenparser.l +++ b/src/tokenparser.l @@ -72,7 +72,7 @@ static list_t *ListValues; "\n" {} \([A-Z]|[a-z]|[0-9]|[ \t])+\<\/key\> { eval_key(yytext, ListKeys); } [ \t] {} -\([A-Z]|[a-z]|[0-9]|[ \t]|[!@#$%^&*()\-+/_\:?.,=~'";\[\]])+\<\/string\> { eval_value(yytext, ListValues); } +\.+\<\/string\> { eval_value(yytext, ListValues); } . { tperrorCheck(yytext); } %% diff --git a/src/towitoko/atr.h b/src/towitoko/atr.h index abe48c3..1e705c5 100644 --- a/src/towitoko/atr.h +++ b/src/towitoko/atr.h @@ -82,7 +82,7 @@ typedef struct struct { BYTE value; - bool present; + int present; } ib[ATR_MAX_PROTOCOLS][ATR_MAX_IB], TCK; unsigned pn; diff --git a/src/towitoko/defines.h b/src/towitoko/defines.h index abd5dbe..89b631b 100644 --- a/src/towitoko/defines.h +++ b/src/towitoko/defines.h @@ -48,9 +48,5 @@ #include -#ifndef __cplusplus -typedef int bool; -#endif - #endif /* DEFINES_H */ diff --git a/src/towitoko/pps.c b/src/towitoko/pps.c index cfe8e8d..d3b9bda 100644 --- a/src/towitoko/pps.c +++ b/src/towitoko/pps.c @@ -38,7 +38,7 @@ * Not exported funtions declaration */ -static bool PPS_Match (BYTE * request, unsigned len_request, BYTE * reply, unsigned len_reply); +static int PPS_Match (BYTE * request, unsigned len_request, BYTE * reply, unsigned len_reply); static unsigned PPS_GetLength (BYTE * block); @@ -86,7 +86,7 @@ PPS_Exchange (int lun, BYTE * params, unsigned *length, unsigned char *pps1) return ret; } -static bool +static int PPS_Match (BYTE * request, unsigned len_request, BYTE * confirm, unsigned len_confirm) { /* See if the reply differs from request */