diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
| commit | 253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch) | |
| tree | adf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man3/Tspi_Context_RegisterKey.3 | |
| parent | a9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff) | |
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man3/Tspi_Context_RegisterKey.3')
| -rw-r--r-- | static/netbsd/man3/Tspi_Context_RegisterKey.3 | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/static/netbsd/man3/Tspi_Context_RegisterKey.3 b/static/netbsd/man3/Tspi_Context_RegisterKey.3 new file mode 100644 index 00000000..fe68b767 --- /dev/null +++ b/static/netbsd/man3/Tspi_Context_RegisterKey.3 @@ -0,0 +1,170 @@ +.\" Copyright (C) 2004 International Business Machines Corporation +.\" Written by Megan Schneider based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden +.\" +.de Sh \" Subsection +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Ip \" List item +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.TH "Tspi_Context_RegisterKey" 3 "2004-05-25" "TSS 1.1" +.ce 1 +TCG Software Stack Developers Reference +.SH NAME +Tspi_Context_RegisterKey \- register a key in the TSS Persistent Storage database +.SH "SYNOPSIS" +.ad l +.hy 0 +.nf +.B #include <tss/platform.h> +.B #include <tss/tcpa_defines.h> +.B #include <tss/tcpa_typedef.h> +.B #include <tss/tcpa_struct.h> +.B #include <tss/tss_typedef.h> +.B #include <tss/tss_structs.h> +.B #include <tss/tspi.h> +.sp +.BI "TSS_RESULT Tspi_Context_RegisterKey(TSS_HCONTEXT " hContext ", TSS_HKEY " hKey "," +.BI " TSS_FLAG " persistentStorageType ", TSS_UUID " uuidKey "," +.BI " TSS_FLAG " persistentStorageTypeParent ", TSS_UUID " uuidParentKey "); " +.fi +.sp +.ad +.hy + +.SH "DESCRIPTION" +.PP +\fBTspi_Context_RegisterKey\fR 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. + +.SH "PARAMETERS" +.PP +.SS hContext +The \fIhContext\fR parameter is the handle of the context object. +.SS hKey +The \fIhKey\fR parameter is the handle of the key object addressing the key +to be registered. +.SS persistentStorageType +The \fIpersistentStorageType\fR parameter indicates the persistent +storage the key is registered in. +.SS uuidKey +The \fIuuidKey\fR parameter is the UUID by which the key is registered in +persistent storage. +.SS persistentStorageTypeParent +The \fIpersistentStorageTypeParent\fR parameter indicates the persistent storage +that the parent key is registered in. +.SS uuidParentKey +The \fIuuidParentKey\fR parameter is the UUID by which the parent key is +registered in persistent storage. + +.SH "RETURN CODES" +.PP +\fBTspi_Context_RegisterKey\fR returns TSS_SUCCESS on success, otherwise +one of the following values is returned: +.TP +.SM TSS_E_INVALID_HANDLE +\fIhContext\fR is not a valid handle. + +.TP +.SM TSS_E_PS_KEY_NOTFOUND +The key cannot be found in the persistent storage database. + +.TP +.SM TSS_E_INTERNAL_ERROR +An internal SW error has been detected. + +.TP +.SM TSS_E_BAD_PARAMETER +One or more parameters is bad. + +.SH "EXAMPLE" +.nf +#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 +} +.fi + +.SH "CONFORMING TO" + +.PP +\fBTspi_Context_RegisterKey\fR conforms to the Trusted Computing Group +Software Specification version 1.1 Golden + +.SH "SEE ALSO" + +.PP +\fBTspi_Context_UnregisterKey\fR(3), \fBTspi_Context_LoadKeyByUUID\fR(3), +\fBTspi_Context_GetRegisteredKeyByUUID\fR(3). + |
