diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 21:41:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 21:41:43 +0000 |
commit | 92cccad89d1c12b39165d5f0ed7ccd2d44965a1a (patch) | |
tree | f59a2764cd8c50959050a428bd8fc935138df750 /INSTALL | |
parent | Initial commit. (diff) | |
download | libtpms-upstream.tar.xz libtpms-upstream.zip |
Adding upstream version 0.9.2.upstream/0.9.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 165 |
1 files changed, 165 insertions, 0 deletions
@@ -0,0 +1,165 @@ +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 (after installing +dependencies): + + # ./autogen.sh --with-tpm2 --with-openssl --prefix=/usr + # make + # make check + # sudo make install + +Building libtpms: +----------------- + +The configure script needs to be run first, and can be done using: + +./autogen.sh --with-tpm2 --with-openssl + +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 the following command line. On some distributions it may +be necessary to also pass --libdir=/lib64 (for 64 bit systems). + +./autogen.sh --prefix=/usr --with-tpm2 --with-openssl + +For more details on configure options, run "./configure -h". + +Building libtpms can be done using: + +make 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 (TPM 1.2 support only) + +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: + +Fedora/RedHat: +- automake +- autoconf +- libtool +- make +- gcc +- glibc-headers +- openssl-devel + +Ubuntu: +- automake +- autoconf +- libtool +- make +- gcc +- libc-dev +- libssl-dev + +To build for freebl (TPM 1.2 support only), the following development +packages must have been installed prior to compilation: + +Fedora/RedHat: +- 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 + +Ubuntu: +- libc6-dev +- libgmp-dev +- libnspr4-dev +- libnss3-dev (preferably version 3.17.2; needs to have blapi.h) + +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 (TPM 1.2 support only): + +./autogen.sh --prefix=/usr +make all install + +To verify that libtpms was built with freebl as the crypto backend, one +can run: + +ldd /usr/lib/libtpms.so or ldd /usr/lib64/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 against 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) + + +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 |