21.11.2006 12:09:17Повторный вызов функции CryptVerifyMessageSignature Ответов: 3
Сергей Ненашев
Есть код:
if(CryptVerifyMessageSignature(&VerifyParams, 0, Sign, Size,
NULL, &(DecodedSize),
NULL)){
DecodedMessage = (BYTE*)malloc(Size);
if(!CryptVerifyMessageSignature(&VerifyParams, 0, Sign, Size,
DecodedMessage, &(DecodedSize), NULL)){
int ret = GetLastError();
}
}

Первый вызов функции успешно возвращает DecodedSize, но второй возвращает ошибку CRYPT_E_NOT_FOUND, обнуляет DecodedSize и ничего не пишет в буффер. Между двумя вызовами изменений данных не происходит. CryptoPro 3
 
Ответы:
21.11.2006 12:51:18Kirill Sobolev
DecodedMessage = (BYTE*)malloc(Size); - опечатка?
Сертификат подписчика есть в самом сообщении?
21.11.2006 18:24:12Сергей Ненашев
Да, опечатка. Подписывается без вложенного сертификата.
21.11.2006 23:46:22Сергей Ненашев
Спасибо, проблема решена