| ||||
| ||||
У меня есть дискета с ключами.С помощью CryptAcquireContext получаю дескриптор на провайдер(читается дискета). Теперь как мне получить дискриптор из сертификата чтобы постоянно не использовать дискету? | ||||
Ответы: | ||||
| ||||
Смотря какая задача. 1. Если нужно использовать закрытый ключ (создание ЭЦП, расшифрование), а контейнер ключа на дискете, то, дискету использовать придётся (либо использовать кеширование контейнеров в службе хранения ключей, когда дискета нужна будет только в первый раз). 2. Если закрытый ключ использовать не нужно (проверка ЭЦП, зашифрование) - сертификат можно получить их хранилища сертификатов или из файла. Много примеров есть в MSDN. А также наш пример, выполняющий разнообразные действия с использованием ключей и сертификатов - http://www.cryptopro.ru/CryptoPro/test/sample2_0.zip | ||||
| ||||
Тогда я в тупике. Из примера в export.c на который здесь много ссылок для шифрования используется секретный ключ отправителя...Ну а здесь вы говарите что секретный ключ не нужен. Поясните плиз | ||||
| ||||
Есть разные схемы. Наиболее правильная - когда ключ обмена строится по алгоритму Диффи-Хеллмана из своего закрытого (секретного) ключа - из контейнера и чужого открытого - из сертификата. Но, например, при шифровании e-mail (S/MIME) это не получится из-за особенностей реализации. Поэтому там используется так называемый эфемерный секретный ключ, т.е. постоянный ключ, который ПО генерит одинаковым. | ||||
| ||||
Отлично. Подписываю текстовые файлы.Значить я все правильно сделал. Еще вопрос как подписать Сообщение? | ||||
| ||||
Смотря что называть сообщением. :-) Если - в терминах MSDN, то в MSDN всё подробно описано - "Simplified Message Functions", "Low-level Message Functions". | ||||