|
TCG Software Stack Developers Reference NAMETspi_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);
DESCRIPTIONTspi_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. PARAMETERShContextThe hContext parameter is the handle of the context object. hKeyThe hKey parameter is the handle of the key object addressing the key to be registered. persistentStorageTypeThe persistentStorageType parameter indicates the persistent storage the key is registered in. uuidKeyThe uuidKey parameter is the UUID by which the key is registered in persistent storage. persistentStorageTypeParentThe persistentStorageTypeParent parameter indicates the persistent storage that the parent key is registered in. uuidParentKeyThe uuidParentKey parameter is the UUID by which the parent key is registered in persistent storage. RETURN CODESTspi_Context_RegisterKey returns TSS_SUCCESS on success, otherwise one of the following values is returned:
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)
CONFORMING TOTspi_Context_RegisterKey conforms to the Trusted Computing Group Software Specification version 1.1 Golden SEE ALSOTspi_Context_UnregisterKey(3), Tspi_Context_LoadKeyByUUID(3), Tspi_Context_GetRegisteredKeyByUUID(3).
|