Provided by: libtss2-doc_4.1.3-1.2ubuntu1_all bug

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 Computing Group (TCG) defined API for the
       lowest level communication with the TPM.  Using this API the caller can exchange (send  /  receive)  TPM2
       command  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
       System 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          published          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_SUCCESS.   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_Initialize(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.1.3 of Open Source 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 at https://github.com/tpm2-software/tpm2-tss/.

TPM2 Software Stack                                 JUNE 2017                            Tss2_Tcti_Mssim_Init(3)