JSSE wrap crea dos paquetes tls que requieren dos desenvolvimientos. ¿Por qué?

Estoy inspeccionando el comportamiento de nuestra aplicación java con respecto al cifrado y descifrado jsse tls con un cliente openssl conectado.

Primero observé que cuando invoco a desenvolver los datos del cliente, siempre se desenvuelve consumiendo 37 bytes y produciendo 0. El siguiente desenvolvimiento consume algunos bytes y produce algunos.

Al principio pensé que el cliente envolvería primero una matriz vacía. Pero luego descubrí que el código jsse hace lo mismo, excepto que produce 1 byte en lugar de 0.

Así que cada llamada a unwrap consume X bytes y produce Y bytes pero requiere DOSunwraps mientras que el primero consume 37 bytes y produce 1 byte y el segundo consume Y-37 bytes y produce X-1 bytes.

Mientras openssl y jsse están haciendo casi lo mismo, espero que sea correcto. Sin embargo me gustaría saber por qué sucede eso. No veo una razón para eso y se necesitan recursos adicionales ...?

Respuestas a la pregunta(1)

Su respuesta a la pregunta