18.03.2005 4:11:00Помогите новичку Ответов: 5
Дмитрий
У меня есть дискета с ключами.С помощью
CryptAcquireContext получаю дескриптор на провайдер(читается дискета).
Теперь как мне получить дискриптор из сертификата чтобы постоянно не использовать дискету?
 
Ответы:
18.03.2005 10:41:31Василий
Смотря какая задача.
1. Если нужно использовать закрытый ключ (создание ЭЦП, расшифрование), а контейнер ключа на дискете, то, дискету использовать придётся (либо использовать кеширование контейнеров в службе хранения ключей, когда дискета нужна будет только в первый раз).
2. Если закрытый ключ использовать не нужно (проверка ЭЦП, зашифрование) - сертификат можно получить их хранилища сертификатов или из файла.
Много примеров есть в MSDN. А также наш пример, выполняющий разнообразные действия с использованием ключей и сертификатов - http://www.cryptopro.ru/CryptoPro/test/sample2_0.zip
21.03.2005 2:08:42Дмитрий
Тогда я в тупике.
Из примера в export.c на который здесь много ссылок для шифрования используется секретный ключ отправителя...Ну а здесь вы говарите что секретный ключ не нужен. Поясните плиз
21.03.2005 9:58:47Василий
Есть разные схемы.
Наиболее правильная - когда ключ обмена строится по алгоритму Диффи-Хеллмана из своего закрытого (секретного) ключа - из контейнера и чужого открытого - из сертификата.
Но, например, при шифровании e-mail (S/MIME) это не получится из-за особенностей реализации. Поэтому там используется так называемый эфемерный секретный ключ, т.е. постоянный ключ, который ПО генерит одинаковым.
21.03.2005 10:49:18Дмитрий
Отлично. Подписываю текстовые файлы.Значить я все правильно сделал.
Еще вопрос как подписать Сообщение?
21.03.2005 11:14:23Василий
Смотря что называть сообщением. :-)
Если - в терминах MSDN, то в MSDN всё подробно описано - "Simplified Message Functions", "Low-level Message Functions".