Provided by: libtss2-tcti-tabrmd-dev_3.0.0-1ubuntu2_amd64 bug

NAME

       Tss2_Tcti_Tabrmd_Init - Initialization function for the tpm2-abrmd TCTI library.

SYNOPSIS

       The  Tss2_Tcti_Tabrmd_Init()  function  is  used  to initialize a TCTI context for communication with the
       tpm2-abrmd(8).

       #include <tcti/tcti-tabrmd.h>

       TSS2_RC Tss2_Tcti_Tabrmd_Init (TSS2_TCTI_CONTEXT *tcti_context, size_t *size, const char *conf);

DESCRIPTION

       Tss2_Tcti_Tabrmd_Init() attempts to  initialize  a  caller  allocated  tcti_context  of  size  size  with
       configuration  specified  in  the  configuration  string conf.  . Since the tcti_context must be a caller
       allocated buffer, the caller needs to know the 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 my then allocate a buffer of this size (or larger) and call tss2_Tcti_Tabrmd_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_Tabrmd_Init() function in the section titled EXAMPLE.

       The conf parameter is a string of key / value pairs describing the desired connection properties for  the
       TCTI.  If  the  caller  provides a NULL conf string then defaults that correspond to the defaults for the
       tpm2-abrmd   (8)   will   be   used.   This   is   the   same   as    providing    the    conf    string:
       "bus_name=com.intel.tss2.Tabrmd,bus_type=system".  Keys  and  values  are  separated by the '=' character
       while each key / value pair is separated by the ',' character. The supported keys and values are:

       • bus_name - the dbus name owned by the daemon. See the tpm2-abrmd (8) --dbus-name option.

       • bus_type - the bus type used for the connection with the daemon. The value associated with this key may
         be either "system" or "session".

       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  tpm2-abrmd (8).  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”       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_Tabrmd_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 the size parameter is NULL.

       TSS2_TCTI_RC_NO_CONNECTION is returned when communication with the tpm2-abrmd (8) fails.

       TSS2_TCTI_RC_GENERAL_FAILURE is returned for all other errors.

EXAMPLE

       #include <inttypes.h>
       #include <stdlib.h>
       #include <stdio.h>
       #include <tcti/tcti-tabrmd.h>

       TSS2_RC rc;
       TSS2_TCTI_CONTEXT *tcti_context;
       size_t size;

       rc = tss2_tcti_tabrmd_init (NULL, &size, NULL,
       if (rc != TSS2_RC_SUCCESS) {
           fprintf (stderr, "Failed to get allocation size for tabrmd 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_tabrmd_init (tcti_context, &size, NULL);
       if (rc != TSS2_RC_SUCCESS) {
           fprintf (stderr, "Failed to initialize tabrmd TCTI context: "
                    "0x%" PRIx32 "0, rc);
           free (tcti_context);
           exit (EXIT_FAILURE);
       }
       exit (EXIT_SUCCESS);

AUTHOR

       Philip Tricca <philip.b.tricca@intel.com>

SEE ALSO

       tcti-tabrmd(7), tpm2-abrmd(8)

COLOPHON

       This page is part of the 3.0.0 release of Intel's TPM2 Access Broker  &  Resource  Management  Daemon.  A
       description  of the project, information about reporting bugs, and the latest version of this page can be
       found at https://github.com/01org/tpm2-abrmd/.