Молодогвардейцев 454015 Россия, Челябинская область, город Челябинск 89085842764
MindHalls logo

Установка и настройка библиотеки CryptoPP для C/C++

Прежде всего пара слов об этой замечательной библиотеке.

CryptoPP (она же Crypto++) — это чудесная и очень обширная библиотека криптографических функций и алгоритмов. Огромный выбор хеш-функций, реализации всех или почти всех шифров, возможность гибкой настройки каждого из них. Это и многое другое вы получите сразу после того, как прочитаете мою заметку и научитесь компилировать, собирать и подключать Crypto++ к своим проектам.

Неоспоримые плюсы CryptoPP

  • Умопомрачительное количество реализованных алгоритмов и протоколов (в том числе протокол Диффи-Хеллмана);
  • Самодокументированный код: библиотека грамотно написана, благодаря чему во многих случаях отпадает необходимость часто «гуглить» решение;
  • Скорость работы на хорошем уровне: а были сомнения? Это ж плюсы все таки.

Вещи, которые могут отпугнуть

Библиотека написана на полноценном академическом C++ с активным использованием ООП, шаблонов и классов. На первый взгляд это может показаться жутким запутанным клубком шаблонов, классов, статических функции и прочих ужасов. Особенно если библиотека была установлена «на один раз», например, студентом для домашнего задания.

Но есть выход! В таком случае можно просто нагуглить парочку примеров и вечно их модернизировать под разные задачи. Это становиться возможным как раз благодаря гибкой системе шаблонов. Работа с совершенно разными алгоритмами может быть реализована практически не отличающимся кодом. О этот чудный C++!

Но я думаю, что хватит расхваливать сие творение, ведь если вы ищите способы его установки, то уже уверены в том, что эта либа вам нужна. Переходим к делу!

Установка библиотеки Crypto++

Вам понадобится:

  • Visual studio community edition

Вот моя версия программы

Visual studio 2015

  • Последняя версия библиотеки, скачать которую можно отсюда

Компиляция библиотеки Crypto++

В распакованном архиве (скорее всего он будет называться cryptopp565 если это версия 5.6.5) находим файл cryptest.sln, который отвечает за весь проект библиотеки, открываем его студией и понимаем, что готовы приступать к сборке.

Первым делом необходимо определиться с типом подключения библиотеки — будет это статическая или динамическая линковка; выбрать версию архитектуры и версию сборки (Release/Debug). Все это настраивается следующим образом.

пункт меню «сборка» -> пакетная сборка

Вы увидите перед собой такое окно

crypto++ сборка

Я рекомендую собрать статическую библиотеку .lib, с ней меньше всего головных болей, вообще по моему мнению это самый простой и адекватный вид библиотек.

Поэтому ставим галочку напротив cryptlib | Release | win32 и со всей силы жмем на кнопку «сборка». В зависимости от мощности вашего железного коня вы успеете либо заварить, либо уже выпить чашечку крепкого чая.

Подключение Crypto++ к проекту в Visual Studio

После того, как мы допили свой чаек библиотека собралась в один файлик с названием cryptlib.lib, который находится по адресу «..\cryptopp565\Win32\Output\Release», пришло время понять, как подключить ее к своему проекту в студии.

Примечание: если в вашем проекте используется другой способ сборки, будь то make или cmake, вы без труда сможете конвертировать настройки VS в правильные флаги компилятору, а вот обратное (по моему мнению) не всегда просто.

пункт меню «Проект» -> свойства -> C/C++ -> общие

Здесь настраиваем пункт «Дополнительные каталоги включаемых файлов», ставим значением путь до корня распакованной библиотеки, например, «D:\cryptopp565».

На всякий случай прикреплю скриншоты

Настройка cryptopp в visual studio

пункт меню «Проект» -> свойства -> C/C++ -> создание кода

Изменить значение поля «Библиотека времени выполнения» на «Многопоточная /MT». Это значение служит для выбора типа подключаемых дополнительных библиотек, в нашем случае это lib, а не dll. В противном случае следует выбрать настройку «Многопоточный DLL /MD».

Настройка cryptopp в visual studio

пункт меню «Проект» -> свойства -> Компоновщик -> общие

Такое же значение ставим в настройку «Дополнительные каталоги библиотек»

настройка crypto++ в visual studio

пункт меню «Проект» -> свойства -> Компоновщик -> ввод

Копируем файл crypt.lib из его родного каталога прямо в корень библиотеки (путь, который фигурировал до этого в двух настройках) и подключаем его в настройке «Дополнительные зависимости» как «D:\cryptopp565\cryptlib.lib». Не забываем ставить точку с запятой после каждого элемента в настройке.

настройка cryptopp в visual studio

Можно пользоваться

Поздравляю, теперь вы обладаете солидной криптографической библиотекой, для проверки работоспособности можно запустить следующий код.

 

Всего хорошего!