Opakowanie JSSE tworzy pakiety o dwóch tach, które wymagają dwóch rozpakowań. Czemu?

Sprawdzam zachowanie naszej aplikacji Java w odniesieniu do szyfrowania i deszyfrowania jsse tls za pomocą połączonego klienta openssl.

Najpierw zauważyłem, że gdy wywoływam odwijanie danych klienta, zawsze rozpakowuje się zużywając 37 bajtów i wytwarzając 0. Kolejne rozpakowanie zużywa kilka bajtów i generuje niektóre.

Na początku myślałem, że klient najpierw zawinie pustą tablicę. Ale potem odkryłem, że kod jsse robi to samo, tyle że wytwarza 1 bajt zamiast 0.

Więc każde wezwanie dowrap zużywa X bajtów i produkuje bajty Y, ale wymaga DWÓCHunwraps, podczas gdy pierwszy zużywa 37 bajtów i wytwarza 1 bajt, a drugi zużywa Y-37 bajtów i wytwarza X-1 bajtów.

Chociaż openssl i jsse robią prawie to samo, oczekuję, że będzie to poprawne. Chciałbym jednak wiedzieć, dlaczego tak się dzieje. Nie widzę powodu, który wymaga dodatkowych zasobów ...?

questionAnswers(1)

yourAnswerToTheQuestion