- made establishpacechannel output independant from any byte order conversion.
little endian handling is done by the ccid-part. - pacelib exports PACE-functionality. git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@223 96b47cad-a561-4643-ad3b-153ac7d7599c
This commit is contained in:
@@ -1,2 +1,7 @@
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
SUBDIRS = src m4 patches
|
||||
|
||||
if WITH_PACE
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libpace.pc
|
||||
endif
|
||||
|
||||
@@ -12,6 +12,7 @@ AM_INIT_AUTOMAKE
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_LIBTOOL
|
||||
AM_PROG_CC_C_O
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
||||
@@ -62,34 +63,41 @@ AC_SUBST(PTHREAD_CFLAGS)
|
||||
AC_SUBST(PTHREAD_LIBS)
|
||||
AM_CONDITIONAL(WITH_CCID, test "${enable_ccid}" != "no")
|
||||
|
||||
|
||||
PKG_CHECK_EXISTS([libssl],
|
||||
[PKG_CHECK_MODULES([OPENSSL], [libssl])],
|
||||
[AC_MSG_WARN([libssl not found by pkg-config])])
|
||||
|
||||
saved_CPPFLAGS="$CPPFLAGS"
|
||||
saved_LIBS="$LIBS"
|
||||
CPPFLAGS="$CPPFLAGS $OPENSSL_CFLAGS"
|
||||
LIBS="$LDFLAGS $OPENSSL_LIBS"
|
||||
|
||||
AC_CHECK_HEADERS(openssl/evp.h, [], [ AC_MSG_ERROR([openssl/evp.h not found, install OpenSSL or use ./configure OPENSSL_CFLAGS=...]) ])
|
||||
AC_MSG_CHECKING([for EVP_read_pw_string_min])
|
||||
AC_TRY_LINK_FUNC(EVP_read_pw_string_min, [ AC_MSG_RESULT([yes]) ], [ AC_MSG_ERROR([OpenSSL not found, use ./configure OPENSSL_LIBS=...]) ])
|
||||
|
||||
# --enable-pace
|
||||
AC_ARG_ENABLE(pace,
|
||||
AS_HELP_STRING([--enable-pace], [Enable Password Authenticated Connection Establishment (PACE)]),
|
||||
[enable_pace="${enableval}"], [enable_pace=no])
|
||||
if test "x$enable_pace" != xno ; then
|
||||
PKG_CHECK_EXISTS([libssl],
|
||||
[PKG_CHECK_MODULES([OPENSSL], [libssl])],
|
||||
[AC_MSG_WARN([libssl not found by pkg-config])])
|
||||
|
||||
saved_CPPFLAGS="$CPPFLAGS"
|
||||
saved_LIBS="$LIBS"
|
||||
CPPFLAGS="$CPPFLAGS $OPENSSL_CFLAGS"
|
||||
LIBS="$LDFLAGS $OPENSSL_LIBS"
|
||||
|
||||
AC_CHECK_HEADERS(openssl/pace.h, [], [ AC_MSG_ERROR([openssl/pace.h not found, install OpenPACE or use ./configure OPENSSL_CFLAGS=...]) ])
|
||||
AC_MSG_CHECKING([for parse_ef_card_access])
|
||||
AC_TRY_LINK_FUNC(parse_ef_card_access, [ AC_MSG_RESULT([yes]) ], [ AC_MSG_ERROR([OpenPACE not found, use ./configure OPENSSL_LIBS=...]) ])
|
||||
|
||||
CPPFLAGS="$saved_CPPFLAGS"
|
||||
LIBS="$saved_LIBS"
|
||||
|
||||
enable_pace=yes
|
||||
fi
|
||||
|
||||
CPPFLAGS="$saved_CPPFLAGS"
|
||||
LIBS="$saved_LIBS"
|
||||
AC_SUBST(OPENSSL_CFLAGS)
|
||||
AC_SUBST(OPENSSL_LIBS)
|
||||
|
||||
AM_CONDITIONAL(WITH_PACE, test "${enable_pace}" != "no")
|
||||
AM_COND_IF(WITH_PACE, [AC_DEFINE(WITH_PACE, 1, [enable PACE support])])
|
||||
|
||||
|
||||
# --enable-ccid-test
|
||||
AC_ARG_ENABLE(ccid-test,
|
||||
AS_HELP_STRING([--enable-ccid-test], [Enable test of PACE smartcard reader]),
|
||||
@@ -166,8 +174,11 @@ PACE test for reader ${enable_ccid_test}
|
||||
|
||||
EOF
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
m4/Makefile
|
||||
patches/Makefile
|
||||
src/Makefile])
|
||||
src/Makefile
|
||||
libpace.pc
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
EXTRA_DIST = ccid-1.3.11.patch ccid-1.3.13.patch \
|
||||
pcsc-lite-1.5.5.patch pcsc-lite-1.6.1.patch \
|
||||
pcsclite_trunk_r5063.patch
|
||||
pcsclite_trunk_r5067.patch
|
||||
|
||||
@@ -1,27 +1,51 @@
|
||||
IFDNFC_LIB = libifdnfc.$(DYN_LIB_EXT)
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/src/pace -I$(top_builddir)/src/pace
|
||||
|
||||
ccid_emulator_SOURCES = ccid.c usbstring.c usb.c binutil.c scutil.c
|
||||
ccid_emulator_LDADD = $(OPENSC_LIBS) $(PTHREAD_LIBS)
|
||||
ccid_emulator_CFLAGS = $(OPENSC_CFLAGS) $(PTHREAD_CFLAGS)
|
||||
libpace_la_SOURCES = sm.c scutil.c pace.c pace_lib.c
|
||||
libpace_la_LIBADD = $(OPENSC_LIBS) $(OPENSSL_LIBS)
|
||||
libpace_la_CFLAGS = $(OPENSC_CFLAGS) $(OPENSSL_CFLAGS)
|
||||
|
||||
ccid_emulator_SOURCES = ccid.c usbstring.c usb.c binutil.c
|
||||
ccid_emulator_LDADD = $(OPENSC_LIBS) $(OPENSSL_LIBS) $(PTHREAD_LIBS)
|
||||
ccid_emulator_CFLAGS = $(OPENSC_CFLAGS) $(OPENSSL_CFLAGS) $(PTHREAD_CFLAGS)
|
||||
|
||||
ccid_test_SOURCES = ccid-test.c
|
||||
ccid_test_LDADD = $(PCSC_LIBS)
|
||||
ccid_test_CFLAGS = $(PCSC_CFLAGS)
|
||||
|
||||
pace_tool_SOURCES = sm.c pace-tool.c binutil.c scutil.c pace.c pace_lib.c
|
||||
pace_tool_LDADD = $(OPENSC_LIBS) $(OPENSSL_LIBS)
|
||||
pace_tool_SOURCES = pace-tool.c binutil.c
|
||||
pace_tool_LDADD = $(OPENSC_LIBS) $(OPENSSL_LIBS) libpace.la
|
||||
pace_tool_CFLAGS = $(OPENSC_CFLAGS) $(OPENSSL_CFLAGS)
|
||||
|
||||
bin_PROGRAMS =
|
||||
|
||||
noinst_HEADERS = \
|
||||
binutil.h \
|
||||
ccid.h \
|
||||
usbstring.h
|
||||
|
||||
if WITH_CCID
|
||||
bin_PROGRAMS += ccid-emulator ccid-test
|
||||
endif
|
||||
|
||||
|
||||
if WITH_PACE
|
||||
bin_PROGRAMS += pace-tool
|
||||
ccid_emulator_LDADD += libpace.la
|
||||
|
||||
ccid_emulator_SOURCES += sm.c pace.c pace_lib.c
|
||||
ccid_emulator_LDADD += $(OPENSSL_LIBS)
|
||||
ccid_emulator_CFLAGS += $(OPENSSL_CFLAGS)
|
||||
lib_LTLIBRARIES = libpace.la
|
||||
|
||||
nobase_include_HEADERS = \
|
||||
pace/sm.h \
|
||||
pace/pace.h \
|
||||
pace/scutil.h \
|
||||
pace/pace_lib.h
|
||||
|
||||
else
|
||||
ccid_emulator_SOURCES += scutil.c sm.c
|
||||
|
||||
noinst_HEADERS += \
|
||||
pace/sm.h \
|
||||
pace/pace.h \
|
||||
pace/scutil.h \
|
||||
pace/pace_lib.h
|
||||
endif
|
||||
|
||||
noinst_HEADERS = binutil.h ccid.h pace.h pace_lib.h scutil.h sm.h usbstring.h
|
||||
|
||||
@@ -27,14 +27,17 @@
|
||||
#include <opensc/log.h>
|
||||
|
||||
#include "ccid.h"
|
||||
#include "sm.h"
|
||||
#include "scutil.h"
|
||||
#include "config.h"
|
||||
|
||||
#ifdef WITH_PACE
|
||||
#include "pace.h"
|
||||
#include <pace/pace.h>
|
||||
#include <pace/sm.h>
|
||||
#include <pace/scutil.h>
|
||||
|
||||
struct sm_ctx sctx;
|
||||
static struct sm_ctx sctx;
|
||||
|
||||
#else
|
||||
#include "pace/scutil.h"
|
||||
#endif
|
||||
|
||||
static sc_context_t *ctx = NULL;
|
||||
@@ -178,7 +181,11 @@ static int get_rapdu(sc_apdu_t *apdu, size_t slot, __u8 **buf, size_t *resplen)
|
||||
}
|
||||
*buf = apdu->resp;
|
||||
|
||||
#ifdef WITH_PACE
|
||||
sc_result = sm_transmit_apdu(&sctx, card_in_slot[slot], apdu);
|
||||
#else
|
||||
sc_result = sc_transmit_apdu(&sctx, card_in_slot[slot], apdu);
|
||||
#endif
|
||||
if (sc_result < 0) {
|
||||
goto err;
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
#ifndef _CCID_PACE_H
|
||||
#define _CCID_PACE_H
|
||||
|
||||
#include "pace_lib.h"
|
||||
#include "sm.h"
|
||||
#include <pace/pace_lib.h>
|
||||
#include <pace/sm.h>
|
||||
#include <opensc/opensc.h>
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/pace.h>
|
||||
Reference in New Issue
Block a user