Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
CryptVerifyDetachedMessageSignature 0x80092004 Объект или свойство не найдено
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
Доброго времени суток! Не могли бы Вы обьяснить как работает CryptVerifyDetachedMessageSignature с нулевыми параметрами, когда вызывается CryptGetSignerCertificateCallback Function? Я подписываю сообщение, пытаюсь проверить его на этой же машине тем же самым сертификатом и получаю ошибку 0x80092004 Объект или свойство не найдено. Сертификат лежит в MY. Ключи в реестре. вот код проверки: Код: CRYPT_VERIFY_MESSAGE_PARA VerifyPara;
ZeroMemory(&VerifyPara, sizeof(VerifyPara));
VerifyPara.cbSize = sizeof(VerifyPara);
VerifyPara.dwMsgAndCertEncodingType = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING;
VerifyPara.hCryptProv = NULL;
VerifyPara.pfnGetSignerCertificate = NULL;
HRESULT hr;
if(m_bDetachedSignature)
{
const BYTE* DataArray[] = { pDataIn };
DWORD SizeArray[] = { dwDataSize };
//тут валится
hr = CheckError(::CryptVerifyDetachedMessageSignature(&VerifyPara, dwSignerIndex, pDataSign, dwSignSize, 1, DataArray, SizeArray,NULL));
}
else
{
if(!pBuffSize)
hr = CheckError(::CryptVerifyMessageSignature(&VerifyPara, dwSignerIndex, pDataSign, dwSignSize, NULL, NULL, ppSignerCert));
else
{
if(!::CryptVerifyMessageSignature(&VerifyPara, dwSignerIndex, pDataSign, dwSignSize, NULL, pBuffSize, ppSignerCert))
hr = CheckError(FALSE);
*ppOutData = new BYTE[*pBuffSize];
if(!::CryptVerifyMessageSignature(&VerifyPara, dwSignerIndex, pDataSign, dwSignSize, *ppOutData, pBuffSize, ppSignerCert))
{
delete[] *ppOutData;
*ppOutData = NULL;
hr = CheckError(FALSE);
}
}
}
А-то что то я msdn читал, не очень разобрался прямо скажем.. Отредактировано пользователем 12 августа 2009 г. 19:24:24(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
MSDN: Цитата:The default callback tries to get the signer certificate context from the message's certificate store. Чтобы она работала добавляйте сертификат подписчика в сообщение. А ключи для проверки подписи вообще не нужны. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.10.2008(UTC) Сообщений: 63
|
А, теперь понятно, спасибо) Получается, чтобы самому выбирать нужный сертификат, не из сообщения, а например из "MY" нужна pfnGetSignerCertificate, которая этим и будет заниматься.
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
Встраивание
»
CryptVerifyDetachedMessageSignature 0x80092004 Объект или свойство не найдено
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close