Что означает код HRESULT 0x8009310D (CRYPT_E_ASN1_RULE)?

 
Предыдущий Следующий
CRYPT_E_ASN1_CHOICE CRYPT_E_ASN1_UTF8

CRYPT_E_ASN1_RULE

Что означает результат

CRYPT_E_ASN1_RULE: ASN.1-данные нарушают правило кодирования, ожидаемое декодером: структура может быть допустима абстрактно, но записана не по требуемым BER/DER/CER правилам.

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

  • Сохраните исходный encoded blob и точный offset первого отказа.
  • Проверьте tag/length encoding, definite/indefinite lengths и canonical form, требуемые конкретным API.
  • Для DER проверьте минимальное кодирование INTEGER/length и порядок элементов SET, если он применим.
  • Не перекодируйте объект до сохранения исходных bytes: иначе исчезает доказательство нарушения правила.

Диагностика и исправление

Исправьте ASN.1 encoder либо используйте формат, который разрешает принимающий API. Переподписание имеет смысл только после того, как структура кодируется по требуемым правилам.

Технические ссылки


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