Есть ли способ представить 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 }