Tspi_Context_UnregisterKey

Langue: en

Version: 2004-05-26 (fedora - 06/07/09)

Section: 3 (Bibliothèques de fonctions)

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).