| Предыдущий | Следующий |
| NTE_UI_REQUIRED | NTE_DEVICE_NOT_READY |
NTE_HMAC_NOT_SUPPORTED
NTE_HMAC_NOT_SUPPORTED следует интерпретировать на границе поддержки HMAC . Активный поставщик или тип ключа не может выполнить запрошенную конструкцию keyed-hash, хотя другие операции хэширования или подписи могут быть доступны.
Что именно устанавливает этот код
Для этого результата возможность определяется выбранным поставщиком, типом ключа, реализацией алгоритма, режимом операции и политикой использования ключа. Наличие имени алгоритма в Windows не гарантирует, что каждый CSP, KSP, аппаратный токен или сохранённый ключ поддерживает все связанные операции HMAC.
Проверки, специфичные для кода:
- Убедитесь, что приложение запросило HMAC, а не обычный hash или асимметричную подпись.
- Перечислите алгоритмы поставщика и проверьте, предоставляется ли требуемый hash для использования в HMAC.
- Не подменяйте HMAC неключевым hash; используйте поставщика и объект ключа, которые явно поддерживают требуемый MAC.
Процедура локализации
Проверьте нужный примитив с документированным программным поставщиком и временным ключом того же алгоритма и размера, затем выполните минимальную поддерживаемую операцию у производственного поставщика. Эти два контроля отделяют отсутствие возможности платформы от ограничения конкретного ключа или устройства.
Типичные ошибочные действия
Этот результат уже, чем NTE_NOT_SUPPORTED, и должен вести прямо к проверке возможностей поставщика и алгоритма. Переход на другой алгоритм только ради исчезновения ошибки может нарушить требования протокола, шаблона сертификата или совместимости. Сначала установите, какая именно обязательная возможность отсутствует и где.
Как доказать работоспособность нужного пути
Для этого результата предназначенные поставщик и ключ должны выполнять требуемый примитив с нужными параметрами; резервный алгоритм или другой ключ не подтверждают исходный проект.
Технические ссылки
Эти источники определяют HRESULT и соответствующий интерфейс, протокол или формат данных поддержки HMAC.
Нужно найти другой код? Найти другой код состояния или ошибки.