Written by Anthony Bussani based on the Trusted Computing Group Software Stack Specification Version 1.2
\\$1
.. ..
1 TCG Software Stack Developer's Reference
#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 ");"
\Tspi_TPM_DAA_Sign creates a DAA Signature that proofs ownership of the DAA Credential and includes a signature on either a public AIK or a message. If anonymity revocation is enabled, the value Nv is not provided in the clear anymore but encrypted under the public key of anonymity revocation authority, a trusted third party (TTP). Thus the DAA Verifier cannot check for revocation or link a transaction/signature to prior ones. Depending on how is chosen, the protocol either allows implementing anonymity revocation (i.e., using the DAA Issuer's long-term base name as the DAA Verifier's base name ), or having the TTP doing the linking of different signatures for the same DAA Verifier (i.e., using the DAA Verifier's base name ).
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.
TSS_E_BAD_PARAMETER
TSS_E_INTERNAL_ERROR An internal SW error has been detected.
Tspi_TPM_DAA_Sign conforms to the Trusted Computing Group Software Specification version 1.2