mirror of
https://github.com/stefanberger/libtpms
synced 2025-12-30 10:03:49 +00:00
Remove unnecessary files in the repository and add boostrap.sh to create the configure file and other files we are removing here. Users have to run bootstrap.sh to have those files created in their build environment. Update the INSTALL instructions. Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> Acked-by: Corey Bryant <coreyb@linux.vnet.ibm.com>
147 lines
4.2 KiB
Plaintext
147 lines
4.2 KiB
Plaintext
This document contains the following sections:
|
|
==============================================
|
|
|
|
- Quick start
|
|
- Building libtpms
|
|
- Installing libtpms, include files and man pages
|
|
- Uninstalling libtpms, include files and man pages
|
|
- More on man pages
|
|
|
|
Quick start:
|
|
------------
|
|
|
|
The libtpms library can be built using the steps:
|
|
|
|
# ./bootstrap.sh
|
|
# ./configure
|
|
# make
|
|
# sudo make install
|
|
|
|
Building libtpms:
|
|
-----------------
|
|
|
|
The configure script needs to be run first, and can be done using:
|
|
|
|
./configure
|
|
|
|
By default, files will be installed in '/usr/local/lib', etc. If you
|
|
would like to have these files installed in '/usr/lib', etc, then run
|
|
configure using:
|
|
|
|
./configure --prefix=/usr
|
|
|
|
For more details on configure options, run "./configure -h".
|
|
|
|
Building libtpms can be done using:
|
|
|
|
make clean all
|
|
|
|
The library is known to build on Linux and Cygwin systems and possible
|
|
other Operating Systems that use .so as library extensions.
|
|
|
|
On Linux systems, libtpms can be built with either one of the following
|
|
crypto backends:
|
|
|
|
- openssl
|
|
- freebl
|
|
|
|
On Cygwin only openssl is available and therefore can only be built with
|
|
openssl.
|
|
|
|
To build for openssl, the following development packages must have been
|
|
installed:
|
|
|
|
- glibc-headers
|
|
- openssl-devel
|
|
|
|
To build for freebl, the following development packages must have been
|
|
installed prior to compilation:
|
|
|
|
- glibc-headers
|
|
- nss-softokn-freebl-devel (preferably version 3.12.9-2 or newer)
|
|
- nss-softokn-devel (preferably version 3.12.9-2 or newer)
|
|
- gmp-devel
|
|
|
|
By default, libtpms is built with the openssl crypto library, which was
|
|
shown above. To build with the freebl crypto library the following command
|
|
line can be used:
|
|
|
|
make CRYPTO_SUBSYSTEM=freebl clean all
|
|
|
|
To verify that libtpms was built with freebl as the crypto backend, one
|
|
can run:
|
|
|
|
ldd /usr/lib/libtpms.so
|
|
|
|
linux-vdso.so.1 => (0x00007fff8d5ff000)
|
|
libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00007f5352a13000)
|
|
libnspr4.so => /lib64/libnspr4.so (0x00007f53527d6000)
|
|
libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007f53525b6000)
|
|
libnss3.so => /usr/lib64/libnss3.so (0x00007f535227c000)
|
|
libc.so.6 => /lib64/libc.so.6 (0x00007f5351ed8000)
|
|
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5351cba000)
|
|
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5351ab6000)
|
|
libplc4.so => /lib64/libplc4.so (0x00007f53518b2000)
|
|
libplds4.so => /lib64/libplds4.so (0x00007f53516ae000)
|
|
/lib64/ld-linux-x86-64.so.2 (0x0000003a1c000000)
|
|
|
|
The fact that the libraries libgmp, libnspr4, libnssutil3, libnss3,
|
|
libpc4, and libplds4 are linked agaist is an indication that the freebl
|
|
library was used for linking.
|
|
|
|
In case of openssl's libcrypto the output would be the following:
|
|
|
|
linux-vdso.so.1 => (0x00007fffcbdff000)
|
|
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fdb1d00e000)
|
|
libc.so.6 => /lib64/libc.so.6 (0x00007fdb1cc6a000)
|
|
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdb1ca65000)
|
|
libz.so.1 => /lib64/libz.so.1 (0x00007fdb1c84e000)
|
|
/lib64/ld-linux-x86-64.so.2 (0x0000003a1c000000)
|
|
|
|
|
|
A debug build that prints out __lots__ of debugging information on the
|
|
TPM level can be built by invoking make as follows:
|
|
|
|
make CRYPTO_SUBSYSTEM=freebl BUILD_TYPE=debug
|
|
|
|
|
|
Installing libtpms, include files and man pages:
|
|
------------------------------------------------
|
|
|
|
The installation of libtpms, the development include files (headers) and
|
|
man pages can be achieved through:
|
|
|
|
make install
|
|
|
|
This will copy libtpms into the standard library directory on your Linux
|
|
system such as /usr/lib or /usr/lib64, depending on whether you built for
|
|
a 32 bit or 64 bit machine.
|
|
|
|
The public include files of libtpms will be copied to /usr/include/libtpms.
|
|
|
|
The man pages explaining the libtpms API will be copied to /usr/share/man.
|
|
|
|
|
|
Uninstalling libtpms, include files and man pages:
|
|
--------------------------------------------------
|
|
|
|
The libtpms library, its development include files (headers) and man pages
|
|
can be uninstalled from their standard locations using
|
|
|
|
make uninstall
|
|
|
|
|
|
More on man pages
|
|
-----------------
|
|
|
|
All of the libtpms APIs have a man page. The man pages contain explanations
|
|
on how to use the APIs as well as examples. Once installed, they can be
|
|
viewed as a typical man page:
|
|
|
|
man TPMLIB_MainInit
|
|
|
|
Otherwise, if they are not installed, they can then be viewed from the
|
|
libtpms root directory using:
|
|
|
|
man -M ./man TPMLIB_MainInit
|