это мой первый вопрос, поэтому, пожалуйста, скажите мне, если я что-то не так делаю:).
Моя проблема в том, что я использую
EVP_DecryptInit(&ctx1, EVP_des_ecb(), tmpkey, NULL);
EVP_DecryptUpdate(&ctx1, keysigout, &outlu ,keysigin, keysigfilelength);
EVP_DecryptFinal(&ctx1, keysigout, &outlf);
printf("DECLEN:%i",outlu + outlf);
для расшифровки двоичного файла.Файл имеет длину 248 байт, но printf только сообщает мне, что EVP расшифровал 240 байт.keysigfilelength равен 248 и должен сообщить обновлению, что необходимо расшифровать 248 байт.
Я не понимаю, почему это не работает, и был бы рад, если вы меня просветите.
Редактировать: Я только что зашифровалфайл вручную с помощью команды
openssl enc -e -des-ecb -in test.txt -out test.bin -K 00a82b209cbeaf00
, и он вырос на 8 байт: O.Я до сих пор не знаю, откуда они берутся, но не думаю, что общая ошибка в моей программе вызвана этим.
Контекст всей этой проблемы - курс по информационной безопасности в моем университете.У нас были похожие задачи с разными алгоритмами, но даже тот, кто успешно выполнил свою программу, не смог понять, в чем проблема моей программы.
Можно ли публиковать всю мою программу для вас?