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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline Boris@Serezhkin.com  
#21 Оставлено : 20 апреля 2016 г. 22:31:20(UTC)
Boris@Serezhkin.com

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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 раз(а).
При желании могу и исходник выкластьDancing

Offline AndrewVLGAFC  
#22 Оставлено : 22 апреля 2016 г. 11:39:07(UTC)
AndrewVLGAFC

Статус: Активный участник

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

Сказал(а) «Спасибо»: 1 раз
вроде как устаканилось понимание )

подскажите значение KP_FP и PP_SIGNATURE_KEY_FP и PP_EXCHANGE_KEY_FP

нигде не нашел )

Отредактировано пользователем 22 апреля 2016 г. 12:48:39(UTC)  | Причина: Не указана

Offline Boris@Serezhkin.com  
#23 Оставлено : 23 апреля 2016 г. 8:50:57(UTC)
Boris@Serezhkin.com

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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 в примерах от крипто-про
Drool
Offline AndrewVLGAFC  
#24 Оставлено : 25 апреля 2016 г. 0:25:59(UTC)
AndrewVLGAFC

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline Boris@Serezhkin.com  
#25 Оставлено : 25 апреля 2016 г. 8:51:42(UTC)
Boris@Serezhkin.com

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline AndrewVLGAFC  
#26 Оставлено : 25 апреля 2016 г. 10:28:13(UTC)
AndrewVLGAFC

Статус: Активный участник

Группы: Участники
Зарегистрирован: 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???

как же тогда выполнить вышеозначенный пример? те найти контейнер по сертификату? Обновиться не вариант
Offline kemaev_andrey  
#27 Оставлено : 29 марта 2018 г. 10:45:47(UTC)
kemaev_andrey

Статус: Новичок

Группы: Участники
Зарегистрирован: 30.05.2013(UTC)
Сообщений: 6
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Добрый день! Почитал тему, выполнил поиск по форуму, хотел бы спросить у профи, а как выполнить шифрование файла сертификатом, который хранится в хранилище ADDRESSBOOK?
Желателен пример на делфи.
Offline Андрей Писарев  
#28 Оставлено : 29 марта 2018 г. 11:34:36(UTC)
Андрей *

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

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

Сказал «Спасибо»: 613 раз
Поблагодарили: 2378 раз в 1870 постах
Автор: kemaev_andrey Перейти к цитате
Добрый день! Почитал тему, выполнил поиск по форуму, хотел бы спросить у профи, а как выполнить шифрование файла сертификатом, который хранится в хранилище ADDRESSBOOK?
Желателен пример на делфи.


Здравствуйте.

Аналогично как и при хранении в Личном хранилище - указать это хранилище,
получить контекст сертификата (диалогом к пользователю или программно по своим критериям отбора), заполнить структуру и вызвать функцию для шифрования данных.
Техническую поддержку оказываем тут
Наша база знаний
Offline kemaev_andrey  
#29 Оставлено : 29 марта 2018 г. 14:24:14(UTC)
kemaev_andrey

Статус: Новичок

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline Андрей Писарев  
#30 Оставлено : 29 марта 2018 г. 15:07:30(UTC)
Андрей *

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

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

Сказал «Спасибо»: 613 раз
Поблагодарили: 2378 раз в 1870 постах
С какой ошибкой и где "не выходит"?
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.