Добрый день. Суть вопроса такова: моя программа должна будет хранить часть пользовательских данных в зашифрованном виде. Я нашёл реализацию алгоритма AES256, написал функцию для шифрования файла. Всё бы хорошо, но вот шифрование происходит очень медленно.
void MyEncryptFile() {
aes256_context ctx;
uint8_t BUFFER[16];
uint8_t PASSWORD[32] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f };
FILE *ff1 = fopen("E:\\picture.jpg", "rb");
FILE *ff2 = fopen("E:\\picture.jpg.encrypt", "wb");
aes256_init(&ctx, PASSWORD);
while (!feof(ff1))
{
fread(BUFFER, sizeof(uint8_t), 16, ff1);
aes256_encrypt_ecb(&ctx, BUFFER);
fwrite(BUFFER, sizeof(uint8_t), 16, ff2);
}
fclose(ff1);
fclose(ff2);
aes256_done(&ctx);
}
Файл размером 1,23 МБ шифрует около минуты. Это я криво реализовал,или реализация самого AES такая? Или же это нормально и так и должно быть? Но как тогда например TrueCrypt шифрует "на лету"?
Реализация AES:
https://github.com/asu2010/crypt_AES-256/blob/mast...
Помогите разобраться