esta es mi primera pregunta, así que por favor dígame si hago algo mal :).falta 8 bytes en EVP_DecryptFinal
Mi problema es que utilizo
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);
para descifrar un archivo binario. El archivo tiene 248 bytes de longitud, pero printf solo me dice que EVP descifró 240 bytes. keysigfilelength es 248 y debe indicar a la actualización que se deben descifrar 248 bytes.
No entiendo por qué esto no funciona y sería feliz si puedes aclararme.
Editar: acabo un archivo encriptado de forma manual con el comando
openssl enc -e -des-ecb -in test.txt -out test.bin -K 00a82b209cbeaf00
y creció un 8 bytes: S. Todavía no sé de dónde vienen, pero no creo que el error general que tengo en mi programa sea causado por esto.
El contexto de todo este problema es un curso de seguridad de la información en mi universidad. Obtuvimos Tareas similares con diferentes algoritmos, pero incluso alguien que haya realizado su programa con éxito no pudo averiguar dónde está el problema en mi programa.
¿Está bien publicar todo mi programa para usted?
Solo para asegurarse, no es algo así como estar en Windows y abrir el archivo en modo texto para que '\ r's se eliminen? –
http://pastebin.com/H3riQhm7 aquí hay un hexdump -C del archivo. todo el trabajo se hace en linux – outsmartin
Pensé que no sería eso, pero es mejor estar seguro. –