Я пытался добавить библиотеку Botan в свой проект на C++, но пока не понял этого. Я использую Ubuntu 22.04, использую CLion с CMake.
Я загрузил последнюю версию (3.3.0) с GitHub и следовал документации по созданию библиотеки. Я выполнил эти команды в своей системе, и библиотека была успешно установлена:
Код: Выделить всё
$ ./configure.py
$ make
$ make check
$ make install
Код: Выделить всё
cmake_minimum_required(VERSION 3.27)
project(example)
set(CMAKE_CXX_STANDARD 17)
add_executable(example main.cpp)
find_package(Botan 3.3.0)
find_package(Botan 3.3.0 COMPONENTS rsa ecdsa tls13)
find_package(Botan 3.3.0 OPTIONAL_COMPONENTS tls13_pqc)
include_directories("/usr/include")
target_link_libraries(example "Downloads/Botan-3.3.0/libbotan-3.so")
Код: Выделить всё
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char* argv[]) {
if(argc != 2) {
return 1;
}
std::string plaintext(
"Your great-grandfather gave this watch to your granddad for good luck. "
"Unfortunately, Dane's luck wasn't as good as his old man's.");
std::vector pt(plaintext.data(), plaintext.data() + plaintext.length());
Botan::AutoSeeded_RNG rng;
// load keypair
Botan::DataSource_Stream in(argv[1]);
auto kp = Botan::PKCS8::load_key(in);
// encrypt with pk
Botan::PK_Encryptor_EME enc(*kp, rng, "OAEP(SHA-256)");
std::vector ct = enc.encrypt(pt, rng);
// decrypt with sk
Botan::PK_Decryptor_EME dec(*kp, rng, "OAEP(SHA-256)");
Botan::secure_vector pt2 = dec.decrypt(ct);
std::cout
Источник: [url]https://stackoverflow.com/questions/78154962/add-botan-library-to-clion-c-project[/url]
Мобильная версия