Я работаю над проектом, в котором используется режим AES256 OFB. Также я использую библиотеку из библиотеки AES от Брайана Гладмана . Мой вопрос: как я могу генерировать потоки ключей? Насколько я понимаю, у меня есть начальный вектор, с которого можно начать. Мы зашифровываем IV для получения потока ключей, затем поток ключей снова шифруется для генерации последующего потока ключей и так далее. У меня есть следующий код, но я не могу получить правильный поток ключей.
unsigned char szKey[32] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x45, 0x67, 0x89, 0xA8, 0xCD, 0xEF, 0x01, 0x23, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0x01, 0x23, 0x45 };
unsigned char szIV[16] = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x6f, 0xe2, 0x80, 0x2a, 0xa4, 0x03, 0x82, 0x8b };
unsigned char szKeystream1[16];
unsigned char szKeystream2[16];
aes_init();
aes_encrypt_ctx ctx[1];
aes_encrypt_key(szKey, 32, ctx);
aes_encrypt(szIV, szKeystream1, ctx); // generate the first keystream
aes_encrypt(szKeystream1, szKeystream2, ctx); // to generate the second keystream
Редактировать: оказывается, в моем ключе есть опечатка ... 0xA8 должно быть 0xAB ... извините, и я ценю вас, ребята, посмотрите на это