2009-08-27 8 views
2

У меня есть проблема с CryptVerifySignature возвращения NTE_NO_MEMORY (СПС выбежал из памяти во время работы.)СНТ Из памяти с CryptVerifySignature

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

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

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

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

+0

Это поможет, если вы сможете нам скомпрометировать код и данные. –

+0

На самом деле проблема ушла сейчас. Он исчез, когда я изменил использование RSA_sign OpenSSL функции RSA_private_encrypt для генерации подписей. Я думаю, что это что-то делать, включая идентификатор алгоритма. – jarmond

+0

@jarmond: Пожалуйста, опубликуйте, как ваша проблема исчезла как ответ. – doptimusprime

ответ

0

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

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

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

Я успешно выполнил вход с помощью CryptSignHash и проверил с помощью RSA_verify и отлично работает.

 Смежные вопросы

  • Нет связанных вопросов^_^