Go to file
Corey Bryant a0098eda2d Initial import of project
This is the initial import of the libtpms library.  The libtpms library
provides software emulation of a Trusted Platform Module (TPM).  It is
intended to be used by applications when a hardware TPM is not adequate.
For example, a hypervisor can use libtpms to emulate an independent TPM
for each of it's virtual machine guests.  The library provides a high-
level API for developers to integrate the emulated TPM support into
their application.

The code was originally written by Kenneth Goldman <kgoldman@us.ibm.com>
and Stefan Berger <stefanb@us.ibm.com>.

The code is licensed under the Modified BSD License.

Signed-off-by: Corey Bryant <coreyb@linux.vnet.ibm.com>
2013-10-31 15:33:22 -05:00
dist Initial import of project 2013-10-31 15:33:22 -05:00
include Initial import of project 2013-10-31 15:33:22 -05:00
m4 Initial import of project 2013-10-31 15:33:22 -05:00
man Initial import of project 2013-10-31 15:33:22 -05:00
src Initial import of project 2013-10-31 15:33:22 -05:00
tests Initial import of project 2013-10-31 15:33:22 -05:00
aclocal.m4 Initial import of project 2013-10-31 15:33:22 -05:00
CHANGES Initial import of project 2013-10-31 15:33:22 -05:00
config.guess Initial import of project 2013-10-31 15:33:22 -05:00
config.h.in Initial import of project 2013-10-31 15:33:22 -05:00
config.sub Initial import of project 2013-10-31 15:33:22 -05:00
configure Initial import of project 2013-10-31 15:33:22 -05:00
configure.in Initial import of project 2013-10-31 15:33:22 -05:00
depcomp Initial import of project 2013-10-31 15:33:22 -05:00
INSTALL Initial import of project 2013-10-31 15:33:22 -05:00
install-sh Initial import of project 2013-10-31 15:33:22 -05:00
libtpms.pc.in Initial import of project 2013-10-31 15:33:22 -05:00
LICENSE Initial import of project 2013-10-31 15:33:22 -05:00
ltmain.sh Initial import of project 2013-10-31 15:33:22 -05:00
Makefile.am Initial import of project 2013-10-31 15:33:22 -05:00
Makefile.in Initial import of project 2013-10-31 15:33:22 -05:00
missing Initial import of project 2013-10-31 15:33:22 -05:00
README Initial import of project 2013-10-31 15:33:22 -05:00

What is libtpms?
----------------

Libtpms is a library that targets the integration of TPM functionality
into hypervisors, primarily into Qemu. Libtpms provides a very narrow
public API for this purpose so that integration is possible. Only the
minimum of necessary APIs are made publicly available.

It is assumed that the user of libtpms is familiar with the concepts
of the Trusted Platform Module (TPM). For the interaction with libtpms
it is necessary to know how to construct valid TPM commands and to
be able to parse their results. It is not within the scope of libtpms's
documentation to provide background on this. See the section on references
below.


What files does the libtpms package provide?
--------------------------------------------

The main libtpms package provides the following files:

/usr/lib64/libtpms.so.0
/usr/lib64/libtpms.so.0.5.1
/usr/share/doc/libtpms-0.5.1
/usr/share/doc/libtpms-0.5.1/CHANGES
/usr/share/doc/libtpms-0.5.1/LICENSE
/usr/share/doc/libtpms-0.5.1/README

Applications can link with -ltpms.


What files does the libtpms development package provide?
--------------------------------------------------------

The libtpms development package (libtpms-devel) provides the following
include files for applications to use:

tpm_error.h
tpm_library.h
tpm_memory.h
tpm_nvfilename.h
tpm_tis.h
tpm_types.h

These files contain the data structures, data types and API calls supported
by libtpms. It is recommended to not use any other API calls than those
provided in these include files.

All APIs are described in man pages. The man pages are part of the libtpms
development package as well:

TPMLIB_DecodeBlob
TPMLIB_GetTPMProperty
TPMLIB_GetVersion
TPMLIB_MainInit
TPMLIB_Process
TPMLIB_RegisterCallbacks
TPMLIB_Terminate
TPMLIB_VolatileAll_Store
TPM_Free
TPM_IO_Hash_Data
TPM_IO_Hash_End
TPM_IO_Hash_Start
TPM_IO_TpmEstablished_Get
TPM_Malloc
TPM_Realloc


Where can I send bug reports to?
--------------------------------

There's a mailing list on the ibmswtpm project on sourceforge where you can
send bug reports to.

http://sourceforge.net/projects/ibmswtpm/support

Otherwise you may contact us directly.

Stefan Berger, stefanb@us.ibm.com
Kenneth Goldman, kgoldman@us.ibm.com


References:
-----------

Documentation about the Trusted Platform Module (TPM) can be downloaded
from the Trusted Computing Group's website at

http://www.trustedcomputinggroup.org