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

FreeBSD Manual Pages

  
 
  

home | help
Tss2_Tcti_Mssim_Init(3)	   Library Functions Manual    Tss2_Tcti_Mssim_Init(3)

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

SYNOPSIS
       #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.

DESCRIPTION
       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:
       https://trustedcomputinggroup.org/tss-system-level-api-tpm-command-transmission-interface-specification/

RETURN VALUE
       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.

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.

EXAMPLE
       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);
       }

AUTHOR
       TPM2 Software Project <https://github.com/tpm2-software/tpm2-tss>

SEE ALSO
       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)

COLOPHON
       This page is part of release 4.0.1 of Open Source implementation	of the
       TCG  TPM2 Software Stack	(TSS2).	A description of the project, informa-
       tion about reporting bugs, and the latest version of this page  can  be
       found at	https://github.com/tpm2-software/tpm2-tss/.

TPM2 Software Stack		   JUNE	2017	       Tss2_Tcti_Mssim_Init(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Tss2_Tcti_Mssim_Init&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help