| Предыдущий | Следующий |
| TRUST_E_SUBJECT_NOT_TRUSTED | DIGSIG_E_DECODE |
DIGSIG_E_ENCODE
Что означает результат
DIGSIG_E_ENCODE означает, что компонент цифровой подписи не смог сериализовать подготовленную структуру в ASN.1. В отличие от ошибки декодирования, здесь исходные поля ещё доступны приложению и нужно искать несовместимое значение до записи результирующего контейнера.
Что проверить
- Зафиксируйте структуру и API, которые непосредственно переданы кодировщику, включая выбранный OID алгоритма.
- Проверьте обязательные поля, допустимые диапазоны INTEGER, длины OCTET STRING/BIT STRING и согласованность вложенных последовательностей.
- Убедитесь, что размер буфера рассчитывается по результату соответствующего encode API, а не по размеру исходных C/C++ структур.
- Если структура формируется из сертификата или параметров подписи, проверьте преобразование этих значений до запуска кодирования.
Диагностика и исправление
Исправьте конкретное входное поле или используйте поддерживаемый алгоритм/структуру, после чего сформируйте ASN.1 заново. Проверка целостности уже существующего DER-файла здесь вторична: этот HRESULT относится к созданию кодированного представления.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.