These example programs show how to do various things with Trousers and libtpm. The only important ones are these: idkey.c - Goes through the trouble of creating an identity key - this process is fairly complex under normal circumstances but in our environment it is much simpler. This is why we are able to skip all the Privacy CA stuff. doquote.c - This is a helper program that we use inside the TPM MFS; it was made to be used in scripts with tmcc. It will take the output from TMCD 'quoteprep' command, do the proper quote, and then write the output back out so it can be piped right back to tmcc for the 'nextstate' command. See the usage for more details. loadkey.c - This demonstrates how to load an encrypted identity key blob and make a quote with it. It also has some bonus code that shows how to parse the quote. ltpmloadkey.c - This also loads an identity key (but it uses libtpm, unlike all other code here), generates a quote with the identity key, parses it, and verifies it. This is fairly valuable because there is/was practically no documentation on how to do this. pcrcomposite.c - Shows the PCR composite structure (also in ltpmloadkey.c). tpm-signoff.c - This is another helper program we use in the TPM MFS. It extends rubbish into the specified PCR. We use this for the sign-off phase of the boot chain.
Eric Eide
authored
This commit is intended to makes the license status of Emulab and ProtoGENI source files more clear. It replaces license symbols like "EMULAB-COPYRIGHT" and "GENIPUBLIC-COPYRIGHT" with {{{ }}}-delimited blocks that contain actual license statements. This change was driven by the fact that today, most people acquire and track Emulab and ProtoGENI sources via git. Before the Emulab source code was kept in git, the Flux Research Group at the University of Utah would roll distributions by making tar files. As part of that process, the Flux Group would replace the license symbols in the source files with actual license statements. When the Flux Group moved to git, people outside of the group started to see the source files with the "unexpanded" symbols. This meant that people acquired source files without actual license statements in them. All the relevant files had Utah *copyright* statements in them, but without the expanded *license* statements, the licensing status of the source files was unclear. This commit is intended to clear up that confusion. Most Utah-copyrighted files in the Emulab source tree are distributed under the terms of the Affero GNU General Public License, version 3 (AGPLv3). Most Utah-copyrighted files related to ProtoGENI are distributed under the terms of the GENI Public License, which is a BSD-like open-source license. Some Utah-copyrighted files in the Emulab source tree are distributed under the terms of the GNU Lesser General Public License, version 2.1 (LGPL).
Name | Last commit | Last update |
---|---|---|
.. | ||
libtpm | ||
Makefile | ||
README | ||
S60testbed | ||
doquote.c | ||
fail.c | ||
getpub.c | ||
idkey.c | ||
keygen.c | ||
loadkey.c | ||
ltpmloadkey.c | ||
pcrcomposite.c | ||
script1.sh | ||
script2.sh | ||
tpm-signoff.c |