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

FreeBSD Manual Pages

  
 
  

home | help
Tspi_Context_RegisterKey(3)Library Functions ManualTspi_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
       Persistent  Storage  database so	that it	can be loaded as necessary. It
       also includes 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
       persistent 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 reg-
       istered 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 Soft-
       ware 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)

NAME | SYNOPSIS | DESCRIPTION | PARAMETERS | RETURN CODES | EXAMPLE | CONFORMING TO | SEE ALSO

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

home | help