Что означает код HRESULT 0x00091012 (CRYPT_I_NEW_PROTECTION_REQUIRED)?

 
Предыдущий Следующий
SEC_I_ASYNC_CALL_PENDING NS_S_CALLPENDING

CRYPT_I_NEW_PROTECTION_REQUIRED

Как расследовать HRESULT CRYPT_I_NEW_PROTECTION_REQUIRED

Код CRYPT_I_NEW_PROTECTION_REQUIRED, числовое значение 0x00091012, фиксирует конкретный результат операции. Защищённые данные необходимо защитить повторно.

Старший бит HRESULT делает значение успешным или информационным результатом. Эта константа объявлена в winerror.h и относится к области «CryptoAPI и обработка криптографических сообщений».

Почему важен контекст вызова

HRESULT относится к CryptoAPI: кодированию ASN.1, подписи, хэшированию, ключевому контейнеру, сертификату или проверке криптографического сообщения. Необходимо сохранить первичные байты и параметры алгоритма, потому что повторное кодирование может уничтожить признаки исходного дефекта.

Минимальный набор свидетельств

  • Для сравнения с исправным случаем нужно получить расширенную ошибку провайдера до выполнения следующего криптографического вызова.
  • До повторной попытки нужно записать этап: decode, verify, sign, encrypt, decrypt или chain build.

Как локализовать причину

  1. Определить первый CryptoAPI-вызов, вернувший этот HRESULT; все остальные условия оставьте неизменными.
  2. Проверить структуру входных данных независимым ASN.1/CMS-анализатором без их изменения; не удаляйте исходные данные до завершения сравнения.
  3. Сопоставить OID, тип ключа, размер ключа и допустимые алгоритмы политики; повторите шаг на исправном контрольном примере.
  4. Проверить доступ к ключу в том же пользовательском и машинном контексте; сохраните первый hresult и точное время результата.
  5. Повторить операцию на сохранённом входе и убедиться, что результат воспроизводим; отдельно отметьте изменение состояния объекта.

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

Корректирующее действие для него должно устранять условие «Защищённые данные необходимо защитить повторно» на уровне транзакция.

Полезные материалы


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