Статус: Участник
Группы: Участники
Зарегистрирован: 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; } Не подскажите где ошибся? Заранее благодарен.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Так исходник же есть, как объявлена функция CryptAcquireCertificatePrivateKey - что мешает посмотреть?
p.s. что помешало выделить память заранее сразу и не использовать CryptAcquireCertificatePrivateKey? |
|
 1 пользователь поблагодарил Андрей * за этот пост.
|
DemDA оставлено 23.07.2015(UTC)
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.09.2013(UTC) Сообщений: 20
Сказал(а) «Спасибо»: 4 раз
|
Автор: Андрей *  Так исходник же есть, как объявлена функция CryptAcquireCertificatePrivateKey - что мешает посмотреть?
p.s. что помешало выделить память заранее сразу и не использовать CryptAcquireCertificatePrivateKey? Да спасибо. Понял. просмотрел, что там var-параметр.
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close