CSP не хватает памяти с CryptVerifySignature

У меня есть проблема с CryptVerifySignature, возвращающей NTE_NO_MEMORY (CSP не хватило памяти во время операции.)

Я пытаюсь проверить подпись, сгенерированную с помощью OpenSSL, я уже расшифровал открытый ключ PEM, отменил последовательность байтов и импортировал ее.

Я попытался подробно указать спецификацию MS Enhanced Provider, и моя длина ключа составляет 4096 бит (макс.<16384 бит).

Я видел несколько комментариев на форумах, в которых предлагались проблемы с выравниванием памяти, но я использую двухъядерный процессор Intel Pentium, и мои буферы выровнены по 32-разрядной системе.

Кто-нибудь видел эту проблему раньше?

1 ответ

Приятно осознавать, что проблема решена с помощью sing RSA_private_encrypt. Мой случай обратный от вас. Я подписал с помощью CryptSignHash и подтвердил его с помощью RSA_verify.

Я заметил, что порядок байтов подписи, сгенерированной CryptSignHash и RSA_sign для одних и тех же данных, абсолютно обратный. Проверьте эту ссылку.

Пожалуйста, попробуйте перевернуть байты и посмотреть, работает ли он для вас.

Я успешно сделал подпись, используя CryptSignHash, и проверил, используя RSA_verify, и он отлично работает.

Другие вопросы по тегам