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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline DemDA  
#1 Оставлено : 22 июля 2015 г. 16:43:33(UTC)
DemDA

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

Группы: Участники
Зарегистрирован: 12.09.2013(UTC)
Сообщений: 20

Сказал(а) «Спасибо»: 4 раз
Здравствуйте еще раз. Прошу опять таки простить новичка в разработке.

Имеется код

var
cert: PCCERT_CONTEXT;
MessageArray: array of PByte;
MessageSize: array of DWORD;
SigParams: CRYPT_SIGN_MESSAGE_PARA;
cbSignedMessageBlob: DWORD;
pStreamIn, pStreamOut: TMemoryStream;
afile: string;
my: hcertstore;
pdwKeySpec : DWORD;
hProv: HCRYPTPROV;
begin
my := CertOpenSystemStore(0, 'MY');
cert:= CryptUIDlgSelectCertificateFromStore(my, 0, '', '', 0, 0, nil);

afile := ss;
pStreamIn := TMemoryStream.Create;
try
pStreamOut := TMemoryStream.Create;
try
SetLength(MessageArray, 1);
SetLength(MessageSize, 1);

pStreamIn.LoadFromFile(afile);
MessageArray[0] := pStreamIn.Memory;
MessageSize[0] := pStreamIn.Size;
FillChar(SigParams, SizeOf(CRYPT_SIGN_MESSAGE_PARA), #0);
SigParams.cbSize := SizeOf(CRYPT_SIGN_MESSAGE_PARA);
SigParams.dwMsgEncodingType := PKCS_7_ASN_ENCODING or X509_ASN_ENCODING;
SigParams.pSigningCert := cert;
SigParams.HashAlgorithm.pszObjId := '1.2.643.2.2.9';
SigParams.cMsgCert := 1;
SigParams.rgpMsgCert := @cert;
CryptAcquireCertificatePrivateKey(cert,0,nil,@hProv, @pdwKeySpec,nil);
На функции CryptAcquireCertificatePrivateKey при компиляции вылетает ошибка types of actual and formal var parameters must be identical
Вроде как ошибся в типах передаваемых параметров...
Но в то же время в примере (в руководстве, которое изучаю) приведен такой код
DWORD dwKey;
HCRYPTPROV Prov;
if(CryptAcquireCertificatePrivateKey(pCert, 0, NULL, &Prov,
&dwKey, NULL))
{
CryptReleaseContext(hProv, 0);
break;
}
Не подскажите где ошибся?
Заранее благодарен.
Offline Андрей Писарев  
#2 Оставлено : 22 июля 2015 г. 20:28:52(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,190
Мужчина
Российская Федерация

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Так исходник же есть, как объявлена функция CryptAcquireCertificatePrivateKey - что мешает посмотреть?

p.s. что помешало выделить память заранее сразу и не использовать CryptAcquireCertificatePrivateKey?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
DemDA оставлено 23.07.2015(UTC)
Offline DemDA  
#3 Оставлено : 23 июля 2015 г. 5:39:54(UTC)
DemDA

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

Группы: Участники
Зарегистрирован: 12.09.2013(UTC)
Сообщений: 20

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей * Перейти к цитате
Так исходник же есть, как объявлена функция CryptAcquireCertificatePrivateKey - что мешает посмотреть?

p.s. что помешало выделить память заранее сразу и не использовать CryptAcquireCertificatePrivateKey?


Да спасибо. Понял. просмотрел, что там var-параметр.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.