TPM_TAKEOWNERSHIP(3)

NAME
TPM_TakeOwnership - Take ownership of the TPM chip

LIBRARY
tcpa

SYNOPSIS
#include <tcpa.h>
uint32_t
TPM_TakeOwnership(unsigned char *ownpass, unsigned char *srkpass, keydata *key, FILE *log);

DESCRIPTION
In order to really use the TPM chip effectively, you must first take ownership of the chip. The TPM_TakeOwnership() function allows you to do this. First, however, the actual owner of the chip must prove he has physical access to the chip somehow. On IBM Thinkpad laptops, this is accomplished by holding down the key during boot.

Once the owner has proved he has physical access to the chip, then this function will work properly. The chip from taking ownership on, the chip will have a password, called the Owner Password, that the owner can use to identify himself to the chip. The first parameter, ownpass is the SHA1 hash of that password to be set in the chip.

The TPM_TakeOwnership() command causes the chip to create a new public / private key pair called the Storage Root Key. The private half of this key pair never leaves the chip. This key pair is used to encrypt (seal) other keys as they leave the chip, hence forming a tree of keys whose security leads back to this root key. This key is also secured with a password. The SHA1 hash of that password should be passed in as srkpass, and then the key will be returned in *key.

This function takes a log parameter. This is used for diagnostic purposed, and outputs debugging information to this FILE if non-NULL.

RETURN VALUES

SEE ALSO
TPM_Transmit(3), TPM_OIAP(3), TPM_GetCapability_Version(3), TPM_LoadKey(3), TPM_ReadPubek(3), TPM_Seal(3), TPM_Sign(3)

AUTHORS
Rick Wash <rwash@citi.umich.edu>