Ограничить размер записи в OpenSSL
Мне нужно реализовать TLS на встроенном устройстве с клиентом OpenSSL, работающим на обычном компьютере. Передача данных ограничена менее чем 1 кБ за раз. Я смотрел на mbedtls и можно ограничить буфер записи до 2 кБ для экономии памяти, однако стандартная запись TLS может быть до 16 кБ. Можно ли ограничить размер записи в TLS или, по крайней мере, требовать, чтобы каждая команда SSL_write создала свою собственную запись? В противном случае OpenSSL может объединить данные и создать запись, которая слишком длинна для получения. Я полностью контролирую оба конца соединения, поэтому проблем с совместимостью не должно быть.
1 ответ
Пытаться BIO_set_write_buffer_size()
, но вы должны просто иметь возможность контролировать, сколько вы читаете или отправляете за раз, и очищать BIO после каждой записи.
Другой стратегией может быть создание памяти BIO и передача выходных байтов, которые она производит. Вы не можете контролировать максимальный размер его буфера, но вы должны иметь возможность контролировать размер чанка таким образом.