Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Tss2_Tcti_Mssim_Init(3)	      TPM2 Software Stack      Tss2_Tcti_Mssim_Init(3)

       Tss2_Tcti_Mssim_Init  -	Initialization	function for the Microsoft TPM
       simulator TCTI library.

       #include	<tcti/tcti_mssim.h>

       TSS2_RC Tss2_Tcti_Mssim_Init  (TSS2_TCTI_CONTEXT	 *tctiContext,	size_t
       *contextSize, const char	*conf);

       The  Tss2_Tcti_Mssim_Init() function initializes	a TCTI context used to
       communicate with	the Microsoft TPM2 simulator.

       Tss2_Tcti_Mssim_Init()  attempts	 to  initialize	 a  caller   allocated
       tcti_context  of	 size  size using caller provided configuration	string
       conf . Since the	tcti_context must be a caller  allocated  buffer,  the
       caller  needs to	know the buffer	size required by the TCTI library. The
       minimum size of this context can	be discovered by  providing  NULL  for
       the  tcti_context  and  a  non- NULL size parameter. The	initialization
       function	will then populate the size parameter with the minimum size of
       the tcti_context	buffer.	The caller must	then allocate a	buffer of this
       size (or	larger)	and call Tss2_Tcti_Mssim_Init () again	providing  the
       newly  allocated	 tcti_context and the size of this context in the size
       parameter. This pattern is common to all	TCTI initialization functions.
       We  provide an example of this pattern using the	Tss2_Tcti_Mssim_Init()
       function	in the section titled EXAMPLE.

       The conf	parameter is a C string	used to	configure  the	TCTI  context.
       This configuration string is a series of	key / value pairs that specify
       the host	and port used to connect to an instance	of the Microsoft  TPM2
       simulator.  The	keys  and  values  are separated by the	'=' character,
       while each key /	value pair is separated	by the ',' character.

       The only	keys supported in the conf string are host and port.  The host
       may  be an IPv4 address,	an IPv6	address, or a host name. The port must
       be a valid uint16_t in string form. If a	NULL conf string  is  provided
       by  the	caller then the	default	of "host=localhost,port=2321" is used.
       If either host or port are omitted then their respective	default	 value
       will be used.

       Once initialized, the TCTI context returned exposes the Trusted Comput-
       ing Group (TCG) defined API for the lowest level	communication with the
       TPM.  Using this	API the	caller can exchange (send / receive) TPM2 com-
       mand and	response buffers with the Microsoft TPM	simulator.  In	nearly
       all  cases  however,  the  caller  will initialize a context using this
       function	before passing the context to a	higher level API like the Sys-
       tem API (SAPI), and then	never touch it again.

       For  a  more  thorough  discussion  of the TCTI API see the "TSS	System
       Level API and TPM Command Transmission Interface	Specification" as pub-
       lished			by		     the		  TCG:

       A  successful  call  to Tss2_Tcti_Mssim_Init() will return TSS2_RC_SUC-
       CESS.  An unsuccessful call will	produce	a response code	 described  in
       section ERRORS.

       TSS2_TCTI_RC_BAD_VALUE  is  returned  if	 both the tcti_context and the
       size parameters are NULL, or if the config parameter is NULL.

       TCTI initialization fragment:

       #include	<inttypes.h>
       #include	<stdlib.h>
       #include	<stdio.h>
       #include	<tcti/tcti_mssim.h>

       TSS2_RC rc;
       TSS2_TCTI_CONTEXT *tcti_context;
       size_t size;
       const char *conf	= "host=localhost,port=2321"

       rc = Tss2_Tcti_Mssim_Init (NULL,	&size, NULL);
       if (rc != TSS2_RC_SUCCESS) {
	   fprintf (stderr, "Failed to get allocation size for mssim TCTI "
		    " context: 0x%" PRIx32 "0, rc);
	   exit	(EXIT_FAILURE);
       tcti_context = calloc (1, size);
       if (tcti_context	== NULL) {
	   fprintf (stderr, "Allocation	for TCTI context failed: %s0,
		    strerror (errno));
	   exit	(EXIT_FAILURE);
       rc = Tss2_Tcti_Mssim_Init (&tcti_context, &size,	conf);
       if (rc != TSS2_RC_SUCCESS) {
	   fprintf (stderr, "Failed to initialize mssim	TCTI context: "
		    "0x%" PRIx32 "0, rc);
	   free	(tcti_context);
	   exit	(EXIT_FAILURE);

       Philip Tricca <>

       Tss2_Tcti_Device_Init(3),  Tss2_Tcti_Socket_Init(3),  Tss2_TctiLdr_Ini-
       tialize(3),  Tss2_TctiLdr_Finalize(3),  tcti-device(7), tcti-socket(7),
       tcti-tabrmd(7), tpm2-abrmd(8)

       This page is part of release 2.4.2 of Intel's implementation of the TCG
       TPM2  Software  Stack (TSS2). A description of the project, information
       about reporting bugs, and the latest version of this page can be	 found

Intel				   JUNE	2017	       Tss2_Tcti_Mssim_Init(3)


Want to link to this manual page? Use this URL:

home | help