Tengo un CipherOutputStream respaldado por otro OutputStream. Una vez que haya terminado de escribir todos los datos que necesito encriptados en CipherOutputStream, debo adjuntar algunos datos no encriptados.¿Cómo puedo forzar que CipherOutputStream termine de encriptar pero deje la secuencia subyacente abierta?
The documentation for CipherOutputStream dice que al llamar al flush()
no se forzará la salida del bloque final del encriptador; para eso necesito llamar al close()
. Pero close()
también cierra el OutputStream subyacente, que aún tengo que escribir más.
¿Cómo puedo forzar al último bloque fuera del encriptador sin cerrar la secuencia? ¿Debo escribir mi propio NonClosingCipherOutputStream?
Usaría esta respuesta como base para crear algo como NonClosingCipherOutputStream, pero inspirado por el ejemplo de 'DigestOutputStream.on (...)' Crearía un método 'cipherFinish()' después del cual la transmisión simplemente pasaría datos a el sistema operativo subyacente. –