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

FreeBSD Manual Pages

  
 
  

home | help
Tspi_Context_UnregiTCGrSoftware	Stack Developer'sTspi_Context_UnregisterKey(3)

NAME
       Tspi_Context_UnregisterKey - unregister a key from the persistent stor-
       age 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_Context_UnregisterKey(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_UnregisterKey&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help