Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Michael Makushev  
#11 Оставлено : 5 марта 2008 г. 17:05:16(UTC)
Michael Makushev

Статус: Участник

Группы: Участники
Зарегистрирован: 11.01.2008(UTC)
Сообщений: 22
Откуда: Санкт-Петербург

Kirill Sobolev написал:
да, вот что такое PCRYPT_DECRYPT_MESSAGE_PARA?


Смотрим по аналогии в SDK для Криптопро

Цитата:
// Объявление и инициализация локальных переменных.
DWORD cbDecryptedMessage;
char* EncryptedString = new char[(cbEncryptedBlob * 2) +1];
HCERTSTORE CertStoreArray[] = {hStoreHandle};
CRYPT_DECRYPT_MESSAGE_PARA DecryptParams;
DWORD DecryptParamsSize = sizeof(DecryptParams);
BYTE* pbDecryptedMessage;
LPSTR DecryptedString;
BOOL fReturn = TRUE;



Теперь описание модуля-хедера для паскаля

Цитата:
//+-------------------------------------------------------------------------
// The CRYPT_DECRYPT_MESSAGE_PARA are used for decrypting messages.
//
// The CertContext to use for decrypting a message is obtained from one
// of the specified cert stores. An encrypted message can have one or
// more recipients. The recipients are identified by their CertId (Issuer
// and SerialNumber). The cert stores are searched to find the CertContext
// corresponding to the CertId.
//
// Only CertContexts in the store with either
// the CERT_KEY_PROV_HANDLE_PROP_ID or CERT_KEY_PROV_INFO_PROP_ID set
// can be used. Either property specifies the private exchange key to use.
//
// cbSize must be set to the sizeof(CRYPT_DECRYPT_MESSAGE_PARA) or else
// LastError will be updated with E_INVALIDARG.
//--------------------------------------------------------------------------
type
PCRYPT_DECRYPT_MESSAGE_PARA = ^CRYPT_DECRYPT_MESSAGE_PARA;
CRYPT_DECRYPT_MESSAGE_PARA = record
cbSize :DWORD;
dwMsgAndCertEncodingType :DWORD;
cCertStore :DWORD;
rghCertStore :PHCERTSTORE;
end;


вроде все соответствует
Offline Kirill Sobolev  
#12 Оставлено : 5 марта 2008 г. 19:07:57(UTC)
Кирилл Соболев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,732
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Да, соответствует.
но у Вас объявлено
Цитата:
rghCertStore :PHCERTSTORE

что верно, т.к. теоретически хранилищ для поиска может быть несколько.
а в коде
Цитата:
rghCertStore := hSystemStore
причем
Цитата:
hSystemStore: HCERTSTORE

соответственно функция лезет искать сертификат для расшифровки по адресу, который на самом деле является хендлом хранилища и на этом падает.
должно быть
Цитата:
rghCertStore := @hSystemStore
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.