@@ -13,7 +13,7 @@ else
|
||||
fi
|
||||
|
||||
mkdir -p $DROPDIR
|
||||
ln -sf /Library/VirtualSmartCard/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle $DROPDIR
|
||||
ln -sf "/Library/VirtualSmartCard/${DROPDIR}/ifd-vpcd.bundle" "${DROPDIR}"
|
||||
|
||||
for f in /Library/VirtualSmartCard/bin/*
|
||||
do
|
||||
|
||||
@@ -14,7 +14,7 @@ fi
|
||||
|
||||
if [ -L "$DROPDIR" ]
|
||||
then
|
||||
if [ "$(readlink $DROPDIR)" == "/Library/VirtualSmartCard/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle" ]
|
||||
if [ "$(readlink $DROPDIR)" == "/Library/VirtualSmartCard${DROPDIR}/ifd-vpcd.bundle" ]
|
||||
then
|
||||
rm $DROPDIR
|
||||
fi
|
||||
|
||||
@@ -13,20 +13,21 @@ osx: $(OPENPACE_MAKEFILE)
|
||||
$(MAKE) -C $(OPENPACE) osx
|
||||
rm -rf $(OSX_TARGETDIR) dmg $(top_builddir)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)_osx.dmg
|
||||
@echo Configuring virtualsmartcard for IFD bundle
|
||||
cd $(top_builddir) && ./configure --prefix=/Library/VirtualSmartCard \
|
||||
cd $(top_builddir) && ./configure --enable-infoplist --prefix=/Library/VirtualSmartCard \
|
||||
CFLAGS="-arch x86_64" \
|
||||
--enable-serialdropdir=/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents/MacOS \
|
||||
--enable-serialconfdir=/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents
|
||||
--enable-serialdropdir=/usr$(OSX_SERIAL_LOCAL_PREFIX)/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents/MacOS \
|
||||
--enable-serialconfdir=/usr$(OSX_SERIAL_LOCAL_PREFIX)/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents
|
||||
@echo Compiling virtualsmartcard
|
||||
make -C $(top_builddir) clean install DESTDIR=$(OSX_TARGETDIR)
|
||||
@echo Configuring virtualsmartcard for builtin libpcsclite
|
||||
cd $(top_builddir) && ./configure --prefix=/Library/VirtualSmartCard \
|
||||
cd $(top_builddir) && ./configure --enable-infoplist --prefix=/Library/VirtualSmartCard \
|
||||
CFLAGS="-arch x86_64" \
|
||||
--enable-serialdropdir=/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents/MacOS \
|
||||
--enable-serialconfdir=/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents \
|
||||
--enable-serialdropdir=/usr$(OSX_SERIAL_LOCAL_PREFIX)/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents/MacOS \
|
||||
--enable-serialconfdir=/usr$(OSX_SERIAL_LOCAL_PREFIX)/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Contents \
|
||||
--enable-libpcsclite
|
||||
@echo Compiling virtualsmartcard
|
||||
make -C $(top_builddir) clean install DESTDIR=$(OSX_TARGETDIR)
|
||||
mv $(OSX_TARGETDIR)/usr $(OSX_TARGETDIR)/Library/VirtualSmartCard/usr
|
||||
pkgbuild --root $(OSX_TARGETDIR) --scripts MacOSX_install --identifier com.vsmartcard.virtualsmartcard.mac --version $(PACKAGE_VERSION) --install-location / VirtualSmartCard-$(PACKAGE_VERSION)_install.pkg
|
||||
pkgbuild --nopayload --identifier com.vsmartcard.virtualsmartcard.mac.uninstall --scripts MacOSX_uninstall Uninstall_VirtualSmartCard.pkg
|
||||
mkdir -p dmg
|
||||
|
||||
@@ -28,6 +28,12 @@ case "${host}" in
|
||||
*-cygwin*)
|
||||
WIN32="yes"
|
||||
;;
|
||||
*-*-darwin*)
|
||||
OSX="yes"
|
||||
OSX_VERSION="$(sw_vers -productVersion | awk -F '.' '{print $1 * 1000 + $2}')"
|
||||
OSX_GE_CAPITAN=$(test "${OSX_VERSION}" -gt 10011 && echo "yes")
|
||||
OSX_SERIAL_LOCAL_PREFIX=$(test "${OSX_GE_CAPITAN}" = "yes" && echo "/local")
|
||||
;;
|
||||
esac
|
||||
AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"])
|
||||
|
||||
@@ -62,8 +68,12 @@ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
|
||||
|
||||
# Checks for libraries.
|
||||
|
||||
# --enable-infoplist
|
||||
AC_ARG_ENABLE(infoplist,
|
||||
AC_HELP_STRING([--enable-infoplist],[Builds Info.plist for OSX @<:@default=no@:>@]),
|
||||
[infoplist="yes"], [infoplist=no])
|
||||
|
||||
# --enable-libpcsclite
|
||||
infoplist=no
|
||||
AC_ARG_ENABLE(libpcsclite,
|
||||
AC_HELP_STRING([--enable-libpcsclite],[Build a lightweight version of
|
||||
libpcsclite, conflicts with PCSC-Lite @<:@default=no@:>@]),
|
||||
@@ -75,7 +85,7 @@ if test "${libpcsclite}" = no ; then
|
||||
case "$host" in
|
||||
*-*-darwin*)
|
||||
SDKS_PATH="$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs"
|
||||
SDK_PATH="${SDK_PATH:-$SDKS_PATH/$(ls -1 ${SDKS_PATH} | sort -n -t. -k2 -r | head -1)}"
|
||||
SDK_PATH="${SDK_PATH:-$SDKS_PATH/$(ls -1 ${SDKS_PATH} | grep -i MacOSX.sdk | sort -n -t. -k2 -r | head -1)}"
|
||||
# and set the PC/SC include path
|
||||
PCSC_CFLAGS="-I$SDK_PATH/System/Library/Frameworks/PCSC.framework/Versions/Current/Headers -DRESPONSECODE_DEFINED_IN_WINTYPES_H -I`pwd`/${top_srcdir}/MacOSX"
|
||||
PCSC_LIBS="--framework PCSC"
|
||||
@@ -268,6 +278,7 @@ AC_SUBST(DYN_LIB_EXT)
|
||||
AC_SUBST(LIB_PREFIX)
|
||||
AC_SUBST(serialdropdir)
|
||||
AC_SUBST(serialconfdir)
|
||||
AC_SUBST(OSX_SERIAL_LOCAL_PREFIX)
|
||||
case "$host" in
|
||||
*-*-darwin*)
|
||||
BUNDLE_HOST="MacOS"
|
||||
|
||||
@@ -129,9 +129,9 @@ Mac OS X 10.10 (and later) ships with a proprietary implementation of the PC/SC
|
||||
layer instead of with PCSC-Lite. As far as we know, this means that smart card
|
||||
readers must be USB devices instead of directly allowing a more generic type of
|
||||
reader. To make |vpcd| work we simply configure it to pretend being a USB smart
|
||||
card reader with an :file:`Ìnfo.plist`::
|
||||
card reader with an :file:`Info.plist`::
|
||||
|
||||
./configure --prefix=/ --enable-infoplist
|
||||
./configure --enable-infoplist
|
||||
make
|
||||
make install
|
||||
|
||||
@@ -229,7 +229,7 @@ as USB device:
|
||||
|
||||
system_profiler SPUSBDataType
|
||||
|
||||
3. Change :file:`/usr/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Info.plist`
|
||||
3. Change :file:`/usr/local/libexec/SmartCardServices/drivers/ifd-vpcd.bundle/Info.plist`
|
||||
to match your product and vendor ID:
|
||||
|
||||
.. literalinclude:: Info.plist
|
||||
@@ -240,11 +240,20 @@ Note that ``ifdFriendlyName`` can be used in the same way as ``DEVICENAME``
|
||||
|
||||
4. Restart the PC/SC service::
|
||||
|
||||
sudo killall -SIGKILL -m .*com.apple.ifdreader
|
||||
sudo killall -SIGKILL -m '.*com.apple.ifdreader'
|
||||
|
||||
Now, every time you plug in your USB device |vpcd| will be started. It will be
|
||||
stopped when you unplug the device.
|
||||
|
||||
To verify the installation, execute::
|
||||
|
||||
system_profiler SPSmartCardsDataType
|
||||
|
||||
In case of a problem, inspect the logs::
|
||||
|
||||
log show --predicate '(subsystem == "com.apple.CryptoTokenKit")' --info --debug
|
||||
|
||||
|
||||
================================================================================
|
||||
Configuring |vpcd| on Windows
|
||||
================================================================================
|
||||
|
||||
Reference in New Issue
Block a user