Что означает код HRESULT 0x80092001 (CRYPT_E_BAD_LEN)?

 
Предыдущий Следующий
CRYPT_E_STREAM_INSUFFICIENT_DATA CRYPT_E_BAD_ENCODE

CRYPT_E_BAD_LEN

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

CRYPT_E_BAD_LEN — Выходной буфер CryptoAPI слишком мал для результата. Обычно вызывающий код должен сначала запросить требуемый размер и повторить вызов с подходящим буфером.

Код относится к криптографическим интерфейсам Windows. Его смысл зависит от поставщика, алгоритма, ключа, сертификата или формата криптографического сообщения.

Проверка причины

Зафиксируйте конкретный CryptoAPI-вызов, значение входного параметра размера и размер буфера, переданный при первом сбое. Для API с двухпроходной схемой сначала запросите требуемую длину с null/минимальным буфером, затем выделите именно возвращённый размер и повторите вызов.

Какие данные собрать

Сравните требуемую и фактически выделенную длину, тип результата и кодировку структуры. Если размер меняется между двумя вызовами, проверьте race/state change у сообщения или сертификата вместо безусловного увеличения буфера.

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


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