Tspi_TPM_DAA_JoinInit(3)

πŸ“¦ version 11.0, in nixpkgs unstable

πŸ’… Tspi_TPM_DAA_JoinInit(3) πŸ’…

okay bestie, so this one lives in the Library Functions Manual, and it's straight outta the TCG Software Stack Developer's Reference β€” very "trusted computing, but make it cute" energy. stay with me, this is the glow-up of DAA Join and it's ✨iconic✨


🌸 NAME 🌸

Tspi_TPM_DAA_JoinInit β€” start the DAA Join process πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <tss/tss_typedef.h>
#include <tss/tss_structs.h>
#include <tss/tspi.h>

TSPICALL Tspi_TPM_DAA_JoinInit(
    TSS_HDAA                  hDAA,
    TSS_HTPM                  hTPM,
    TSS_HKEY                  issuer_pk,
    UINT32                    issuer_authentication_PKLength,
    TSS_HKEY*                 issuer_authentication_PK,
    UINT32                    issuer_authentication_PK_signaturesLength,
    BYTE**                    issuer_authentication_PK_signatures,
    UINT32*                   capital_UprimeLength,
    BYTE**                    capital_Uprime,
    TSS_DAA_IDENTITY_PROOF*   identity_proof,
    TSS_DAA_JOIN_SESSION*     join_session
);

like, look at all those parameters. she's got RANGE. πŸ’œ


πŸ’– DESCRIPTION πŸ’–

So Tspi_TPM_DAA_JoinInit is the first out of 3 functions you gotta run in order to receive a DAA Credential. It's the opening act, the main character entrance, theβ€”

It verifies the keys of the DAA Issuer and computes the TPM DAA public key. That's the whole vibe. No cap. πŸ’…


πŸ‘‘ PARAMETERS πŸ‘‘

🌈 hDAA

The hDAA parameter is used to specify the handle of the DAA object. that's her. that's the handle. 🫢

🌈 hTPM

The hTPM parameter is the handle to the TPM object.

🌈 issuer_pk

The issuer_pk parameter is the of the DAA Issuer public key. (yes, the original says it like that, we don't fix, we report πŸ™ˆ)

🌈 issuer_authentication_PKLength

The issuer_authentication_PKLength parameter is the length of the array of issuerAuthPKs.

🌈 issuer_authentication_PK

The issuer_authentication_PK parameter is an array of RSA public keys (key chain) of the DAA Issuer used to authenticate the DAA Issuer public key. The size of the modulus must be TPM_DAA_SIZE_issuerModulus (256).

🌈 issuer_authentication_PK_signaturesLength

The issuer_authentication_PK_signaturesLength parameter is the length of the array of issuerAuthPKSignatures. It is equal to issuerAuthPKsLength. The length of an element of the array is TPM_DAA_SIZE_issuerModulus (256).

🌈 issuer_authentication_PK_signatures

The issuer_authentication_PK_signatures parameter is the array of byte arrays representing signatures on the modulus of the above key chain (issuerAuthPKs). in more details, the array has the following content:

(S(K[1],K[0]),S(K[2],N[1]),..S(K[ k ],K[n-1]), S(TPM_DAA_ISSUER,K[ k ]))

where S(msg,privateKey) denotes the signature function with msg being signed by the privateKey. 🧚 signatures on signatures on signatures, it's giving key-chain couture fr fr

🌈 capital_UprimeLength

The capital_UprimeLength parameter is the length of capitalUprime which is ln/8. ln is defined as the size of the RSA modulus (2048).

🌈 capital_Uprime

The capital_Uprime parameter is U'. short king. πŸ“

🌈 identityProof

The identityProof parameter is a structure containing the endorsement, platform and conformance credential.

🌈 joinSession

The joinSession parameter is a structure containing DAA Join session information.


πŸ’€ RETURN CODES πŸ’€

Tspi_TPM_DAA_JoinInit returns TSS_SUCCESS on success, otherwise one of the following values is returned:

  • TSS_E_INVALID_HANDLE β€” Either the DAA or the TPM handler is not valid. bestie. one of your handles is fake. 😭
  • TSS_E_BAD_PARAMETER β€” (the page gives no extra description here, so we're not inventing one, we're just gonna πŸ‘€ at it)
  • TSS_E_INTERNAL_ERROR β€” An internal SW error has been detected.
  • TSS_E_DAA_ISSUER_KEY_ERROR β€” (again, no extra description on the page β€” she's mysterious πŸ’…)
ok but seriously, check your handles before you come crying to me about TSS_E_INVALID_HANDLE πŸ™ˆ

⭐ CONFORMING TO ⭐

Tspi_TPM_DAA_JoinInit conforms to the Trusted Computing Group Software Specification version 1.2 πŸ”₯


πŸŽ€ SEE ALSO πŸŽ€

the next two chapters of the trilogy, obviously. go read them next, iykyk πŸ¦‹


and that's the whole page, bestie β€” stay slay, verify your issuer keys, and remember: TSS 1.2, dated 2006-09-04, brought to you with love by your favorite manpage πŸ«Άβœ¨πŸ‘‘

πŸ“¦ where this page comes from