mirror of
https://git.proxmox.com/git/libtpms
synced 2025-08-18 06:35:36 +00:00

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>
166 lines
4.7 KiB
Plaintext
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
|