Tspi_TPM_D...eDaaPubKey(3)

πŸ“¦ version 11.0, in nixpkgs unstable

✨ NAME ✨

Okay bestie, welcome to the Tspi_TPM_D...eDaaPubKey(3) page from the TCG Software Stack Developer's Reference β€” it’s a Library Functions Manual moment, and the main character energy belongs to Tspi_TPM_DAA_JoinCreateDaaPubKey: it computes the credential request for the DAA Issuer. Periodt. πŸ’…βœ¨

πŸ¦‹ SYNOPSIS πŸ¦‹

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

TSS_RESULT Tspi_TPM_DAA_JoinCreateDaaPubKey(
    TSS_HDAA                    hDAA,
    TSS_HTPM                    hTPM,
    UINT32                      authenticationChallengeLength,
    BYTE*                       authenticationChallenge,
    UINT32                      nonceIssuerLength,
    BYTE*                       nonceIssuer,
    UINT32                      attributesPlatformLength,
    BYTE**                      attributesPlatform,
    TSS_DAA_JOIN_SESSION*       joinSession,
    TSS_DAA_CREDENTIAL_REQUEST* credentialRequest
);

πŸ’œ DESCRIPTION πŸ’œ

Tspi_TPM_DAA_JoinCreateDaaPubKey is the second out of 3 functions you execute in order to receive a DAA Credential β€” it sits right between Tspi_TPM_DAA_JoinInit() and Tspi_TPM_DAA_JoinStoreCredential(). It computes the credential request for the DAA Issuer, and that request also includes the Platform’s DAA public key plus the attributes that were chosen by the Platform and are not visible to the DAA Issuer. The Platform can commit to the attribute values it has chosen β€” iykyk. πŸ”₯

Not me being obsessed with the fact that this is giving privacy-preserving credential-request realness. No cap, that’s the slay. πŸ’–

πŸŽ€ PARAMETERS πŸŽ€

πŸ’– hDAA πŸ’–

The hDAA parameter is used to specify the handle of the DAA object.

πŸ’– hTPM πŸ’–

The hTPM parameter is the handle to the TPM object.

πŸ’– authenticationChallengeLength πŸ’–

The authenticationChallengeLength parameter is the length of authenticationChallenge (256 bytes - DAA_SIZE_NE1).

πŸ’– authenticationChallenge πŸ’–

The authenticationChallenge parameter is the second nonce of the DAA Issuer that is encrypted by the endorsement public key. It is used as a challenge to authenticate the underlying TPM.

πŸ’– nonceIssuerLength πŸ’–

The nonceIssuerLength parameter is the length of nonceIssuer (20 bytes).

πŸ’– nonceIssuer πŸ’–

The nonceIssuer parameter is the nonce of the DAA Issuer.

πŸ’– attributesPlatformLength πŸ’–

The attributesPlatformLength parameter is the length of the attributesPlatform array, which is determined by the DAA Issuer public key (). The length of a single attribute is ln/8. ln is defined as the size of the RSA modulus (2048).

πŸ’– attributesPlatform πŸ’–

The attributesPlatform parameter is an array of attributes to be encoded into the DAA Credential not visible to the DAA Issuer.

πŸ’– joinSession πŸ’–

The joinSession parameter is a structure containing the DAA Join session information. Lowkey just the session-info vessel, bestie. 🫢

πŸ’– credentialRequest πŸ’–

The credentialRequest parameter is the credential request of the Platform; it contains the blinded DAA public key of the platform on which the DAA Issuer will issue the credential, plus the blinded attributes chosen by the Platform.

πŸ”₯ RETURN CODES πŸ”₯

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

  • TSS_E_INVALID_HANDLE β€” Either the DAA is not valid.
  • TSS_E_BAD_PARAMETER
  • TSS_E_INTERNAL_ERROR β€” An internal SW error has been detected. Fr fr, that’s the note. πŸ˜­πŸ’€

🌈 CONFORMING TO 🌈

Tspi_TPM_DAA_JoinCreateDaaPubKey highkey conforms to the Trusted Computing Group Software Specification version 1.2. Iconic. πŸ‘‘

🫢 SEE ALSO 🫢


That’s the whole vibe check, bestie πŸ’… β€” this page is TSS 1.2, dated 2006-09-04, and that’s the cute little footer sign-off, ngl. Mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from