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

  
 
  

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

		    TCG Software Stack Developers Reference

NAME
     Tspi_Context_RegisterKey  -  register  a  key in the TSS Persistent Storage
     database

SYNOPSIS
     #include <tss/platform.h>
     #include <tss/tcpa_defines.h>
     #include <tss/tcpa_typedef.h>
     #include <tss/tcpa_struct.h>
     #include <tss/tss_typedef.h>
     #include <tss/tss_structs.h>
     #include <tss/tspi.h>

     TSS_RESULT Tspi_Context_RegisterKey(TSS_HCONTEXT hContext, 		   TSS_HKEY hKey,
					 TSS_FLAG     persistentStorageType,	   TSS_UUID uuidKey,
					 TSS_FLAG     persistentStorageTypeParent, TSS_UUID uuidParentKey);

DESCRIPTION
     Tspi_Context_RegisterKey is the API that registers a key with the TSS  Per-
     sistent Storage database so that it can be loaded as necessary. It also in-
     cludes all information required for loading the key, as well as information
     about its parent key.

PARAMETERS
   hContext
     The hContext parameter is the handle of the context object.

   hKey
     The hKey parameter is the handle of the key object addressing the key to be
     registered.

   persistentStorageType
     The  persistentStorageType  parameter  indicates the persistent storage the
     key is registered in.

   uuidKey
     The uuidKey parameter is the UUID by which the key is registered in persis-
     tent storage.

   persistentStorageTypeParent
     The persistentStorageTypeParent parameter indicates the persistent  storage
     that the parent key is registered in.

   uuidParentKey
     The  uuidParentKey  parameter is the UUID by which the parent key is regis-
     tered in persistent storage.

RETURN CODES
     Tspi_Context_RegisterKey returns TSS_SUCCESS on success, otherwise  one  of
     the following values is returned:

     TSS_E_INVALID_HANDLE
	    hContext is not a valid handle.

     TSS_E_PS_KEY_NOTFOUND
	    The key cannot be found in the persistent storage database.

     TSS_E_INTERNAL_ERROR
	    An internal SW error has been detected.

     TSS_E_BAD_PARAMETER
	    One or more parameters is bad.

EXAMPLE
     #include <trousers/tss.h>

     int
     main(void)
     {
	  TSS_FLAGS initFlags = ...;
	  TSS_HKEY  hKey, hSRK;
	  TSS_UUID  keyUUID = {...};

	  // Create a TSP handle
	  result = Tspi_Context_Create(&hContext);
	  if (result != TSS_SUCCESS)
	       Error_Path();

	  // Connect to the TCSD
	  result = Tspi_Context_Connect(hContext, GLOBALSERVER);
	  if (result != TSS_SUCCESS)
	       Error_Path();

	  // Create the Key Object
	  result = Tspi_Context_CreateObject(hContext,
			 TSS_OBJECT_TYPE_RSAKEY,
			 initFlags, &hKey);
	  if (result != TSS_SUCCESS)
	       Error_Path();

	  // Load parent Key by UUID
	  result = Tspi_Context_LoadKeyByUUID(hContext, TSS_PS_TYPE_SYSTEM,
				   SRK_UUID, &hSRK);
	  if (result != TSS_SUCCESS)
	       Error_Path();

	  // Do policy/secret handling here

	  result = Tspi_Key_CreateKey(hKey, hSRK, 0);
	  if (result != TSS_SUCCESS)
	       Error_Path();

	  // Register the Key in System PS (on the TCSD's platform)
	     result = Tspi_Context_RegisterKey(hContext, hKey, TSS_PS_TYPE_SYSTEM,
			      keyUUID, TSS_PS_TYPE_SYSTEM,
			      SRK_UUID);
	  if (result != TSS_SUCCESS)
	       Error_Path();

	  /* ...
	   *
	   * Use the key as needed, exiting the program if necessary, reloading
	   * the key using Tspi_Context_LoadKeyByUUID() after each restart. Once
	   * the key is no longer useful, unregister it from system PS as part
	   * of clean up.
	   */

	     // Unregister the Key
	  result = Tspi_Context_UnregisterKey(hContext, TSS_PS_TYPE_SYSTEM,
			      migratableSignUUID, &hKey);
	  if (result != TSS_SUCCESS)
	       Error_Path();

	  // exit, discarding hKey
     }

CONFORMING TO
     Tspi_Context_RegisterKey  conforms  to the Trusted Computing Group Software
     Specification version 1.1 Golden

SEE ALSO
     Tspi_Context_UnregisterKey(3),   Tspi_Context_LoadKeyByUUID(3),   Tspi_Con-
     text_GetRegisteredKeyByUUID(3).

TSS 1.1 			   2004-05-25	     Tspi_Context_RegisterKey(3)

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

home | help