Tspi_TPM_DAA_Sign(3)

πŸ“¦ version 11.0, in nixpkgs unstable

πŸ’… Tspi_TPM_DAA_Sign(3) ✨

okay so bestie, this one's from the TCG Software Stack Developer's Reference (a.k.a. the Library Functions Manual crowd) and it's genuinely kind of iconic. it's all about making a DAA Signature that proves you own your DAA Credential. let's get into it 🫢


🌸 NAME 🌸

Tspi_TPM_DAA_Sign β€” creates a DAA Signature that proofs ownership of the DAA Credential πŸŽ€


⭐ SYNOPSIS ⭐

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

TSS_RESULT Tspi_TPM_DAA_Sign(
    TSS_HDAA                    hDAA,
    TSS_HTPM                    hTPM,
    TSS_HKEY                    hDaaCredential,
    TSS_DAA_SELECTED_ATTRIB     revealAttributes,
    UINT32                      verifierBaseNameLength,
    BYTE*                       verifierBaseName,
    UINT32                      verifierNonceLength,
    BYTE*                       verifierNonce,
    TSS_DAA_SIGN_DATA           signData,
    TSS_DAA_SIGNATURE*          daaSignature
);

no cap, that's ten parameters. she's high-maintenance but she delivers πŸ’€


πŸ¦‹ DESCRIPTION πŸ¦‹

so Tspi_TPM_DAA_Sign creates a DAA Signature that proofs ownership of the DAA Credential, and it also includes a signature on either a public AIK or a message. both. the whole vibe. ✨

here's the tea πŸ“: if anonymity revocation is enabled, the value Nv is not provided in the clear anymore β€” instead it's encrypted under the public key of the anonymity revocation authority, which is a trusted third party (TTP). meaning the DAA Verifier literally cannot check for revocation or link a transaction/signature to prior ones. privacy? slayed. πŸ‘‘

and depending on how it's chosen, the protocol either lets you implement anonymity revocation (i.e., using the DAA Issuer's long-term base name as the DAA Verifier's base name), or has the TTP doing the linking of different signatures for the same DAA Verifier (i.e., using the DAA Verifier's base name). iykyk 🌈


πŸ’œ PARAMETERS πŸ’œ

okay bestie, buckle up, we're going through all ten πŸŽ€

πŸ’– 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.

πŸ’– hDaaCredential

the hDaaCredential parameter is the Handle of the DAA Credential.

πŸ’– revealAttributes

the revealAttributes parameter is the attributes which the credential owner wants to reveal to the DAA Verifier. choose wisely bestie, that's your business out there πŸ™ˆ

πŸ’– verifierBaseNameLength

the verifierBaseNameLength parameter is the Length of verifierBaseName.

πŸ’– verifierBaseName

the verifierBaseName parameter is the base name chosen by the DAA Verifier. if it equals to null, the platform chooses a random base name. surprise! 🎁

πŸ’– verifierNonceLength

the verifierNonceLength parameter is the length of verifierNonceName (20 bytes). yes, the manpage says verifierNonceName there β€” we're reporting it exactly as written, no editing, periodt πŸ’…

πŸ’– verifierNonce

the verifierNonce parameter is the nonce created by the DAA Verifier.

πŸ’– signData

the signData parameter is the handle of the received DAA Credential.

πŸ’– daaSignature

the daaSignature parameter is the DAA signature containing the proof of ownership of the DAA Credential, as well as a signature on either an AIK or a message.


πŸ”₯ RETURN CODES πŸ”₯

Tspi_TPM_DAA_Sign 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. check ur handles bestie 😭
  • TSS_E_BAD_PARAMETER
  • TSS_E_INTERNAL_ERROR β€” an internal SW error has been detected. not her fault, it's giving internal πŸ’€
heads up: TSS_E_BAD_PARAMETER is listed with no description attached in the original. so we're just gonna leave it there, mysterious and unbothered. 🧚

🌟 CONFORMING TO 🌟

Tspi_TPM_DAA_Sign conforms to the Trusted Computing Group Software Specification version 1.2 πŸ‘‘


πŸŽ€ SEE ALSO πŸŽ€

nothing else listed here, bestie β€” this one stands alone, main character energy fr fr ✨


and that's the whole page! love that for us. this little beauty is from TSS 1.2, dated 2006-09-04, and it lives at Tspi_TPM_DAA_Sign(3) β€” go forth and sign responsibly πŸ¦‹πŸ’–

πŸ“¦ where this page comes from