From ffd85adae78d4f49fcd9de66e7cb6cc17ffe5e77 Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Wed, 23 Sep 2015 08:32:58 +0200 Subject: [PATCH] Decouples SM from OpenSSL --- configure.ac | 5 +++-- src/Makefile.am | 1 - src/libopensc/card-iasecc.c | 11 +++++++++++ src/libopensc/iasecc-sdo.c | 6 ++++++ src/libsm/Makefile.am | 2 ++ src/libsm/Makefile.mak | 5 +++++ src/smm/Makefile.am | 2 ++ src/smm/Makefile.mak | 5 +++++ 8 files changed, 34 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index f7e4273e..4b916ab8 100644 --- a/configure.ac +++ b/configure.ac @@ -486,14 +486,12 @@ PKG_CHECK_MODULES( case "${enable_openssl}" in no) have_openssl="no" - enable_sm="no" ;; detect) if test "${have_openssl}" = "yes"; then enable_openssl="yes" else enable_openssl="no" - enable_sm="no" fi ;; esac @@ -504,6 +502,9 @@ if test "${enable_openssl}" = "yes"; then else AC_MSG_ERROR([OpenSSL linkage required, but no OpenSSL was found]) fi +else + OPENSSL_CFLAGS="" + OPENSSL_LIBS="" fi if test "${enable_sm}" = "yes"; then diff --git a/src/Makefile.am b/src/Makefile.am index fb929727..880a4568 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,4 +8,3 @@ SUBDIRS = common scconf pkcs15init libopensc pkcs11 \ if ENABLE_SM SUBDIRS += libsm smm endif - diff --git a/src/libopensc/card-iasecc.c b/src/libopensc/card-iasecc.c index 09d730d6..dc8b759e 100644 --- a/src/libopensc/card-iasecc.c +++ b/src/libopensc/card-iasecc.c @@ -3571,4 +3571,15 @@ sc_get_iasecc_driver(void) return sc_get_driver(); } +#else + +/* we need to define the functions below to export them */ +#include "errors.h" + +int +iasecc_se_get_info() +{ + return SC_ERROR_NOT_SUPPORTED; +} + #endif /* ENABLE_OPENSSL */ diff --git a/src/libopensc/iasecc-sdo.c b/src/libopensc/iasecc-sdo.c index d274c74b..36b30a1b 100644 --- a/src/libopensc/iasecc-sdo.c +++ b/src/libopensc/iasecc-sdo.c @@ -1299,4 +1299,10 @@ iasecc_sdo_encode_update_field() return SC_ERROR_NOT_SUPPORTED; } +int +iasecc_se_get_crt() +{ + return SC_ERROR_NOT_SUPPORTED; +} + #endif /* ENABLE_OPENSSL */ diff --git a/src/libsm/Makefile.am b/src/libsm/Makefile.am index 988a4281..8c1a0917 100644 --- a/src/libsm/Makefile.am +++ b/src/libsm/Makefile.am @@ -3,7 +3,9 @@ MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = Makefile.mak +if ENABLE_OPENSSL noinst_LTLIBRARIES = libsm.la +endif noinst_HEADERS = sm-common.h AM_CFLAGS = $(OPTIONAL_OPENSSL_CFLAGS) $(OPTIONAL_READLINE_CFLAGS) diff --git a/src/libsm/Makefile.mak b/src/libsm/Makefile.mak index 0592eec0..670d2f45 100644 --- a/src/libsm/Makefile.mak +++ b/src/libsm/Makefile.mak @@ -1,5 +1,6 @@ TOPDIR = ..\.. +!IF "$(OPENSSL_DEF)" == "/DENABLE_OPENSSL" TARGET = libsm.lib OBJECTS = sm-common.obj @@ -9,3 +10,7 @@ $(TARGET): $(OBJECTS) lib $(LIBFLAGS) /out:$(TARGET) $(OBJECTS) !INCLUDE $(TOPDIR)\win32\Make.rules.mak + +!ELSE +all: +!ENDIF diff --git a/src/smm/Makefile.am b/src/smm/Makefile.am index 9e3e921d..5b6c8196 100644 --- a/src/smm/Makefile.am +++ b/src/smm/Makefile.am @@ -10,7 +10,9 @@ LIBS = $(top_builddir)/src/libsm/libsm.la \ $(top_builddir)/src/libopensc/libopensc.la \ $(top_builddir)/src/common/libcompat.la +if ENABLE_OPENSSL lib_LTLIBRARIES = libsmm-local.la +endif libsmm_local_la_SOURCES = smm-local.c sm-module.h \ sm-global-platform.c sm-cwa14890.c \ diff --git a/src/smm/Makefile.mak b/src/smm/Makefile.mak index 4cf11cf2..d42057bc 100644 --- a/src/smm/Makefile.mak +++ b/src/smm/Makefile.mak @@ -1,5 +1,6 @@ TOPDIR = ..\.. +!IF "$(OPENSSL_DEF)" == "/DENABLE_OPENSSL" TARGET = smm-local.dll OBJECTS = smm-local.obj sm-global-platform.obj sm-cwa14890.obj sm-card-iasecc.obj sm-card-authentic.obj @@ -17,3 +18,7 @@ $(TARGET): $(OBJECTS) ..\libsm\libsm.lib ..\libopensc\opensc.lib .c.obj: cl $(COPTS) /c $< + +!ELSE +all: +!ENDIF