Что означает код HRESULT 0x8009000C (NTE_BAD_HASH_STATE)?

 
Предыдущий Следующий
NTE_BAD_KEY_STATE NTE_NO_KEY

NTE_BAD_HASH_STATE

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

NTE_BAD_HASH_STATE — Объект хеша находится в состоянии, в котором запрошенная операция запрещена — например, хеш уже завершён и больше не принимает данные.

Что означает состояние хеша

Hash object уже находится в фазе, где запрошенная операция запрещена — типичный случай: хеш финализирован, после чего код пытается снова добавить данные или изменить параметры.

Что проверить

  • Проследите жизненный цикл конкретного hash handle от создания до финализации/закрытия.
  • Проверьте, не вызывается ли финальный HashData/FinishHash/подпись раньше, чем последняя порция входных данных добавлена.
  • В многопоточном коде убедитесь, что один и тот же hash object не финализируется параллельно другим потоком.

Как исправить

Создайте новый hash object для нового вычисления либо исправьте порядок вызовов существующего. Замена ключа или сертификата не устраняет неправильный lifecycle самого хеша.

Ссылки по этому результату


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