JSSE wrap создает два пакета tls, требующие двух развертываний. Почему?
Я проверяю поведение нашего java-приложения в отношении шифрования и дешифрования jsse tls с помощью подключенного клиента openssl.
Сначала я заметил, что когда я вызываю unwrap для клиентских данных, он всегда разворачивается, занимая 37 байт и получая 0. Следующая развертка занимает несколько байтов и производит несколько.
Сначала я думал, что клиент сначала обернет пустой массив. Но потом я обнаружил, что код jsse делает то же самое, за исключением того, что он выдает 1 байт вместо 0.
Так что каждый звонокwrap
потребляет X байтов и производит Y байтов, но требует ДВАunwrap
s, тогда как первый потребляет 37 байтов и производит 1 байт, а второй - байты Y-37 и производит байты X-1.
Хотя openssl и jsse делают почти одно и то же, я ожидаю, что это будет правильно. Однако я хотел бы знать, почему это происходит. Я не вижу причины для этого, и это требует дополнительных ресурсов ...?