Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2013(UTC) Сообщений: 6 Сказал(а) «Спасибо»: 3 раз
|
показывает мою же ошибку "сертификат не найден", которая вызывается в этой процедуре
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;
сертификаты там перечисляются
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2013(UTC) Сообщений: 6 Сказал(а) «Спасибо»: 3 раз
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,629 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
В коде есть ошибки. Да и сама реализация в виде выбора из списка, в котором только CommonName - неправильная.
Что будет при подписании, если у меня несколько сертификатов с одинаковыми владельцами (срок действия разный\разные УЦ\CSP и т.п.) ? Что будет при шифровании, если у меня несколько сертификатов с одинаковыми владельцами (срок действия разный\разные УЦ и т.п.) ?
Подсказка: выводить более детальную информацию, а искать более точно, по CERT_FIND_HASH.
Подсказка2: Временно поставить CERT_FIND_ANY и получить еще новую ошибку?
В вызов CryptAcquireContext - не рекомендуется вшивать имя и тип криптопровайдера, в 2019 код окажется не рабочим или если на ПК будет другой CSP...
Подсказка3: Для чего существует двойной вызов CryptEncrypt? И почему нет выделения памяти после первого вызова?
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,629 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Предлагаю открыть пример из SDK (samples\CSP\CryptMessages\) И работать с высокоуровневой функцией - CryptEncryptMessage |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2013(UTC) Сообщений: 6 Сказал(а) «Спасибо»: 3 раз
|
заменил CERT_FIND_ANY, ошибка та же.... а рабочих примеров с CryptEncryptMessage конкретно с выбором серта из хранилища не находмл... или плохо искал, подскажите плиз конкретным кодом
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,629 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: kemaev_andrey заменил CERT_FIND_ANY, ошибка та же.... а рабочих примеров с CryptEncryptMessage конкретно с выбором серта из хранилища не находмл... или плохо искал, подскажите плиз конкретным кодом Код в SDK есть. Функция с комментариями - GetRecipientCert |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,629 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2013(UTC) Сообщений: 6 Сказал(а) «Спасибо»: 3 раз
|
В коде на си все замечательно, но не могу привести типы данных к паскалевским значениям. Переучиваться на другой язык нет возможности пока. Подскажите, как эта функция CryptEncryptMessage будет на делфи... поиск использовал, однако конкретно в моем случае не подошло почему-то
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close