Window C/C++ Crypto API Примеры и советы
Я задаю этот вопрос, потому что большую часть дня я провел, просматривая документы MSDN и другие непрозрачные источники, чтобы получить простые и понятные рекомендации о том, как начать работу с Windows C/C++ Crypto API.
То, что я хотел бы видеть, это некоторый пример кода, типичные пути включения, рекомендации по связыванию и т. Д., Что-нибудь действительно полезное. Я знаю, что это неточный вопрос, но я считаю, что неточные ответы лучше вообще нет.
Я получу мяч с моими собственными скудными находками...
4 ответа
Вот несколько примеров, которые я нашел....
- Пример программы C: перечисление сертификатов в магазине
- Пример программы C: Использование CryptAcquireContext
- Пример программы C: перечисление провайдеров CSP и их типов
- Пример кода C для открытия хранилищ сертификатов
- Пример программы C: отправка и получение подписанного и зашифрованного сообщения
- Пример программы C: Подписание хеша и проверка хэш-подписи
В MSDN эти примеры разбросаны по документам.
Этот сайт предоставляет хороший обзор концепций, а также кроссплатформенные примеры
Документы MSDN находятся здесь: http://msdn.microsoft.com/en-us/library/aa380252.aspx
Это основной включаемый файл: #include <wincrypt.h>
Биты криптографии включены как часть Windows SDK, который обычно устанавливается в %PROGRAMFILES(x86)%\Microsoft SDKs\Windows\SDKVERSION
(например, C:\Program Files\Microsoft SDKs\Windows\v6.0A
). Заголовки обычно находятся в %WINDOWSSDK%\Include
и соответствующие библиотеки находятся в %WINDOWSSDK%\Lib
,
Вы должны явно ссылаться на библиотеки криптографии. Предполагая, что вы находитесь в Visual Studio, вы можете добавить ссылку, щелкнув правой кнопкой мыши по проекту C++, выбрав свойства и выбрав Свойства конфигурации -> Линкер в древовидной структуре слева. Затем вы можете указать crypt32.lib
в поле ввода справа.
Альтернативно, (при условии, что вы используете msvC++) добавьте
#pragma comment(lib, "crypt32.lib")
к вашему источнику.
Также есть длинный пример " Шифрование с использованием Win32 Crypto API" в Code Project.
После нескольких часов поиска я нашел это здесь: https://learn.microsoft.com/en-us/troubleshoot/windows/win32/get-information-authenticode-signed-executables .
Подробно и работает.