Tspi_TPM_Quote(3)

πŸ’… NAME

Tspi_TPM_Quote β€” retreive a signed set of PCR values. (Yes bestie, "retreive" β€” that's how the page spells it, we're keeping it exactly, no cap 🫢)

So real talk, this whole thing lives in the TCG Software Stack Developer's Reference manual, section 3. Let's get into it. 🌸


✨ 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_TPM_Quote(TSS_HTPM  hTPM,          TSS_HKEY        hIdentKey,
                          TSS_HPCRS hPcrComposite, TSS_VALIDATION* pValidationData);

Okay so you're pulling in seven headers before you even get to the call, that's just the vibe here πŸ’€. Then it's one function, four args, and it hands you back a TSS_RESULT. Slay.


πŸ¦‹ DESCRIPTION πŸ¦‹

So the page says, and I'm quoting the vibe not the words: Tspi_TPM_Quote destroys a context by passing in the handle to that context.

That is literally what it says. Not me editorializing, not me paraphrasing, that's the description. It's giving "the docs wrote themselves at 3am" energy 😭 and we are respecting it, periodt.


πŸŽ€ PARAMETERS πŸŽ€

hTPM

Handle of the TPM object. Like, which TPM are we even talking to, bestie. πŸ‘‘

hIdentKey

Handle of the signature key object. This is the key doing the signing, main character energy. πŸ”₯

hPcrComposite

Handle of the PCR composite object. (The original line has no full stop here, and honestly? Iconic. We're keeping the chaos.)

pValidationData

Validation data structure.

  • [IN] Provide externalData information required to compute the signature.
  • [OUT] On successful completion of the command, the structure provides a buffer containing the validation data and a buffer containing the data the validation data was computed form.
"computed form" β€” again, that's the page's spelling, not mine. We do not fix, we do not merge, we do not invent. 🫢

⭐ RETURN CODES ⭐

Tspi_TPM_Quote returns TSS_SUCCESS on success β€” love that for us πŸ’– β€” otherwise one of the following values are returned:

  • TSS_E_INVALID_HANDLE β€” hTPM, hIdentKey or hPcrComposite is not a valid handle.
  • TSS_E_BAD_PARAMETER
  • TSS_E_INTERNAL_ERROR β€” An error occurred internal to the TSS.
Heads up: TSS_E_BAD_PARAMETER comes with zero explanation on the page. No description, no nothing. It just sits there. And we are not adding one, because that would be making stuff up and that's not the move. 🚫

🌈 CONFORMING TO 🌈

Tspi_TPM_Quote conforms to the Trusted Computing Group Software Specification version 1.1 Golden. Certified good behaviour, we love a compliant queen. πŸ‘‘


🧚 SEE ALSO 🧚

(none).

Literally none. The void. The silence. Not a single friend to link to. 😭


TSS 1.1 Β· 2004-05-26

And that's the whole page bestie β€” written back on 2004-05-26, from the TSS 1.1 release of the TCG Software Stack Developer's Reference. Mwah, go quote some PCRs. πŸ’…βœ¨πŸ¦‹