Estoy usando .NET y he escrito una rutina asombrosa (xD) que encripta y desencripta un archivo usando AES256 CBC. Funciona perfectamente, pero ahora me dijeron que el archivo cifrado debe ser del mismo tamaño que el descifrado. (Hay un problema con algunas otras API, no es mi culpa, lo juro).
Entonces, he intentado todo lo que puedo encontrar, pero nada funciona. .NET Framework tiene un CipherMode.CTS que se ve exactamente como lo que necesito, pero desafortunadamente no está soportado actualmente.
Intenté establecer el relleno en ninguno, pero claro que tengo errores porque el tamaño del bloque es menor de lo que se supone que es.
Ideas?
Editar: He logrado resolver este problema de dos maneras:
Con .NET API SymmetricAlgorithm alg = new RijndaelManaged (); alg.Mode = CipherMode.CFB; alg.Padding = PaddingMode.None; alg.FeedbackSize = 8;
Con las API de BouncyCastle Cifrado IBufferedCipher = nuevo CtsBlockCipher (nuevo CbcBlockCipher (nuevo AesFastEngine ()))
Espero que esto pueda ayudar a otros con el mismo problema :)