Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
proton-c-0.37.0
-
None
Description
OpenSSL processes TLS records one at time. It does its conversion work in buffers just larger than a maximum sized TLS record (16K). When processing large sized input and output buffers in a single pn_tls_process() call, the Proton TLS library has to loop inserting unprocessed data into the small OpenSSL buffer and extract the encrypted/decrypted data into the output buffer and free space for the next iteration. The code currently can exit the loop prematurely.