copy and paste friendly installation guide

git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@578 96b47cad-a561-4643-ad3b-153ac7d7599c
This commit is contained in:
frankmorgner
2011-10-27 09:32:32 +00:00
parent fe10d79556
commit ca3a381a8a

View File

@@ -1,4 +1,4 @@
.. highlight:: c .. highlight:: sh
.. _OpenSC: http://www.opensc-project.org/opensc .. _OpenSC: http://www.opensc-project.org/opensc
.. _OpenPACE: http://sourceforge.net/projects/openpace/ .. _OpenPACE: http://sourceforge.net/projects/openpace/
@@ -23,51 +23,66 @@ Installation
============ ============
npa uses the GNU Build System to compile and install. If you are unfamiliar npa uses the GNU Build System to compile and install. If you are unfamiliar
with it, please have a look at the file INSTALL. If you have a look around and with it, please have a look at the file ``INSTALL``. If you have a look around
can not find it, you are probably working bleeding edge in the repository. Run and can not find it, you are probably working bleeding edge in the repository.
the following command in the npa direcotry to get the missing standard Run the following command in the npa direcotry to get the missing standard
auxiliary files:: auxiliary files::
autoreconf -i autoreconf -i
npa has the following dependencies: npa has the following dependencies:
- OpenSC_ - OpenSC_
- OpenSSL with OpenPACE_ - OpenSSL with OpenPACE_
------------------------------
Hints on OpenSSL with OpenPACE
------------------------------
libnpa links against libcrypto, which must be patched with OpenPACE_. Here is
an example of how to get the standard installation of OpenSSL with OpenPACE_::
PREFIX=/tmp/install
OPENPACE=openpace
svn co https://openpace.svn.sourceforge.net/svnroot/openpace $OPENPACE
cd $OPENPACE
make patch_with_openpace
cd openssl-*/
./config experimental-pace --prefix=$PREFIX
make depend
make
make install
Building npa with OpenPACE_ is done best using ``pkg-config``. The file
``libcrypto.pc`` should be located in ``$INSTALL/lib/pkgconfig``. Here is how
to configure npa to use it::
./configure PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
--------------- ---------------
Hints on OpenSC Hints on OpenSC
--------------- ---------------
libnpa links against libopensc, which is discouraged and hindered since libnpa links against libopensc, which is discouraged and hindered since OpenSC
opensc>=0.12. (We really need to get rid of this dependency or integrate better version >= 0.12. (We really need to get rid of this dependency or integrate
into the OpenSC-framework.) You need the OpenSC components to be installed better into the OpenSC-framework.) You need the OpenSC components to be
(especially libopensc.so). Here is an example of how to get the standard installed (especially ``libopensc.so``). Here is an example of how to get the
installation of OpenSC_:: standard installation of OpenSC_::
PREFIX=/tmp/install
OPENSC=opensc OPENSC=opensc
INSTALL=/tmp/install
svn co http://www.opensc-project.org/svn/opensc/trunk $OPENSC svn co http://www.opensc-project.org/svn/opensc/trunk $OPENSC
cd $OPENSC cd $OPENSC
autoreconf -i autoreconf -i
./configure --prefix=$INSTALL # adding PKG_CONFIG_PATH here lets OpenSC use OpenSSL with OpenPACE
./configure --prefix=$PREFIX PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
make make
make install make install
Now libopensc.so should be located in $INSTALL/lib. Here is how to configure Now ``libopensc.so`` should be located in ``$PREFIX/lib``. Here is how to
npa to use it:: configure npa to use it::
./configure OPENSC_LIBS="-L$INSTALL/lib -lopensc" ./configure OPENSC_LIBS="-L$PREFIX/lib -lopensc"
----------------
Hints on OpenSSL
----------------
If you have a local build of OpenSSL with OpenPACE_, that you want to link
against use something like the following command: ::
./configure \
OPENSSL_CFLAGS="-I/path/to/openssl-1.0.0d_with_openpace-0.6/include" \
OPENSSL_LIBS="-L/path/to/openssl-1.0.0d_with_openpace-0.6 -lcrypto"
.. _npa-usage: .. _npa-usage:
@@ -80,6 +95,7 @@ enter APDUs which are to be converted according to the secure messaging
parameter and to be sent to the card. Herefor insert the APDU in hex (upper or parameter and to be sent to the card. Herefor insert the APDU in hex (upper or
lower case) with a colon to separate the bytes or without it. Example APDUs can lower case) with a colon to separate the bytes or without it. Example APDUs can
be found in the file apdus. be found in the file apdus.
To pass a secret to npa-tool, the command line parameters or the environment To pass a secret to npa-tool, the command line parameters or the environment
variables PIN/CAN/MRZ/PUK/NEWPIN can be used. If none of these options is used, variables PIN/CAN/MRZ/PUK/NEWPIN can be used. If none of these options is used,
npa-tool will show a password prompt. npa-tool will show a password prompt.
@@ -88,18 +104,27 @@ npa-tool will show a password prompt.
Linking against libnpa Linking against libnpa
---------------------- ----------------------
If you have a local build of libnpa and OpenPACE_, the preferred way to adjust Following the section `Installation`_ above, you have installed OpenSC_,
libraries and cflags for foreign code is to use pkg-config: OpenPACE_ and npa to ``/tmp/install``. To compile a program using libnpa you
need to get the header files from OpenSC_ as well.
Here is how
to compile an external program with these libraries::
``./configure PKG_CONFIG_PATH="/path/to/openssl-1.0.0d_with_openpace-0.6/lib/pkgconfig:/path/to/libnpa/lib/pkgconfig"`` PREFIX=/tmp/install
OPENSC=opensc
svn co http://www.opensc-project.org/svn/opensc/trunk $OPENSC
cc example.c -I$OPENSC/src \
$(env PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \
pkg-config --cflags --libs npa)
Alternatively you can define libs and cflags by hand: :: Alternatively you can specify libraries and flags by hand::
./configure \ PREFIX=/tmp/install
OPENSSL_CFLAGS="-I/path/to/openssl-1.0.0d_with_openpace-0.6/include" \ OPENSC=opensc
LIBNPA_CFLAGS="-I/path/to/openssl-1.0.0d_with_openpace-0.6/include -I/path/to/libnpa-0.1/src" \ svn co http://www.opensc-project.org/svn/opensc/trunk $OPENSC
OPENSSL_LIBS="-L/path/to/openssl-1.0.0d_with_openpace-0.6 -lcrypto" \ cc example.c -I$OPENSC/src \
LIBNPA_LIBS="-L/path/to/openssl-1.0.0d_with_openpace-0.6 -lcrypto -L/path/to/libnpa-0.1/src/.libs -lnpa" -I$PREFIX/include \
-L$PREFIX/lib -lcrypto -lnpa -lopensc"
========= =========
Questions Questions