Tspi_C...ByUUID(3)
π Tspi_C...ByUUID(3) β TCG Software Stack Developer's Reference π
okay bestie, so this is a page from the TCG Software Stack Developer's Reference, and yes the man page name is literally abbreviated with ... in it, that's just how they do it here, don't @ me. it's about pulling up your registered keys, and honestly? iconic behavior.
β¨ NAME β¨
Tspi_Context_GetRegisteredKeysByUUID β get an array of TSS_KM_KEYINFO structures based on the state of persistent storage.
like, it goes and fetches the whole rundown of what keys are living in persistent storage rn. very much giving "let me check the group chat history" energy.
πΈ SYNOPSIS πΈ
first, the includes, because you cannot sit with us without them:
#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>
and then the actual function, look at her:
TSS_RESULT Tspi_Context_GetRegisteredKeysByUUID(TSS_HCONTEXT hContext, TSS_FLAG persistentStorageType,
TSS_UUID* pUuidData, UINT32* pulKeyHierarchySize,
TSS_KM_KEYINFO** ppKeyHierarchy);
she takes five things and she gives you back a TSS_RESULT. periodt.
π¦ DESCRIPTION π¦
TSS_Context_GetRegisteredKeysByUUID (yes, the man page says TSS_Context_... in the description and Tspi_Context_... everywhere else, we don't make the rules, we just report them π) gets an array of TSS_KM_KEYINFO structures.
this info reflects the state of the registered key hierarchy. and here's the tea: the keys stored in the persistent storage are totally independent from either the context you passed in the function call, or the context that was provided while the key registration was being processed. like, they do not care about your context, they have their own life. main character keys fr.
π PARAMETERS π
hContext
the handle of the context object. your little context badge, your entry pass, your VIP wristband. π«Ά
persistentStorageType
flag indicating the persistent storage the key is registered in. which storage? that storage. you tell it.
pUuidData
the UUID the key was registered in the persistent storage (TSP or connected TCS).
okay so this one has layers, listen up:
- if no key UUID is provided β meaning
KeyUUIDisNULLβ the returned array of theTSS_KM_KEYINFOstructure contains data reflecting the whole key hierarchy starting with root key. the full family tree, no cuts. π - if a certain key's UUID is provided, the returned array of
TSS_KM_KEYINFOstructures only contains data reflecting the path of the key hierarchy regarding that key. the first array entry is the key addressed by the given UUID, followed by its parent key, up to the root key. so it's like... you asked for one cousin and got the ancestry line up to the grandparents. slay.
pulKeyHierarchySize
receives the length (number of array entries) of the ppKeyHierarchy parameter. she's the counter, she tells you how many entries you got. π
ppKeyHierarchy
on successful completion of the command, this parameter points to a buffer containing the actual key hierarchy data. the real goods. the receipts. π
π₯ RETURN CODES π₯
Tspi_Context_GetRegisteredKeysByUUID returns TSS_SUCCESS on success, otherwise one of the following values are returned:
TSS_E_INVALID_HANDLEβhContextis an invalid handle. bestie that handle is not it. πTSS_E_BAD_PARAMETERβ the parameters said no. πTSS_E_INTERNAL_ERRORβ an error occurred internal to the TSS. not your fault, it's giving inside job π
lowkey important: only TSS_SUCCESS means you're good. anything else means go read the list again.
π CONFORMING TO π
Tspi_Context_GetRegisteredKeysByUUID conforms to the Trusted Computing Group Software Specification version 1.1 Golden. yes, Golden. as in, it ate and left no crumbs. β
π SEE ALSO π
go read that one next, iykyk. π§
TSS 1.1 Β· 2004-05-26 β yeah this page is old enough to have its own driver's license, but the info still hits. mwah, take care of your keys bestie πβ¨ππ¦πΈπ π«Ά
π¦ where this page comes from
- debian bookworm: libtspi-dev 0.3.15-0.3 Β· BSD-3-Clause
- debian trixie: libtspi-dev 0.3.15-0.4 Β· BSD-3-Clause
- epel 10: trousers-devel 0.3.15-11.el10_0 Β· BSD
- epel 9: trousers-devel 0.3.15-5.el9 Β· BSD
- fedora 43: trousers-devel 0.3.15-15.fc43 Β· LicenseRef-Callaway-BSD
- fedora 43: trousers-devel 0.3.15-15.fc43 Β· LicenseRef-Callaway-BSD
- fedora 43: trousers-devel 0.3.15-16.fc43 Β· LicenseRef-Callaway-BSD
- fedora 43: trousers-devel 0.3.15-16.fc43 Β· LicenseRef-Callaway-BSD
- fedora 44: trousers-devel 0.3.15-17.fc44 Β· LicenseRef-Callaway-BSD
- fedora 44: trousers-devel 0.3.15-17.fc44 Β· LicenseRef-Callaway-BSD
- nixos 26.05: trousers 0.3.15
- nixpkgs unstable: netbsd-source 11.0
- nixpkgs unstable: trousers 0.3.15
- opensuse-leap 16.0: trousers-devel 0.3.15-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: trousers-devel 0.3.15-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: trousers-devel 0.3.15-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: trousers-devel 0.3.15-160000.2.2 Β· BSD-3-Clause
- ubuntu jammy: libtspi-dev 0.3.15-0.2 Β· BSD-3-Clause
- ubuntu noble: libtspi-dev 0.3.15-0.3build2 Β· BSD-3-Clause
- ubuntu questing: libtspi-dev 0.3.15-0.4
- ubuntu resolute: libtspi-dev 0.3.15-1 Β· BSD-3-Clause
- ubuntu stonking: libtspi-dev 0.3.15-1ubuntu2 Β· BSD-3-Clause
- Copyright (C) 2004 International Business Machines Corporation
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms