Значит надо смотреть как заполняется твой "res". Я то не телепат.
При чём здесь заполнение res? Не проходит update или final. Если они не проходят то возвращается пустая строка. Значение в неё пишется после final.
P.S. Если не смотрел код по ссылке и нет дельного предложения не нужно набивать сообщения.
========================================
Проблему решил. Опишу может кому поможет.
Есть такой метод в документации:
virtual bool QCA::Cipher::ok ()const [virtual]
Test if an update() or final() call succeeded.
Returns:
true if the previous call succeeded
Для методов же update и final есть булевые переменные(внутри QCA), которые они и заполняют(насколько я понял по дебагу, но особо не вдавался).
В какой то момент update не проходит и пишет false. Всё это внутри QCA и лезть туда смысла нет.
А вот фрагмент моего кода:
//содать 128 битный AES шифр объект используя CBC режим
QCA::Cipher cipher(QString("aes128"),
// ставится режим шифрования
QCA::Cipher::CBC,
//использовать отступ по умолчанию который эквивалентен PKCS7 для CBC
QCA::Cipher::DefaultPadding,
// этот объект будет зашифрован
QCA::Encode,
key, iv);
Подумал что нужно поиграться с параметрами.
Вот ссылочка:
http://ru.wikipedia.org/wiki/Режим_шифрованияПосле изменения режима, всё заработало и больше расшифровка клина не ловит.
P.S. причину не нашёл, но главное что в результате код написан и всё работает.
Спасибо. Можно закрывать тему.