HP-UX Trusted Computing Services A.02.00 Administrator's Guide
TSS_OBJECT_TYPE_ENCDATA, dataInitFlags, &hEncData);
if (tResult != TSS_SUCCESS) {
fprintf(stderr, "Tspi_Context_CreateObject failed. Error: %s\n",
Trspi_Error_String(tResult));
goto out_close;
}
// Set blob password to NULL
tResult = Tspi_GetPolicyObject(hEncData, TSS_POLICY_USAGE, &hPolicy);
if (tResult != TSS_SUCCESS) {
fprintf(stderr, "Tspi_GetPolicyObject failed. Error: %s\n",
Trspi_Error_String(tResult));
goto out_close;
}
tResult = Tspi_Policy_SetSecret(hPolicy, TSS_SECRET_MODE_NONE, 0,
NULL);
if (tResult != TSS_SUCCESS) {
fprintf(stderr, "Tspi_Policy_SetSecret failed. Error: %s\n",
Trspi_Error_String(tResult));
goto out_close;
}
// Bind blob to TPM key created above
tResult = Tspi_Data_Bind(hEncData, hKey, strlen(secret),
(BYTE *)secret);
if (tResult != TSS_SUCCESS) {
fprintf(stderr, "Tspi_Data_Bind failed. Error: %s\n",
Trspi_Error_String(tResult));
goto out_close;
}
// Retrieve the encrypted data blob
tResult = Tspi_GetAttribData(hEncData, TSS_TSPATTRIB_ENCDATA_BLOB,
TSS_TSPATTRIB_ENCDATABLOB_BLOB, &blobLen, &blob);
if (tResult != TSS_SUCCESS) {
fprintf(stderr, "Tspi_GetAttribData failed. Error: %s\n",
Trspi_Error_String(tResult));
goto out_close;
}
// Finally, print the UUID and encrypted blob
printHex((BYTE *)keyUUID, sizeof(TSS_UUID));
printf("\n");
printHex(blob, blobLen);
retcode = 0;
out_close:
Tspi_Context_Close(hContext);
out:
return retcode;
}
int
parseOptions(int argc, char **argv) {
int index;
int c;
opterr = 0;
while ((c = getopt (argc, argv, "p:s:h:")) != -1)
switch (c) {
case 'p':
96 Sample TSS Application