Client-Server Application C/C++/WinAPI uses CSP КриптоПРО
// Сам CSP (cryptography service provider) // https://www.cryptopro.ru/products/csp/downloads#latest_csp40r3
Скачать КриптоПро SCP 4.0.9944 https://www.cryptopro.ru/sites/default/files/private/csp/40/9944/CSPSetup.exe
CSPSetup.exe (..\Software\CSPSetup.exe)
Дополнительные опции
Русский язык, КС1
Установить
Выбрать любой ключ для "КриптоПро SCP 4.0.9944" https://forum.ruboard.ru/showthread.php/264712-%D0%98%D1%89%D1%83-%D0%BA%D0%BB%D1%8E%D1%87-%D0%BD%D0%B0-%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE-%D0%9F%D1%80%D0%BE-4-0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D0%B0%D1%8F/page3
4040A-Q000K-9KAC2-9A6QR-6FCZN
40403-D000Z-8KAC2-8QV3G-53VX4 // valid
4040U-M000Q-UKAC2-U6X29-W8T4G // valid
4040A-Q000K-9KAC2-9A6QR-6FCZN
// Плагин для браузера, для генерации сертификата
// https://www.cryptopro.ru/products/cades/plugin
Скачать КриптоПро ЭЦП Browser plug-in версия 2.0 https://www.cryptopro.ru/products/cades/plugin/get_2_0
cadesplugin.exe (..\Software\cadesplugin.exe)
Следовать инструкции
// Генерация тестового сертификата
// https://www.cryptopro.ru/certsrv/
Включить расширение КриптоПро ЭЦП Browser plug-in в настройках браузера (Chrome - Дополнительные инструменты->Расширения)
Сформировать сертификат:
OID = 1.2.643.3.6.0.12 (КриптоПро УЦ, Срок действия сертификата 12 месяцев)
Пометить ключ как экспортируемый (если будет стоять галочка, закртый ключ можно будет экспортировать)
Понятное имя - учтите, что будет отображаться только 7 первых символов
Выдать
Установить этот сертификат
// Действия со сгенерированным сертификатом:
// Сертификат хранится в "Запросы заявок на сертификат" текущего пользователя
Пуск
Сертификаты
Корень консоли > Сертификаты - текущий пользователь > Запросы заявок на сертификат > Реестр > Сертификаты
Все задачи > Экспорт
// Для закрытого ключа
Да, экспортировать закрытый ключ
Файл обмена личной информацией - PKCS #12 (.PFX) > Включить по возможности все сертификаты в путь сертификации
// Для публичного ключа
///Файл P7B содержит только сертификаты и цепные сертификаты (промежуточные CA), но не закрытый ключ
Нет, не экспортировать закрытый ключ
Стандарт Cryptographic Message Syntax - сертификаты PKCS #7 (.p7b)
// Импорт сертификатов
// В папке \cert_privates три сертификата с закртым ключом
// Закрытый ключ необходим для расшифрования (программа-сервер) и ЭЦП (программа-клиент)
// Публичный ключ необходим для шифрования (программа-клиент) и проверки ЭЦП (программа-сервер)
// Сертификаты следует помещять в "Личное" текущего пользователя
Пуск
Сертификаты
Корень консоли > Сертификаты - текущий пользователь > Личное > Реестр > Сертификаты
// Испорт
// (Установить сертификат) для публичного сертификата
Расположение хранилище > Текущий пользователь
Поместить все сертификаты в следующее хранилище > Личное
// Большая часть кода отсюда
https://www.cryptopro.ru/sites/default/files/products/csp/20/sample-2-0.zip
// dumpasn1
cmd> dumpasn1.exe file
cmd> dumpasn1.exe -ad file
// Notes
// https://www.cryptopro.ru/products/csp/usage#forintegration
// КриптоПро CSP Руководство программиста http://cpdn.cryptopro.ru/default.asp?url=content/csp36/html/Titul.html
// Пример на создание ключевого контейнера и генерацию ключей
http://cpdn.cryptopro.ru/content/csp40/html/group___acquire_example_CreatingKeyContainerExample.html
Не следует хранить в доверенных промежуточные, системные