1

Тема: Crypto API и CryptDecryptMessage

Здравствуйте.

Пытаюсь  шифровать  текст  с  помощью  функции "CryptDecryptMessage".

При тесте  с  использованием RSA и  стандартных  криптопровайдеров Windows (10), все  хорошо. Если  ставлю  другой криптопровайдер  поддерживающий алгоритмы ГОСТ,  тоже  все  хорошо.  с  помощью "СКАД Сигнатура" ошибка.
GetLastError() возвращает  значение 0xE0C10018, и  FormatMessage (...)  возвращает  NULL.


В справочнике  сертификатов,  цепочка  сертификатов  построена. В  системе установлен  только  один криптопровайдер  поддерживающий  алгоритмы  ГОСТ - "СКАД Сигнатура". Если  смотреть цепочку  сертификатов оснасткой  windows,  то  цепочка  не "валидная",  с  пометкой  "Этот сертификат содержит недействительную цифровую подпись". Та же  цепочка сертификатов строится  без  проблем,  если установлен  другой  криптопровайдер "ГОСТ"

2

Re: Crypto API и CryptDecryptMessage

Добрый день!

Возможно, СКАД Сигнатура некорректно установилась.
Попробуйте удалить все ГОСТ-овые криптопровайдеры, выполнить перезагрузку.
Далее нужно установить СКАД Сигнатуру без поддержки TLS и опять выполнить перезагрузку.

3

Re: Crypto API и CryptDecryptMessage

Все  заработало.
Мои  ошибки:
1.  Использовал  сертификат  с  без  влага «Шифрование данных»,  для расширения сертификата   «Использование ключа»(«Key Usage»).

2. В CryptDecryptMessage(....), в  качестве  последнего параметра  использовал ключ,  а  надо было NULL (в  моем случае).