Ошибка 0x80090020 появляется при подписании, импорте ключа или отправке отчёта и выглядит как «Внутренняя ошибка». Она общая: Windows сообщает о сбое, но не называет причину, поэтому придётся проверить несколько вариантов по порядку
Коротко: что делать
- Переподключите носитель, лучше в другом USB-порту
- Повторите действие
- Проверьте контейнер: Пуск → КриптоПро → КриптоПро CSP → Сервис → Протестировать
- Установите или обновите драйверы токена на сайте производителя
- Попробуйте тот же носитель на другом компьютере
- Если ошибка повторяется, обратитесь в удостоверяющий центр за перевыпуском на другой носитель или позовите инженера
Что означает ошибка
0x80090020 - константа NTE_FAIL, текст Windows «An internal error occurred», по-русски «Внутренняя ошибка». Код общий: он означает, что системная криптография не смогла выполнить операцию, и не содержит причины
Эта ошибка встречается у разных программ: например, при импорте файла PFX, подписании или создании хэша. Страниц КриптоПро, Контура, Астрала и Saby, посвящённых именно этому коду, нет, поэтому официального пошагового решения нет тоже. Ниже - то, что подтверждено для общего случая, и возможные причины
Код есть в справочнике кодов ошибок
Причины
Достоверно причина не названа, ниже - возможные, от частой к редкой:
- Проблемы с носителем: токен или флешка повреждены или устарели. Для похожей ошибки импорта ключа Saby называет именно это
- Не установлены или устарели драйверы носителя
- Неполадка контейнера с закрытым ключом
- Сбой самой программы или КриптоПро CSP
Диагностика
- Переподключите носитель, лучше в другой USB-порт
- Повторите действие. Не помогло - идём дальше
- Откройте КриптоПро CSP → Сервис → Протестировать
- Выберите свой контейнер. Если тест выдаёт ошибку, запишите её текст
- Если тест прошёл, а ошибка осталась, проверьте драйверы носителя
- Попробуйте носитель на другом компьютере. Ошибка ушла - причина в первом компьютере, осталась - вероятно, в носителе
Решение
Проверить контейнер
- Нажмите Пуск → КриптоПро → КриптоПро CSP
- Откройте вкладку Сервис
- Нажмите Протестировать
- Выберите свой контейнер
- Запустите тест
- Прочитайте результат. Тест показывает, в частности, срок действия закрытого ключа
Тест нужен, чтобы увидеть сообщение о проблеме, если оно есть. Исправный результат не доказывает, что ошибка не в носителе или драйверах
Поставить драйверы носителя
- Определите производителя токена по надписи на корпусе: Рутокен или JaCarta
- Скачайте драйверы только на официальном сайте производителя: для Рутокен - rutoken.ru, для JaCarta - aladdin-rd.ru
- Установите драйверы
- Перезагрузите компьютер
- Повторите подписание
Если компьютер не видит токен вообще, смотрите компьютер не видит Рутокен
Если ошибка повторяется
Saby для похожей ошибки импорта ключа пишет: причина в повреждённом или устаревшем носителе, нужно поставить недостающие драйверы, а если ошибка повторяется - носитель неисправен, и подпись перевыпускают на другой. Для кода 0x80090020 такой инструкции нет, это совет по аналогии
- Свяжитесь с удостоверяющим центром, который выдал подпись
- Уточните, можно ли перевыпустить подпись на новый носитель, и какие документы нужны
- Порядок перевыпуска описан в статье как продлить ЭЦП
⚠️ Не форматируйте токен и не удаляйте контейнер, пока новая подпись не заработала. Закрытый ключ с носителя после удаления не вернуть
Если вы видите другой код, например про сертификат или его проверку, посмотрите КриптоПро не видит сертификат
Если не помогло
Если ошибка 0x80090020 так и не ушла, а документ нужно подписать или отчёт отправить сегодня, инженер ProKEP.ru подключится удалённо и разберёт, что именно ломается, при вас
- подключение через RuDesktop, вы видите все действия на экране
- PIN-код вы вводите сами, инженер не просит его назвать и не копирует ключи
- после работы - официальный чек самозанятого
Как связаться с инженером и сколько это стоит - на странице помощи инженера
Частые вопросы
Что значит ошибка 0x80090020?
Это код NTE_FAIL, в Windows он расшифровывается как «Внутренняя ошибка». Код общий: он говорит, что криптопровайдер не смог выполнить операцию, но не называет причину. Поэтому конкретную причину приходится искать по шагам
Значит ли ошибка 0x80090020, что контейнер с ключом повреждён?
Не обязательно. Код не указывает причину, и утверждать, что виноват повреждённый контейнер, нельзя. Это одна из возможных версий, как и проблема с драйвером носителя. Проверьте контейнер и драйверы по порядку
Нужно ли править реестр при ошибке 0x80090020?
Нет. Для этого кода нет подтверждённой инструкции с параметрами реестра, а неверная правка может сломать работу КриптоПро. Сначала проверьте контейнер и драйверы носителя, а при повторе обратитесь в удостоверяющий центр или к инженеру
Когда нужно перевыпускать подпись при ошибке 0x80090020?
Если ошибка повторяется на другом компьютере и после переустановки драйверов, вероятно, дело в носителе. В похожей ошибке Saby при повторе советует считать носитель неисправным и перевыпустить подпись на другой. Для самого кода 0x80090020 такой инструкции нет, это совет по аналогии