Написать программу хеширования Гост 34.11-2012 на OpenSSL C++? Нужно написать программу шифрования данных из текстового файла. Использовать OpenSSL и хеш 34.11-2012 на c++ Вопросы: Есть какая-нибудь стартовая версия программы с этим шифрованием? Документация для шифрования по этому Госту? Хоть какая-то информация на c++
void handleErrors()
{
std::cerr << "Error: ";
ERR_print_errors_fp(stderr);
}
int main()
// Генерируем случайный ключ{
EVP_MD_CTX mdctx;
const EVP_MD md;
unsigned char md_value[EVP_MAX_MD_SIZE];
unsigned int md_len;
unsigned char key[KEY_SIZE];
if (RAND_bytes(key, KEY_SIZE) != 1) {
std::cerr << "Error generating random key" << std::endl;
}
// Открываем файл для чтения
std::ifstream infile("input.txt", std::ios::binary);
if (!infile) {
std::cerr << "Error opening input file" << std::endl;
return 1;
}
md = EVP_get_digestbyname("md_gost12_256");
if (!md) {
std::cerr << "Error getting md gost12 256" << std::endl;
return 1;
}
mdctx = EVP_MD_CTX_new();
EVP_DigestInit_ex(mdctx, md, NULL);
// Вычисляем хеш
while (!infile.eof()) {
char buffer[FILE_SIZE];
infile.read(buffer, FILE_SIZE);
int bytes_read = infile.gcount();
EVP_DigestUpdate(mdctx, buffer, bytes_read);
}
// Получаем хеш
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
std::cout << "Hash: ";
for (unsigned int i = 0; i < md_len; i++) {
std::cout << std::hex << (int)md_value[i];
}
std::cout << std::dec << std::endl;
EVP_MD_CTX_free(mdctx);
infile.close();
return 0;
}