logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Tspi_Context_UnregisterKey - unregister a key from the persistent storage device.

Conforming To

Tspi_Context_UnregisterKey  conforms  to  the  Trusted Computing Group Software Specification version 1.1
       Golden

Description

TSS_Context_UnregisterKey provides the capabilities of the TSS Core Service or TSS Service Provider

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
       }

Name

       Tspi_Context_UnregisterKey - unregister a key from the persistent storage device.

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  re‐
       turned:

       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.

See Also

Tspi_Key_CreateKey(3), Tspi_Context_RegisterKey(3).

TSS 1.1                                            2004-05-26                      Tspi_Context_UnregisterKey(3)

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_RESULTTspi_Context_UnregisterKey(TSS_HCONTEXThContext,TSS_FLAGpersistentStorageType,TSS_UUIDuuidKey,TSS_HKEY*phKey);

See Also