wolftpm все время получал TPM_RC_BAD_TAG - PullRequest
0 голосов
/ 21 сентября 2019

Попытка использовать infenion slb9670 с wolftpm.При портировании lib на пользовательские spi-функции и получении 0x01e (30 декабря), что означает TPM_RC_BAD_TAG.Правильно ли мое Spi-соединение, если я уже получил шапки?(Тот же код отлично работает на плате STM32f7 с реализацией spi STM HAL) Спасибо

rc = TPM2_Init(&tpm2Ctx, TPM2_IoCb, userCtx);
if (rc != 0) 
{
    tst_printf("\r\nTPM init failed! rc = %i;", rc);
    break;
}
else
{
    tst_printf("\r\nTPM init success!");
    tst_printf("\r\nTPM2: Caps 0x%08x, Did 0x%04x, Vid 0x%04x, Rid 0x%2x \n",
    tpm2Ctx.caps,
    tpm2Ctx.did_vid >> 16,
    tpm2Ctx.did_vid & 0xFFFF,
    tpm2Ctx.rid);
}
/* define the default session auth */

XMEMSET(tpm_session, 0, sizeof(tpm_session));
tpm_session[0].sessionHandle = TPM_RS_PW;
TPM2_SetSessionAuth(tpm_session);
if (rc != TPM_RC_SUCCESS &&
    rc != TPM_RC_INITIALIZE /* TPM_RC_INITIALIZE = Already started */ ) {
    tst_printf("TPM2_SetSessionAuth failed 0x%x: %s\n", rc, TPM2_GetRCString(rc));
    break;
}

Startup_In startup;
XMEMSET(&startup, 0, sizeof(Startup_In));
startup.startupType = TPM_SU_STATE;
rc = TPM2_Startup(&startup);
if (rc != TPM_RC_SUCCESS &&
    rc != TPM_RC_INITIALIZE /* TPM_RC_INITIALIZE = Already started */ ) {
    tst_printf("TPM2_Startup failed %i: %s\n", rc, TPM2_GetRCString(rc));
    //break;
}

tst_printf("\r\nTPM2_Startup pass!\f");

Вывод:

TPM init success!
TPM2: Caps 0x30000697, Did 0x001b, Vid 0x15d1, Rid 0x10
TPM2_Startup failed 30: Unknown

отредактировано

Значения cmd в TPM2_TIS_SendCommand:

80 01 00 00 00 0c 00 00 01 44 00 00             (working example)
00 00 00 00 00 0c 00 00 01 44 00 00             (my case)

80 01 - TPM_ST_NO_SESSIONS , который должен быть добавлен с помощью TPM2_Packet_Finalize !

1 Ответ

1 голос
/ 22 сентября 2019

Ошибка была в функциях, которые готовят пакет.Моя версия компилятора IAR не может обрабатывать __REV () для 16-битных значений.Я использовал небольшой макрос для обработки, теперь все работает отлично.

...