Go to file
Marc-André Lureau ef356d0ddb tests: add an initial corpus for fuzzing
This is taken directly from chromiumos TPM2 repository:

    commit 172eec5ea9b46ddfe720c854fa719fdf8613b4ed
    Author: nagendra modadugu <ngm@google.com>
    Date:   Fri Sep 16 14:07:13 2016 -0700

        Add an initial fuzz test corpus for execute-command

        This commit introduces a minimized corpus for
        the test in fuzz/execute-command.cc.

        The corpus was generated by parsing the TCG test
        suite log for messages sent to the TPM.  The corpus
        includes test cases that produced crashes reported
        in chrome-os-partner:56767 and chrome-os-partner:56825.

        Future work includes defining a dictionary for the
        protocol so that mutations can be more effective,
        and also generating test-cases that improve coverage
        (e.g. create & store primary key, followed by test case).

        BUG=chrome-os-partner:50646
        BRANCH=none
        TEST=follow instructions in fuzz/README

        Change-Id: I24332c0f58996626de9a08e2780595b0b2d76350
        Signed-off-by: nagendra modadugu <ngm@google.com>
        Reviewed-on: https://chromium-review.googlesource.com/386443
        Commit-Ready: Nagendra Modadugu <ngm@google.com>
        Tested-by: Nagendra Modadugu <ngm@google.com>
        Reviewed-by: Kostya Serebryany <kcc@chromium.org>
        Reviewed-by: Mike Aizitsky <aizatsky@chromium.org>
        Reviewed-by: Bill Richardson <wfrichar@chromium.org>

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2018-06-15 18:07:49 -04:00
debian build: Build Debian 0.6.0-1-dev1 2018-06-15 18:07:48 -04:00
dist build: Build RPM 0.6.0-1_dev1 2018-06-15 18:07:48 -04:00
include Integrate the TPM 2 into the library; do not compile with TPM 2 yet 2018-06-15 18:07:47 -04:00
man Integrate the TPM 2 into the library; do not compile with TPM 2 yet 2018-06-15 18:07:47 -04:00
src build-sys: remove -Wstrict-aliasing=3 2018-06-15 18:07:49 -04:00
tests tests: add an initial corpus for fuzzing 2018-06-15 18:07:49 -04:00
.gitignore Ignore a few more files and delete depcomp 2017-04-06 14:21:18 -04:00
.travis.yml tpm2: Build libtpms with TPM 2 code now 2018-06-15 18:07:48 -04:00
autogen.sh build-sys: add a simple autogen.sh 2018-05-26 07:41:18 -04:00
bootstrap.sh Remove config.h.in 2014-06-30 15:04:15 -04:00
CHANGES Initial import of project 2013-10-31 15:33:22 -05:00
configure.ac build-sys: move hardening linker flags to ldflags 2018-06-15 18:07:49 -04:00
CREDITS Add CREDITS file 2013-10-31 16:37:33 -04:00
DCO1.1.txt Replace the CLA with the DCO, simply requiring a Signed-off-by: 2016-12-21 11:09:38 -05:00
INSTALL Make compileable on Ubuntu and docu for Ubuntu 2014-12-15 22:10:07 -05:00
libtpms.pc.in Make compileable on Ubuntu and docu for Ubuntu 2014-12-15 22:10:07 -05:00
LICENSE Extend license texts with TPM 2 specifics 2018-06-15 18:07:47 -04:00
Makefile.am Use boostrap.sh to build rpm on Fedora machines 2014-01-21 14:21:36 -06:00
README Replace the CLA with the DCO, simply requiring a Signed-off-by: 2016-12-21 11:09:38 -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


How to contribute?
------------------
The mailing list for libtpms is libtpms@googlegroups.com.

For patch submissions, please use a Signed-off-by: <your email> to indicate
agreement to the DCO1.1.txt.


Maintainers
-----------
libtpms is currently being maintained by Stefan Berger <stefanb@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