Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tspi_Context_UnregisterKey (3)

Name

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

TCG Software Stack Developer's Reference
                                                 Tspi_Context_UnregisterKey(3)



NAME
       Tspi_Context_UnregisterKey - unregister a key from the persistent stor-
       age 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


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+---------------------------+
       |ATTRIBUTE TYPE |     ATTRIBUTE VALUE       |
       +---------------+---------------------------+
       |Availability   | library/security/trousers |
       +---------------+---------------------------+
       |Stability      | Uncommitted               |
       +---------------+---------------------------+

SEE ALSO
       Tspi_Key_CreateKey(3), Tspi_Context_RegisterKey(3).



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at https://github.com/or-
       acle/solaris-userland.   The  original  community source was downloaded
       from                                                    https://source-
       forge.net/projects/trousers/files/trousers/0.3.15/trousers-0.3.15.tar.gz.

       Further information about this software can be found on the open source
       community website at http://trousers.sourceforge.net/.



TSS 1.1                           2004-05-26
                                                 Tspi_Context_UnregisterKey(3)