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

  
 
  

home | help
Tspi_C...terKey(3)  TCG Software Stack Developer's Reference  Tspi_C...terKey(3)

NAME
     Tspi_Context_UnregisterKey  -  unregister a key from the persistent storage
     device.

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_UnregisterKey(TSS_HCONTEXT hContext, TSS_FLAG  persistentStorageType,
					   TSS_UUID	uuidKey,  TSS_HKEY* phKey);

DESCRIPTION
     TSS_Context_UnregisterKey provides the capabilities of the TSS Core Service
     or TSS Service Provider

PARAMETERS
   hContext
     The handle of the context object.

   persistentStorageType
     Flag indicating the persistent storage.

   uuidKey
     The UUID of the key to be removed from the persistent storage.

   phKey
     Recieves the handle of a key object containing  the  information  from  the
     archive.

   pulRespDataLength
     Recieves the length (in bytes) of the prgbRespData parameter.

   prgbRespData
     On  successful  completion  of  the  command,  this parameter points to the
     buffer containing the actual data of the specified capability.  The  handle
     of the object to be destroyed

RETURN CODES
     Tspi_Context_UnregisterKey returns TSS_SUCCESS on success, otherwise one of
     the following values are returned:

     TSS_E_INVALID_HANDLE - the parameter hContext is an invalid parameter.

     TSS_E_PS_KEY_NOTFOUND - the parameter uuidKey is an invalid UUID.

     TSS_E_INTERNAL_ERROR - An error occurred internal to the TSS.

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_UnregisterKey conforms to the Trusted Computing Group Software
     Specification version 1.1 Golden

SEE ALSO
     Tspi_Key_CreateKey(3), Tspi_Context_RegisterKey(3).

TSS 1.1 			   2004-05-26		      Tspi_C...terKey(3)

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

home | help