static uint32_t TPM_SendLibTPMS(int sockfd, struct tpm_buffer *tb, const char *msg) { unsigned char *respbuffer = NULL; uint32_t resp_size; uint32_t respbufsize; uint32_t rc; char mymsg[1024]; (void) sockfd; snprintf(mymsg, sizeof(mymsg), "TPM_SendLibTPMS: To TPM [%s]", msg); showBuff(tb->buffer, mymsg); rc = TPMLIB_Process(&respbuffer, &resp_size, &respbufsize, tb->buffer, tb->used); if (rc != TPM_SUCCESS) return ERR_IO; if (tb->size < resp_size) return ERR_BUFFER; memcpy(tb->buffer, respbuffer, resp_size); tb->used = resp_size; free(respbuffer); snprintf(mymsg, sizeof(mymsg), "TPM_SendLibTPMS: From TPM [%s]", msg); showBuff(tb->buffer, mymsg); return 0; }
TPM_RESULT tpmlib_TpmEstablished_Reset(TPM_MODIFIER_INDICATOR *g_locality, TPM_MODIFIER_INDICATOR locality) { TPM_RESULT res; unsigned char *rbuffer = NULL; uint32_t rlength = 0; uint32_t rTotal = 0; TPM_MODIFIER_INDICATOR orig_locality = *g_locality; unsigned char command[sizeof(TPM_ResetEstablishmentBit)]; memcpy(command, TPM_ResetEstablishmentBit, sizeof(command)); *g_locality = locality; res = TPMLIB_Process(&rbuffer, &rlength, &rTotal, command, sizeof(command)); *g_locality = orig_locality; TPM_Free(rbuffer); return res; }