Важный вопрос: что вы используете для шифрования? Если эта библиотека шифрования не меняет длину строки, вы должны знать, насколько большой была строка раньше, потому что вы могли strlen()
ее раньше.
Если библиотека меняет длину, вам нужно будет передать ей буфер и сообщить библиотеке ее размер. Затем библиотека должна вернуться, если вызов был успешным (т.е. буфер был достаточно большим) и насколько велика цель.
Примечание: если вы используете блочный шифр, вам разрешено вводить блоки только определенной длины (не короче и не длиннее), и в результате получается буфер фиксированного размера - в случае openssl есть макрос #define
в котором указывается длина блока и длина результата.
совместное использование кода будет приветствоваться здесь.