В EVP_DecryptFinal

это мой первый вопрос, поэтому скажите, пожалуйста, если я что-то не так делаю :).

Моя проблема в том, что я использую

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 байт. keyigfilelength составляет 248 и должен сообщить обновлению, что необходимо расшифровать 248 байт.

Я не понимаю, почему это не работает, и буду рад, если вы меня просветите.

Изменить: Я просто зашифровал файл вручную командой

openssl enc -e -des-ecb -in test.txt -out test.bin -K 00a82b209cbeaf00

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

Контекст всей этой проблемы - это курс по информационной безопасности в моем университете. У нас были похожие Задачи с разными алгоритмами, но даже тот, кто успешно выполнил свою программу, не мог понять, где проблема в моей программе.

Можно ли опубликовать для вас всю мою программу?

6
задан outsmartin 6 January 2012 в 23:59
поделиться