JSSE-Wrap erstellt zwei TL-Pakete, für die zwei Unwraps erforderlich sind. Warum?

Ich überprüfe das Verhalten unserer Java-Anwendung in Bezug auf die Verschlüsselung und Entschlüsselung mit einem verbundenen OpenSSL-Client.

Zuerst habe ich festgestellt, dass beim Aufrufen von Unwrap für Client-Daten immer 37 Bytes entpackt und 0 erzeugt werden. Beim nächsten Unwrap werden einige Bytes verbraucht und einige erzeugt.

Zuerst dachte ich, der Client würde zuerst ein leeres Array umschließen. Dann entdeckte ich, dass der jsse-Code dasselbe tut, außer dass er 1 Byte anstelle von 0 erzeugt.

Also jeder Anruf zu einemwrap Verbraucht X Bytes und produziert Y Bytes, benötigt aber ZWEIunwraps während das erste 37 Bytes verbraucht und 1 Byte erzeugt und das zweite Y-37 Bytes verbraucht und X-1 Bytes erzeugt.

Während openssl und jsse fast dasselbe tun, gehe ich davon aus, dass dies korrekt ist. Ich würde aber gerne wissen, warum das passiert. Ich sehe keinen Grund dafür und es werden zusätzliche Ressourcen benötigt ...?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage