VirtualBox

source: vbox/trunk/src/libs/libtpms-0.9.0/README@ 93889

Last change on this file since 93889 was 91612, checked in by vboxsync, 3 years ago

src/libs: Export libtpms-0.9.0, bugref:10078

File size: 3.0 KB
Line 
1What is libtpms?
2----------------
3
4Libtpms is a library that targets the integration of TPM functionality
5into hypervisors, primarily into Qemu. Libtpms provides a very narrow
6public API for this purpose so that integration is possible. Only the
7minimum of necessary APIs are made publicly available.
8
9It is assumed that the user of libtpms is familiar with the concepts
10of the Trusted Platform Module (TPM). For the interaction with libtpms
11it is necessary to know how to construct valid TPM commands and to
12be able to parse their results. It is not within the scope of libtpms's
13documentation to provide background on this. See the section on references
14below.
15
16
17What files does the libtpms package provide?
18--------------------------------------------
19
20The main libtpms package provides the following files:
21
22/usr/lib64/libtpms.so.0
23/usr/lib64/libtpms.so.0.5.1
24/usr/share/doc/libtpms-0.5.1
25/usr/share/doc/libtpms-0.5.1/CHANGES
26/usr/share/doc/libtpms-0.5.1/LICENSE
27/usr/share/doc/libtpms-0.5.1/README
28
29Applications can link with -ltpms.
30
31
32What files does the libtpms development package provide?
33--------------------------------------------------------
34
35The libtpms development package (libtpms-devel) provides the following
36include files for applications to use:
37
38tpm_error.h
39tpm_library.h
40tpm_memory.h
41tpm_nvfilename.h
42tpm_tis.h
43tpm_types.h
44
45These files contain the data structures, data types and API calls supported
46by libtpms. It is recommended to not use any other API calls than those
47provided in these include files.
48
49All APIs are described in man pages. The man pages are part of the libtpms
50development package as well:
51
52TPMLIB_DecodeBlob
53TPMLIB_GetTPMProperty
54TPMLIB_GetVersion
55TPMLIB_MainInit
56TPMLIB_Process
57TPMLIB_RegisterCallbacks
58TPMLIB_Terminate
59TPMLIB_VolatileAll_Store
60TPM_Free
61TPM_IO_Hash_Data
62TPM_IO_Hash_End
63TPM_IO_Hash_Start
64TPM_IO_TpmEstablished_Get
65TPM_Malloc
66TPM_Realloc
67
68
69How to contribute?
70------------------
71The mailing list for libtpms is libtpms@googlegroups.com.
72
73For patch submissions, please use a Signed-off-by: <your email> to indicate
74agreement to the DCO1.1.txt.
75
76
77Fuzzing
78-------
79Initial fuzzing is possible with clang & libfuzzer.
80
81You have to configure the project with --enable-fuzzer
82(--enable-sanitizer can also help spot more issues). Then you can
83build fuzz and run it with the testing corpus.
84
85Fuzz testing is known to work with Fedora 28 or later. It requires that the
86'clang' package is installed.
87
88Ex:
89$ ./configure --with-openssl --with-tpm2 --enable-sanitizers --enable-fuzzer \
90 CC=clang CXX=clang++
91$ make && make -C tests fuzz
92$ tests/run-fuzzer.sh
93
94oss-fuzz builds with its own fuzzer flags, and set $LIB_FUZZING_ENGINE
95to be linked with. The script run by oss-fuzz is tests/oss-fuzz.sh.
96
97Maintainers
98-----------
99libtpms is currently being maintained by Stefan Berger <stefanb@us.ibm.com>.
100
101References:
102-----------
103
104Documentation about the Trusted Platform Module (TPM) can be downloaded
105from the Trusted Computing Group's website at
106
107http://www.trustedcomputinggroup.org
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette