Мне нужно запустить реализацию криптографического алгоритма "Кузнечик", написанную на C или C++. Сначала пробовал запустить официальную реализацию ТК 26 на C, но не смог, появилась целая куча непонятных ошибок. Затем пробовал запустить реализацию из библиотеки cppcrypto:
#include <cstdio>
#include "W:\Program Files\cppcrypto-0.17-src\cppcrypto\kuznyechik.h"
using namespace cppcrypto;
int main() {
unsigned char masterKey[32] =
{
0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef
};
unsigned char text[16] =
{
0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x00,
0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88
};
unsigned char ctext[16];
kuznyechik my_cphr;
my_cphr.init(masterKey, block_cipher::direction::encryption);
my_cphr.encrypt_block(text, ctext);
for (int i = 0; i < 16; i++) {
printf("%02x", ctext[i]);
}
}
Возникло 9 ошибок, вот некоторые из них:
Ошибка LNK2001 неразрешенный внешний символ ""public: virtual void __thiscall cppcrypto::block_cipher::decrypt_blocks(unsigned char const *,unsigned char *,unsigned int)" (?decrypt_blocks@block_cipher@cppcrypto@@UAEXPBEPAEI@Z)" Gost_Kuz C:\Users\gashi\source\repos\Time_test\Gost_Kuz\Source.obj 1
Ошибка LNK1120 неразрешенных внешних элементов: 8 Gost_Kuz C:\Users\gashi\source\repos\Time_test\Debug\Gost_Kuz.exe 1
Ошибка LNK2019 ссылка на неразрешенный внешний символ "public: virtual bool __thiscall cppcrypto::kuznyechik::init(unsigned char const *,enum cppcrypto::block_cipher::direction)" (?init@kuznyechik@cppcrypto@@UAE_NPBEW4direction@block_cipher@2@@Z) в функции _main Gost_Kuz C:\Users\gashi\source\repos\Time_test\Gost_Kuz\Source.obj 1
Что делать? Использую Visual Studio Community 2019 версии 16.2.3