Gardant Sign + AES128 + OFB
При шифровании/дешифровании с помощью аппаратного алгоритма AES128, обнаружил неприятную особенность: неправильная работа, если размер входных данных не кратен размеру ключа (16 байт). В описании сказано что при работе в режиме OFB размер данных не имеет значения.
Я реализую "поточное" шифрование, поэтому входящий размер размер может быть любым.
Вызов ф-ции API такой:
GrdCryptEx(handle(), m_alg, sz, buffer,
GrdAM_OFB + GrdAM_Encrypt, //Использование GrdSC_First, GrdSC_Next, GrdSC_Last не меняет результата
m_ivSize, //16
m_iv, //указатель на массив вектора инициализации
NULL,
NULL,
NULL )
М.б, я что то неправильно делаю ?
PS:
Если несколькими блоками кодирую:
16-16-16-8 - Правильно
16-8-16-... - Не правильно