[pkg-opensc-commit] [opensc] 191/295: card-npa: moved to internal card drivers

Eric Dorland eric at moszumanska.debian.org
Sat Jun 24 21:11:30 UTC 2017


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository opensc.

commit 45a7ea9737075b5901fe7a5d65ed898733140315
Author: Frank Morgner <frankmorgner at gmail.com>
Date:   Wed Nov 16 11:15:22 2016 +0100

    card-npa: moved to internal card drivers
---
 etc/opensc.conf.in            |  3 ---
 src/libopensc/Makefile.am     | 17 ++++-------------
 src/libopensc/Makefile.mak    | 17 ++++-------------
 src/libopensc/card-npa.c      | 20 +-------------------
 src/libopensc/card-npa.h      | 12 +-----------
 src/libopensc/cardnpa.exports |  2 --
 src/libopensc/cards.h         |  6 ++++++
 src/libopensc/ctx.c           |  1 +
 win32/OpenSC.wxs.in           |  5 -----
 9 files changed, 17 insertions(+), 66 deletions(-)

diff --git a/etc/opensc.conf.in b/etc/opensc.conf.in
index 5419b44..237c128 100644
--- a/etc/opensc.conf.in
+++ b/etc/opensc.conf.in
@@ -152,9 +152,6 @@ app default {
 	# }
 
 	card_driver npa {
-		# The location of the driver library
-		module = @LIBDIR@@LIB_PRE at cardnpa@DYN_LIB_EXT@;
-
 		# German ID card requires the CAN to be verified before QES PIN. This,
 		# however, is not part of the PKCS#15 profile of the card. So for
 		# verifying the QES PIN we actually need both. The CAN may be given
diff --git a/src/libopensc/Makefile.am b/src/libopensc/Makefile.am
index 9cd44da..ec49ff4 100644
--- a/src/libopensc/Makefile.am
+++ b/src/libopensc/Makefile.am
@@ -4,7 +4,7 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
 
 EXTRA_DIST = Makefile.mak
 
-lib_LTLIBRARIES = libopensc.la libcardnpa.la
+lib_LTLIBRARIES = libopensc.la
 noinst_HEADERS = cards.h ctbcs.h internal.h esteid.h muscle.h muscle-filesystem.h \
 	internal-winscard.h p15card-helper.h pkcs15-syn.h \
 	opensc.h pkcs15.h \
@@ -16,7 +16,7 @@ noinst_HEADERS = cards.h ctbcs.h internal.h esteid.h muscle.h muscle-filesystem.
 
 AM_CPPFLAGS = -DOPENSC_CONF_PATH=\"$(sysconfdir)/opensc.conf\" \
 	-I$(top_srcdir)/src
-AM_CFLAGS = $(OPTIONAL_OPENSSL_CFLAGS) $(OPTIONAL_OPENCT_CFLAGS) \
+AM_CFLAGS = $(OPENPACE_CFLAGS) $(OPTIONAL_OPENSSL_CFLAGS) $(OPTIONAL_OPENCT_CFLAGS) \
 	$(OPTIONAL_PCSC_CFLAGS) $(OPTIONAL_ZLIB_CFLAGS)
 
 libopensc_la_SOURCES = \
@@ -44,6 +44,7 @@ libopensc_la_SOURCES = \
 	card-iasecc.c iasecc-sdo.c iasecc-sm.c card-sc-hsm.c \
 	card-dnie.c cwa14890.c cwa-dnie.c \
 	card-isoApplet.c card-masktech.c card-gids.c card-jpki.c \
+	card-npa.c \
 	\
 	pkcs15-openpgp.c pkcs15-infocamere.c pkcs15-starcert.c \
 	pkcs15-tcos.c pkcs15-esteid.c pkcs15-postecert.c pkcs15-gemsafeGPK.c \
@@ -58,7 +59,7 @@ libopensc_la_SOURCES = \
 if WIN32
 libopensc_la_SOURCES += $(top_builddir)/win32/versioninfo.rc
 endif
-libopensc_la_LIBADD = $(OPTIONAL_OPENSSL_LIBS) $(OPTIONAL_OPENCT_LIBS) \
+libopensc_la_LIBADD = $(OPENPACE_LIBS) $(OPTIONAL_OPENSSL_LIBS) $(OPTIONAL_OPENCT_LIBS) \
 	$(OPTIONAL_ZLIB_LIBS) \
 	$(top_builddir)/src/pkcs15init/libpkcs15init.la \
 	$(top_builddir)/src/scconf/libscconf.la \
@@ -73,16 +74,6 @@ libopensc_la_LDFLAGS = $(AM_LDFLAGS) \
 	-export-symbols "$(srcdir)/libopensc.exports" \
 	-no-undefined
 
-libcardnpa_la_SOURCES = card-npa.c  cardnpa.exports
-libcardnpa_la_LIBADD = $(OPENPACE_LIBS) \
-					   $(top_builddir)/src/common/libcompat.la \
-					   libopensc.la
-libcardnpa_la_CFLAGS = -I$(top_srcdir)/src $(OPENPACE_CFLAGS) $(OPENSSL_CFLAGS)
-libcardnpa_la_LDFLAGS = $(AM_LDFLAGS) \
-						-version-info @OPENSC_LT_CURRENT@:@OPENSC_LT_REVISION@:@OPENSC_LT_AGE@ \
-						-export-symbols "$(srcdir)/cardnpa.exports" \
-						-no-undefined
-
 if WIN32
 # def file required for MS users to build library
 mylibdir=$(libdir)
diff --git a/src/libopensc/Makefile.mak b/src/libopensc/Makefile.mak
index a2431d3..4059536 100644
--- a/src/libopensc/Makefile.mak
+++ b/src/libopensc/Makefile.mak
@@ -27,6 +27,7 @@ OBJECTS			= \
 	card-iasecc.obj iasecc-sdo.obj iasecc-sm.obj cwa-dnie.obj cwa14890.obj \
 	card-sc-hsm.obj card-dnie.obj card-isoApplet.obj pkcs15-coolkey.obj \
 	card-masktech.obj card-gids.obj card-jpki.obj \
+	card-npa.obj \
 	\
 	pkcs15-openpgp.obj pkcs15-infocamere.obj pkcs15-starcert.obj \
 	pkcs15-tcos.obj pkcs15-esteid.obj pkcs15-postecert.obj pkcs15-gemsafeGPK.obj \
@@ -43,10 +44,7 @@ LIBS = $(TOPDIR)\src\scconf\scconf.lib \
 	   $(TOPDIR)\src\sm\libsmeac.lib \
 	   $(TOPDIR)\src\pkcs15init\pkcs15init.lib
 
-TARGET1 = cardnpa.dll
-OBJECTS1 = card-npa.obj
-
-all: $(TOPDIR)\win32\versioninfo.res $(TARGET) $(TARGET1)
+all: $(TOPDIR)\win32\versioninfo.res $(TARGET)
 
 !INCLUDE $(TOPDIR)\win32\Make.rules.mak
 
@@ -54,15 +52,8 @@ opensc.dll: $(OBJECTS) $(LIBS)
 	echo LIBRARY $* > $*.def
 	echo EXPORTS >> $*.def
 	type lib$*.exports >> $*.def
-	link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:opensc.dll $(OBJECTS) $(LIBS) $(OPENSSL_LIB) $(ZLIB_LIB) gdi32.lib advapi32.lib ws2_32.lib
+	link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:opensc.dll $(OBJECTS) $(LIBS) $(OPENPACE_LIB) $(OPENSSL_LIB) $(ZLIB_LIB) gdi32.lib advapi32.lib ws2_32.lib
 	if EXIST opensc.dll.manifest mt -manifest opensc.dll.manifest -outputresource:opensc.dll;2
 
 opensc_a.lib: $(OBJECTS) $(LIBS)
-	lib $(LIBFLAGS) /out:opensc_a.lib $(OBJECTS) $(LIBS) $(OPENSSL_LIB) $(ZLIB_LIB) user32.lib advapi32.lib ws2_32.lib
-
-$(TARGET1): $(OBJECTS1) opensc_a.lib
-	echo LIBRARY $* > $*.def
-	echo EXPORTS >> $*.def
-	type $*.exports >> $*.def
-	link /dll $(LINKFLAGS) /def:$*.def /implib:$*.lib /out:$(TARGET1) $(OBJECTS1) opensc_a.lib $(ZLIB_LIB) $(OPENPACE_LIB) $(OPENSSL_LIB) ws2_32.lib gdi32.lib advapi32.lib Crypt32.lib User32.lib
-	if EXIST $(TARGET).manifest mt -manifest $(TARGET1).manifest -outputresource:$(TARGET1);2
+	lib $(LIBFLAGS) /out:opensc_a.lib $(OBJECTS) $(LIBS) $(OPENPACE_LIB) $(OPENSSL_LIB) $(ZLIB_LIB) user32.lib advapi32.lib ws2_32.lib
diff --git a/src/libopensc/card-npa.c b/src/libopensc/card-npa.c
index b39a487..8a2ac42 100644
--- a/src/libopensc/card-npa.c
+++ b/src/libopensc/card-npa.c
@@ -690,7 +690,7 @@ static int npa_logout(sc_card_t *card)
 	return sc_select_file(card, sc_get_mf_path(), NULL);
 }
 
-static struct sc_card_driver *npa_get_driver(void)
+struct sc_card_driver *sc_get_npa_driver(void)
 {
 	struct sc_card_driver *iso_drv = sc_get_iso7816_driver();
 
@@ -704,21 +704,3 @@ static struct sc_card_driver *npa_get_driver(void)
 
 	return &npa_drv;
 }
-
-void *sc_module_init(const char *name)
-{
-	const char npa_name[] = "npa";
-	if (name) {
-		if (strcmp(npa_name, name) == 0)
-			return npa_get_driver;
-	}
-	return NULL;
-}
-
-const char *sc_driver_version(void)
-{
-	/* Tested with OpenSC 0.12 and 0.13.0, which can't be captured by checking
-	 * our version info against OpenSC's PACKAGE_VERSION. For this reason we
-	 * tell OpenSC that everything is fine, here. */
-	return sc_get_version();
-}
diff --git a/src/libopensc/card-npa.h b/src/libopensc/card-npa.h
index 8cb482e..eca8516 100644
--- a/src/libopensc/card-npa.h
+++ b/src/libopensc/card-npa.h
@@ -25,23 +25,13 @@
 extern "C" {
 #endif
 
-#include "libopensc/opensc.h"
-
-enum {
-	SC_CARD_TYPE_NPA = 42000,
-	SC_CARD_TYPE_NPA_TEST,
-	SC_CARD_TYPE_NPA_ONLINE,
-};
-
 const unsigned char esign_chat[] = {
 	0x7F, 0x4C, 0x0E,
 		0x06, 0x09, 0x04, 0x00, 0x7F, 0x00, 0x07, 0x03, 0x01, 0x02, 0x03,
 		0x53, 0x01, 0x03,
 };
 
-static const unsigned char df_esign_aid[]  = { 0xa0, 0x00, 0x00, 0x01, 0x67, 0x45, 0x53, 0x49, 0x47, 0x4e};
-static const unsigned char df_esign_path[] = { 0x3f, 0x00, 0x50, 0x15, 0x1f, 0xff};
-static const unsigned char ef_cardaccess_path[] = { 0x3f, 0x00, 0x01, 0x1c};
+const unsigned char df_esign_aid[]  = { 0xa0, 0x00, 0x00, 0x01, 0x67, 0x45, 0x53, 0x49, 0x47, 0x4e};
 
 #ifdef  __cplusplus
 }
diff --git a/src/libopensc/cardnpa.exports b/src/libopensc/cardnpa.exports
deleted file mode 100644
index 52cec04..0000000
--- a/src/libopensc/cardnpa.exports
+++ /dev/null
@@ -1,2 +0,0 @@
-sc_driver_version
-sc_module_init
diff --git a/src/libopensc/cards.h b/src/libopensc/cards.h
index d71c02f..d9f5cbb 100644
--- a/src/libopensc/cards.h
+++ b/src/libopensc/cards.h
@@ -236,6 +236,11 @@ enum {
 	SC_CARD_TYPE_CAC_GENERIC,
 	SC_CARD_TYPE_CAC_I,
 	SC_CARD_TYPE_CAC_II,
+
+	/* nPA cards */
+	SC_CARD_TYPE_NPA = 34000,
+	SC_CARD_TYPE_NPA_TEST,
+	SC_CARD_TYPE_NPA_ONLINE,
 };
 
 extern sc_card_driver_t *sc_get_default_driver(void);
@@ -277,6 +282,7 @@ extern sc_card_driver_t *sc_get_gids_driver(void);
 extern sc_card_driver_t *sc_get_jpki_driver(void);
 extern sc_card_driver_t *sc_get_coolkey_driver(void);
 extern sc_card_driver_t *sc_get_cac_driver(void);
+extern sc_card_driver_t *sc_get_npa_driver(void);
 
 #ifdef __cplusplus
 }
diff --git a/src/libopensc/ctx.c b/src/libopensc/ctx.c
index 9f296b6..54155b4 100644
--- a/src/libopensc/ctx.c
+++ b/src/libopensc/ctx.c
@@ -120,6 +120,7 @@ static const struct _sc_driver_entry internal_card_drivers[] = {
 	{ "openpgp",	(void *(*)(void)) sc_get_openpgp_driver },
 	{ "jpki",	(void *(*)(void)) sc_get_jpki_driver },
 	{ "coolkey",	(void *(*)(void)) sc_get_coolkey_driver },
+	{ "npa",	(void *(*)(void)) sc_get_npa_driver },
 	/* The default driver should be last, as it handles all the
 	 * unrecognized cards. */
 	{ "default",	(void *(*)(void)) sc_get_default_driver },
diff --git a/win32/OpenSC.wxs.in b/win32/OpenSC.wxs.in
index bdab84a..044ff69 100644
--- a/win32/OpenSC.wxs.in
+++ b/win32/OpenSC.wxs.in
@@ -62,9 +62,6 @@
     <Directory Id="TARGETDIR" Name="SourceDir">
       <!-- Install critical DLL-s to system folder. NB! Id-s can not contain "-" characters! -->
       <Directory Id="$(var.PlatformSystemFolder)" Name=".">
-        <Component Id="cardnpa.dll" Guid="*" Win64="$(var.Win64YesNo)">
-          <File Source="$(var.SOURCE_DIR)\src\libopensc\cardnpa.dll" Vital="yes"/>
-        </Component>
         <Component Id="opensc_pkcs11.dll" Guid="*" Win64="$(var.Win64YesNo)">
           <File Source="$(var.SOURCE_DIR)\src\pkcs11\opensc-pkcs11.dll" Vital="yes"/>
         </Component>
@@ -302,7 +299,6 @@
     <Feature Id="Complete" Level="1" Title="OpenSC software suite" Display="expand">
       <Feature Id="OpenSC_core" Level="1" Title="OpenSC core library" Description="Core DLL and configuration file used by all other components." Absent="disallow">
         <ComponentRef Id="opensc.dll"/>
-        <ComponentRef Id="cardnpa.dll"/>
         <?ifdef zlib ?>
           <ComponentRef Id="zlib1.dll"/>
         <?endif ?>
@@ -312,7 +308,6 @@
         <?endif ?>
       </Feature>
       <Feature Id="OpenSC_pkcs11" Level="1" Title="OpenSC PKCS#11 module" Description="PKCS#11 module usd by most open source and cross-platform software (like Firefox, Putty, TrueCrypt, OpenVPN etc)" TypicalDefault="install">
-        <ComponentRef Id="cardnpa.dll"/>
         <ComponentRef Id="opensc_pkcs11.dll"/>
         <ComponentRef Id="onepin_opensc_pkcs11.dll"/>
       </Feature>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opensc/opensc.git



More information about the pkg-opensc-commit mailing list