# TPM Quick ref

TODO: this page looks very outdated. glossary.md does not exist,
git.chromium.org does not exist. Delete it?

This page is meant to help keep track of TPM use across the system. It may not
be up to date at any given point, but it's a wiki so you know what to do.

## Details

*   [TPM ownership management](http://git.chromium.org/gitweb/?p=chromiumos/platform/cryptohome.git;a=blob;f=README.tpm)
*   TPM_Clear is done (as in vboot_reference) but in the firmware code itself on
    switch between dev and verified modes and in recovery.  (TODO: link code)
*   [TPM owner password clearing](http://git.chromium.org/gitweb/?p=chromium/chromium.git;a=blob;f=chrome/browser/chromeos/login/login_utils.cc;h=9c4564e074c650bd91c27243c589d603740793bb;hb=HEAD#l861)
    (triggered at sign-in by chrome):
*   [PCR extend](http://git.chromium.org/gitweb/?p=chromiumos/platform/vboot_reference.git;a=blob;f=firmware/lib/tpm_bootmode.c)
    (no active use elsewhere):
*   [NVRAM use for OS rollback attack protection](http://git.chromium.org/gitweb/?p=chromiumos/platform/vboot_reference.git;a=blob;f=firmware/lib/rollback_index.c)
*   [Tamper evident storage](http://git.chromium.org/gitweb/?p=chromiumos/platform/cryptohome.git;a=blob;f=README.lockbox)
*   [Tamper-evident storage for avoiding runtime device management mode changes](http://git.chromium.org/gitweb/?p=chromium/chromium.git;a=blob;f=chrome/browser/chromeos/login/enrollment/enterprise_enrollment_screen.cc)
*   [User key/passphrase and cached data protection](http://git.chromium.org/gitweb/?p=chromiumos/platform/cryptohome.git;a=blob;f=README.homedirs)
*   A TPM in a Chrome device has an EK certificate that is signed by an
    intermediate certificate authority that is dedicated to the specific TPMs
    allocated for use in Chrome devices. OS-level self-validation of the
    platform TPM should be viable with this or chaining any other trust
    expectations.
*   TPM is used for per-user certificate storage (NSS+PKCS#11) using
    opencryptoki but soon to be replaced by chaps. Update links here when chaps
    stabilizes (Each user's pkcs#11 key store is kept in their homedir to ensure
    it is tied to the local user account). This functionality includes VPN and
    802.1x-related keypairs.
