Ограничить размер записи в OpenSSL

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

1 ответ

Пытаться BIO_set_write_buffer_size(), но вы должны просто иметь возможность контролировать, сколько вы читаете или отправляете за раз, и очищать BIO после каждой записи.

Другой стратегией может быть создание памяти BIO и передача выходных байтов, которые она производит. Вы не можете контролировать максимальный размер его буфера, но вы должны иметь возможность контролировать размер чанка таким образом.

Другие вопросы по тегам