/ClientServer_CryptoPRO_CSP

Client-Server Application C/C++/WinAPI uses CSP КриптоПРО

Primary LanguageC

ClientServer_CryptoPRO_CSP

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 - Дополнительные инструменты->Расширения)

Перейти https://www.cryptopro.ru/certsrv/certrqma.asp

Сформировать сертификат:

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

Не следует хранить в доверенных промежуточные, системные

http://www.justsign.me/verifycpca/VerifyCertificate/

https://docs.microsoft.com/en-us/windows/desktop/seccrypto/example-c-program-signing-encoding-decoding-and-verifying-a-message