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, и он отлично работает.