Software TPM Introduction

The software TPM is targeted toward application development, education, and virtualization.

Software Development

The intent is that an application can be developed using the software TPM. The application should then run using a hardware TPM without changes.

Advantages of this approach:

This package contains four modules (the items in the green boxes):

Software TPM
A complete TPM 1.2 implementation. Portions of the specification are reproduced with permission of the Trusted Computing Group.
A library of low level demo TPM function calls
A set of demo command line utilities and a TPM regression test using libtpm
TPM Proxy
Proxies used to connect a TCP/IP based TPM interface to a hardware TPM device driver
Trousers Interface
Instructions for running the SW TPM with Trousers
TCG TPM Test Suite
Instructions for running the SW TPM with the TCG TPM Test Suite
The IBM Software TPM can be downloaded here.

See also the TrouSers TSS for Linux, the Linux Integrity Subsystem and Open Platform Trust Services (OpenPTS).


The typical Software TPM interface is TCP/IP sockets. The block diagram shows that many host applications, such as the Trousers TSS , the IBM TPM utilities and regression test, the TCG TPM test suite, and the IBM DAA test suite all support this socket interface.

Some advantages are:

TPM Release Block Diagram Figure

Software TPM

The features include:


libtpm supports the Utilities. It compiles to a shared object or DLL. It provides a low level API to TPM command ordinals.

Here is some background material.

The TPM interfaces are TCP/IP sockets to the Software TPM or TPM Proxy, Unix domain sockets, or the hardware TPM device driver.
The TPM interfaces is TCP/IP sockets only. Use the TPM Proxy to connect to a hardware TPM device driver.


Utilities is a number of command line programs. Each typically maps directly to TPM command ordinals, but some support authorization session setup or context saving.

In general, the -h option provides help for each program.

TPM Proxy

The TPM Proxy acts on one side as a TCP/IP socket server and on the other side as an interface to the TPM device driver. It passes commands from the socket to the device driver and passes responses from the device driver to the socket.

The proxies are useful in cases such as:

Trousers Interface

The Trousers TSS can interface to the SW TPM using TCP/IP sockets. Here are some instructions. Please provide feedback.

TCG TPM Test Suite

To interface the TCG TPM Test Suite to the SW TPM using TCP/IP sockets:

Get IBM's Software Trusted Platform Module at Fast, secure and Free Open Source software downloads