libtpms/INSTALL
Nicolas Iooss bbd7b75d71 Fix many misspellings
When testing downgrading from libtpms 0.8 to 0.7 (which is not
possible), the error message which is reported is:

    libtpms/tpm2: Unexpect value for MAX_RSA_KEY_BITS; its value 3072 is
    not = 2048; (version: 2).

codespell (https://github.com/codespell-project/codespell) reports a
misspelling for "Unexpect", which should be "Unexpected". As the project
contains many more misspellings in comments, error messages and
documentation, fix all misspellings reported by codespell.

Signed-off-by: Nicolas Iooss <nicolas.iooss@ledger.fr>
2021-03-02 08:20:25 -05:00

166 lines
4.7 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 (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