Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: AndrewVLGAFC  Сейчас еще раз попробую перечитать )
сделал CryptEnumProviders
на виртуалке (на которой пишу) выдало такой список
DSS Signature RSA SChannel Diffie-Hellman SChannel RSA Full and AES
на реальной машине такой
GOST R3410/11 Provider DSS Signature RSA SChannel Diffie-Hellman SChannel RSA Full and AES
хотя в виртуалке в закладке алгоритмы выбран GOST R 34.10-2001 Signature ....... А на виртуалке Крипто-Про установлена? Возьми игрушку, поиграйся. Там точно CryptAcuireContext есть и запросов "вставьте носитель нет"  T_Provider.rar (47kb) загружен 16 раз(а).При желании могу и исходник выкласть
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 29.03.2016(UTC) Сообщений: 33
Сказал(а) «Спасибо»: 1 раз
|
вроде как устаканилось понимание ) подскажите значение KP_FP и PP_SIGNATURE_KEY_FP и PP_EXCHANGE_KEY_FP нигде не нашел ) Отредактировано пользователем 22 апреля 2016 г. 12:48:39(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Автор: AndrewVLGAFC  подскажите значение KP_FP и PP_SIGNATURE_KEY_FP и PP_EXCHANGE_KEY_FP нигде не нашел Плохо искал... #define KP_FP 107 #define PP_SIGNATURE_KEY_FP 211 #define PP_EXCHANGE_KEY_FP 212 Это WinCryptEx.h в примерах от крипто-про
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 29.03.2016(UTC) Сообщений: 33
Сказал(а) «Спасибо»: 1 раз
|
видимо плохо искал ) теперь споткнулся на этой теме http://cpdn.cryptopro.ru...tainerByCertificate.htmlКод:
//------------------------------------------------------------------------
// Получение параметра KP_FP открытого ключа из сертификата
// Получение размера параметра
if (CryptGetKeyParam(hPublicKey, KP_FP, NULL, &cbFPCert, 0))
{
printf("CryptGetKeyParam KP_FP succeeded. \n");
ошибка 0x8009000A указан неправильный тип зы. А этих констант в вышеозначенном файле я как ни странно не нашел. заголовок файла такой /*! * \file $RCSfile$ * \version $Revision: 95174 $ * \date $Date: 2013-10-01 11:31:07 +0400 (Tue, 01 Oct 2013) $ * \author $Author: sonina $ * * \brief Интерфейс Крипто-Про CSP, добавление к WinCrypt.h. */ качал по этой ссылке http://www.cryptopro.ru/products/csp/downloads#2Отредактировано пользователем 25 апреля 2016 г. 0:41:41(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 26.08.2010(UTC) Сообщений: 259 Откуда: Moscow
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 11 раз в 10 постах
|
Ну не знаю, не знаю... начиная от * \version $Revision: 106271 $ * \date $Date: 2014-05-07 17:31:22 +0400 (Wed, 07 May 2014) $ Это SDK от 3.9 ЗЫ: Пример из ЦПДН? Отредактировано пользователем 25 апреля 2016 г. 8:55:01(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 29.03.2016(UTC) Сообщений: 33
Сказал(а) «Спасибо»: 1 раз
|
Автор: Boris@Serezhkin.com  Ну не знаю, не знаю... начиная от * \version $Revision: 106271 $ * \date $Date: 2014-05-07 17:31:22 +0400 (Wed, 07 May 2014) $ Это SDK от 3.9
ЗЫ: Пример из ЦПДН? именно. смотрел от 3.6 те получается в 3.6 нет такого параметра KP_FP??? как же тогда выполнить вышеозначенный пример? те найти контейнер по сертификату? Обновиться не вариант
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2013(UTC) Сообщений: 6  Сказал(а) «Спасибо»: 3 раз
|
Добрый день! Почитал тему, выполнил поиск по форуму, хотел бы спросить у профи, а как выполнить шифрование файла сертификатом, который хранится в хранилище ADDRESSBOOK? Желателен пример на делфи.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,104   Сказал «Спасибо»: 613 раз Поблагодарили: 2378 раз в 1870 постах
|
Автор: kemaev_andrey  Добрый день! Почитал тему, выполнил поиск по форуму, хотел бы спросить у профи, а как выполнить шифрование файла сертификатом, который хранится в хранилище ADDRESSBOOK? Желателен пример на делфи. Здравствуйте. Аналогично как и при хранении в Личном хранилище - указать это хранилище, получить контекст сертификата (диалогом к пользователю или программно по своим критериям отбора), заполнить структуру и вызвать функцию для шифрования данных. |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2013(UTC) Сообщений: 6  Сказал(а) «Спасибо»: 3 раз
|
Код:procedure TForm1.EncryptFileButtonClick(Sender: TObject);
var
pStreamData: TMemoryStream;
MessageArray: array of Pbyte;
SizeArray: array of DWORD;
SizeBuff, SizeBuf1: DWORD;
cert : PCCERT_CONTEXT;
hCertPubKey: HCRYPTKEY;
phProv: HCRYPTPROV;
addressbook: hcertstore;
begin
pStreamData:=TMemoryStream.Create;
try
addressbook := CertOpenSystemStore(0, 'ADDRESSBOOK');
cert:=CertFindCertificateInStore(ADDRESSBOOK, X509_ASN_ENCODING or PKCS_7_ASN_ENCODING, 0, CERT_FIND_SUBJECT_STR, PChar(FriendCertComboBox.Text), nil);
if cert = nil then
begin
CertFreeCertificateContext(cert);
showmessage('Íå âûáðàí ñåðòèôèêàò');
exit;
end;
if not CryptAcquireContext(phProv, nil, 'Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider', 75,CRYPT_VERIFYCONTEXT) then begin
showmessage('Íå óäàëîñü ïîëó÷èòü êîíòåêñò êðèïòîïðîâàéäåðà');
exit;
end;
if not CryptImportPublicKeyInfo(phProv,PKCS_7_ASN_ENCODING or X509_ASN_ENCODING, @cert.pCertInfo.SubjectPublicKeyInfo,hCertPubKey)
then showmessage('Íå óäàëîñü ïîëó÷èòü êëþ÷');
pStreamData.LoadFromFile(InputFileEdit.Text);
SetLength(MessageArray, 1);
SetLength(SizeArray, 1);
MessageArray[0] := pStreamData.Memory;
SizeArray[0] := pStreamData.Size;
if CryptEncrypt(hCertPubKey,0,true,0, nil,SizeBuff, SizeArray[0]) then
if CryptEncrypt(hCertPubKey,0,true,0, MessageArray[0],SizeBuf1, SizeBuff) then
begin
OutputFileEdit.Text := InputFileEdit.Text+'.enc';
pStreamData.SaveToFile(OutputFileEdit.Text);
showmessage('Ôàéë óñïåøíî çàøèôðîâàí');
end else showmessage(SysErrorMessage(GetLastError))
else showmessage(SysErrorMessage(GetLastError));
finally
CertFreeCertificateContext (cert);
pStreamData.Free;
end;
end;
вот таким образом не выходит.... серты у меня перечисляются в FriendCertComboBox Отредактировано пользователем 29 марта 2018 г. 14:25:47(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,104   Сказал «Спасибо»: 613 раз Поблагодарили: 2378 раз в 1870 постах
|
С какой ошибкой и где "не выходит"? |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close