Что означает код HRESULT 0x80290413 (TPM_E_NOT_PCR_BOUND)?

 
Предыдущий Следующий
TPM_E_ATTESTATION_CHALLENGE_NOT_SET TPM_E_KEY_ALREADY_FINALIZED

TPM_E_NOT_PCR_BOUND

Что означает TPM_E_NOT_PCR_BOUND

TPM_E_NOT_PCR_BOUND — HRESULT, относящийся к области TPM/Platform Crypto Provider. Ключ TPM не содержит привязки к регистрам PCR, необходимой для запрошенной операции.

В случае TPM_E_NOT_PCR_BOUND статус возник при работе с ключом, политикой или командой TPM. Применительно к TPM_E_NOT_PCR_BOUND диагностика должна учитывать тип ключа, алгоритм, PCR, ticket и состояние самотестирования модуля.

Практический вывод для TPM_E_NOT_PCR_BOUND: этот HRESULT фиксирует описанное условие, но сам по себе не показывает, какой участник операции первым нарушил контракт. Для TPM_E_NOT_PCR_BOUND найдите первый вызов, вернувший статус, и только после этого меняйте конфигурацию подсистемы TPM/Platform Crypto Provider.

Как читать имя TPM_E_NOT_PCR_BOUND

Имя TPM_E_NOT_PCR_BOUND помогает сузить поиск: NOT — отрицание условия; PCR — регистры PCR; BOUND — привязка. Эти части имени не заменяют документацию API, но позволяют проверить, что журнал и код относятся к одному и тому же условию.

Практическая диагностика

В случае TPM_E_NOT_PCR_BOUND важно сохранить исходный контекст вызова: имя функции, параметры, состояние объекта и первый низкоуровневый статус. Применительно к TPM_E_NOT_PCR_BOUND без этого одинаковый HRESULT может ошибочно связываться с разными причинами.

  • При разборе TPM_E_NOT_PCR_BOUND сравните требования операции с фактическими свойствами ключа, включая AIK, ticket и PCR binding.
  • При разборе TPM_E_NOT_PCR_BOUND запишите операцию PCP/TPM, имя ключа, алгоритм, политику использования, PCR-набор и размер каждого буфера.
  • При разборе TPM_E_NOT_PCR_BOUND проверьте подготовку TPM, состояние самотестирования, версию прошивки и журнал событий измеряемой загрузки.
  • При разборе TPM_E_NOT_PCR_BOUND не выполняйте Clear-TPM как первый шаг: это может уничтожить ключи и усложнить восстановление.

Какие данные собрать

  • Для TPM_E_NOT_PCR_BOUND проверьте операцию на новом тестовом ключе с минимальной политикой, не затрагивая рабочие защитники.
  • Для TPM_E_NOT_PCR_BOUND соберите tpmtool gatherlogs и системные события TPM перед изменением состояния модуля.
  • Для TPM_E_NOT_PCR_BOUND сохраните полный HRESULT и нижележащий TPM return code, если API его предоставляет.

Как подтвердить исправление

В случае TPM_E_NOT_PCR_BOUND для TPM_E_NOT_PCR_BOUND недостаточно скрыть ошибку повтором. Применительно к TPM_E_NOT_PCR_BOUND после изменения воспроизведите исходную операцию, проверьте конечное состояние объекта и убедитесь, что ресурсы освобождаются без потери первичного HRESULT.

Ссылки по TPM_E_NOT_PCR_BOUND


Нужно найти другой код? Найти другой код состояния или ошибки.