криптография — C ++ xor между 2 строками Null CBC

Я пытаюсь реализовать схему CBC для AES, используя Crypto ++.
Отсюда и мои проблемы: когда я пытаюсь «xor» 2 строки символов, у меня возникают проблемы в том случае, когда я пытаюсь xor персонажа с самим собой.

unsigned char * xorOp(const char * s1,unsigned char * s2){
unsigned char *out = (unsigned char *) calloc(strlen(s1),sizeof(unsigned char));
for(int i=0; s1[i]!=0;i++)
{
out[i] = s1[i] ^ s2[i];
cout<<out[i]<<endl;
if(out[i] == '\0') cout<<"not ok "<<s1[i]<<" "<<s2[i]<<endl;
}

return out;
}

Вызов:

unsigned char * encryptedXOR = xorOp(plainTextBlock.c_str(),iv);

где plainTextBlock — это блок из 16 байтов обычного текста, а iv — вектор инициализации (16 байтов).
После этого, предположив, что моя длина обычного текста равна 130, после заполнения 144, после шифрования должно быть 288. Так что это измерение не может быть достигнуто из-за xor.
Пожалуйста помоги!
Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …