Есть ли способ представить 4-байтовое число как 16-байтовое число?

Я должен зашифровать некоторые данные, используя 4 байта IV. Однако алгоритм шифрования, который я использую (AES128), нуждается в 16-байтовом (128-битном) ключе. Скажем, мой код выглядит следующим образом:

#include<gcrypt.h>
void encrypt(){
    int IV = 6174;
    gcry_cipher_hd_t hd;        
    errStatus = gcry_cipher_open(&hd, GCRY_CIPHER_AES128, GCRY_CIPHER_MODE_CBC, 0);
    errStatus = gcry_cipher_setkey(hd, keyBuffer, 16);
    gcry_cipher_setiv(hd, &IV, 16);
    gcry_cipher_encrypt(hd, output, 16, bytesToEncrypt, 16);
}

Сказать keyBuffer содержит 16-байтовый ключ и bytes,output` - мой вход и выход соответственно. Как мне правильно дать IV?

1 ответ

Можете ли вы попробовать этот код только для того, чтобы избежать переполнения буфера? Я не проверял это сам, хотя

int IV[4] = { 6174 }; // { 6174, 0, 0, 0 }
Другие вопросы по тегам