tspi_context_unregisterkey(3) - Linux man page
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.
- TSS_E_PS_KEY_NOTFOUND - the parameter uuidKey is an invalid UUID.
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).