Tspi_Context_UnregisterKey(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