Статус: Новичок
Группы: Участники
Зарегистрирован: 21.07.2008(UTC) Сообщений: 6 Откуда: Россия, Ханты-Мансийск
|
Есть два носителя eToken. На них лежат сертификаты с приватными ключами. Все происходит на одном компьютере. Оба сертификата были импортированы в хранилище MY. Позже, при поднятии сетевого соединения и обмене сертификатами между двумя субьектами, пытаюсь зделать импорт открытого ключа из полученного сертификата для шифрования создания и шифрации сессионного ключа, но GetLastError возвращает, что параметры указаны неверно. Причем вызов CryptImportPublicKeyInfo/Ex на стороне - владельце сертификата, перед отправкой другой стороне вообще вешает исполнение.
Контексты провайдеров получаю по умолчанию для типа 71. В флаге указываю 0, указывал CRYPT_VERIFYCONTEXT, но ситуация не изменялась. Сертификатами обмениваюсь через создание хранилища сертификатов в памяти, добавления в него контекста личного сертификата, сохранения хранилища в файл и отправкой уже этого файла на другую сторону. Другая сторона получает сертификат в обратном порядке. Сохраняет полученное в файл, открывает его как хранилище и получает оттуда контекст сертификата. Повторюсь, все происходит на одной и той же машине и в одном и том же приложении. Приложение является win32 сервисом. Сервис запускается от имени пользователя для которого установленны сертификаты.
И еще один момент. Сторона A шлет сертификат стороне B. Сторона B прекрасно его проверяет через CertGetIssuerCertificateFromStore. После проверки сторона B шлет в ответ стороне A свой сертификат, но сторона A уже отказывается подтверждать личность стороны B. Корневой сертификат находится, но во флаге сидит значение CERT_STORE_SIGNATURE_FLAG. Оба сертификата подписаны одним и тем же подписчиком и его сертификат конечно же установлен.
Помогите чем можете :) Подскажите что может быть не так...
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.07.2008(UTC) Сообщений: 6 Откуда: Россия, Ханты-Мансийск
|
Ну что'ж. Получить ОК из отсылаемого сертификата на принимаемой стороне не получилось. Пришлось экспортировать ОК на хозяйской стороне в BLOB, отправлять отдельно от сертификата и на той стороне он прекрасно импортировался в контекст. Всем спасибо. :)
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,391 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 715 раз в 620 постах
|
Так все сумбурно - неужели функция CryptImportPublicKeyInfo не работает? А почему тип 71? Эти ключи уже запрещено использовать. И зачем хранилища? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.07.2008(UTC) Сообщений: 6 Откуда: Россия, Ханты-Мансийск
|
Да, CryptImportPublicKeyInfo не хочет работать с полученным сертификатом. С созданием временного хранилища для передачи это я намудрил конечно. Теперь просто передаю encoded данные из контекста сертификата и позже CertCreateContext воссоздаю, но иvпорт ОК все равно не производится. Только из переданного отдельно PCERT_PUBLIC_KEY_INFO выдранного ранее из передаваемого сертификата. С 75 типом тоже такая же ерунда.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close