Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}