From 8e13acf51ebd18d6fa4aeb4fb38c240c11595f3d Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Wed, 23 Apr 2014 11:50:38 +0300 Subject: [PATCH] Restore pkcs11 onepin module for Firefox usage --- etc/opensc.conf.in | 6 ++++++ src/pkcs11/Makefile.am | 11 +++++++++-- src/pkcs11/pkcs11-global.c | 6 +++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/etc/opensc.conf.in b/etc/opensc.conf.in index dfe5e8e5..a18f2c0e 100644 --- a/etc/opensc.conf.in +++ b/etc/opensc.conf.in @@ -632,6 +632,12 @@ app opensc-pkcs11 { } } +app onepin-opensc-pkcs11 { + pkcs11 { + slots_per_card = 1; + } +} + # Used by OpenSC.tokend on Mac OS X only. app tokend { # The file to which debug log will be written diff --git a/src/pkcs11/Makefile.am b/src/pkcs11/Makefile.am index 17ec439a..c8ed808e 100644 --- a/src/pkcs11/Makefile.am +++ b/src/pkcs11/Makefile.am @@ -4,7 +4,7 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefile.in $(srcdir)/versioninfo-pkcs11.rc $(s EXTRA_DIST = Makefile.mak versioninfo-pkcs11.rc.in versioninfo-pkcs11-spy.rc.in dist_noinst_SCRIPTS = opensc_pkcs11_install.js -lib_LTLIBRARIES = opensc-pkcs11.la pkcs11-spy.la +lib_LTLIBRARIES = opensc-pkcs11.la pkcs11-spy.la onepin-opensc-pkcs11.la AM_CFLAGS = $(OPTIONAL_OPENSSL_CFLAGS) $(PTHREAD_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/src @@ -26,6 +26,13 @@ opensc_pkcs11_la_LDFLAGS = $(AM_LDFLAGS) \ -export-symbols "$(srcdir)/opensc-pkcs11.exports" \ -module -shared -avoid-version -no-undefined +onepin_opensc_pkcs11_la_SOURCES = $(OPENSC_PKCS11_SRC) $(OPENSC_PKCS11_INC) +onepin_opensc_pkcs11_la_CFLAGS = -DMODULE_APP_NAME=\"onepin-opensc-pkcs11\" +onepin_opensc_pkcs11_la_LIBADD = $(OPENSC_PKCS11_LIBS) +onepin_opensc_pkcs11_la_LDFLAGS = $(AM_LDFLAGS) \ + -export-symbols "$(srcdir)/opensc-pkcs11.exports" \ + -module -shared -avoid-version -no-undefined + pkcs11_spy_la_SOURCES = pkcs11-spy.c pkcs11-display.c pkcs11-display.h pkcs11-spy.exports pkcs11_spy_la_LIBADD = \ $(top_builddir)/src/common/libpkcs11.la \ @@ -64,7 +71,7 @@ PKCS11_SUFFIX=.so endif install-exec-hook: $(MKDIR_P) "$(DESTDIR)$(pkcs11dir)" - for l in opensc-pkcs11$(PKCS11_SUFFIX) pkcs11-spy$(PKCS11_SUFFIX); do \ + for l in opensc-pkcs11$(PKCS11_SUFFIX) onepin-opensc-pkcs11$(PKCS11_SUFFIX) pkcs11-spy$(PKCS11_SUFFIX); do \ rm -f "$(DESTDIR)$(pkcs11dir)/$$l"; \ $(LN_S) ../$$l "$(DESTDIR)$(pkcs11dir)/$$l"; \ done diff --git a/src/pkcs11/pkcs11-global.c b/src/pkcs11/pkcs11-global.c index f3f5465f..64abd1a7 100644 --- a/src/pkcs11/pkcs11-global.c +++ b/src/pkcs11/pkcs11-global.c @@ -28,6 +28,10 @@ #include "sc-pkcs11.h" +#ifndef MODULE_APP_NAME +#define MODULE_APP_NAME "opensc-pkcs11" +#endif + sc_context_t *context = NULL; struct sc_pkcs11_config sc_pkcs11_conf; list_t sessions; @@ -219,7 +223,7 @@ CK_RV C_Initialize(CK_VOID_PTR pInitArgs) /* set context options */ memset(&ctx_opts, 0, sizeof(sc_context_param_t)); ctx_opts.ver = 0; - ctx_opts.app_name = "opensc-pkcs11"; + ctx_opts.app_name = MODULE_APP_NAME; ctx_opts.thread_ctx = &sc_thread_ctx; rc = sc_context_create(&context, &ctx_opts);