AES (aes-cbc-128, aes-cbc-192, aes-cbc-256) шифрование / дешифрование с помощью openssl C
Я просто хочу протестировать AES из openSSL в этих 3 режимах: с 128 192 и 256 ключами, но мой расшифрованный текст отличается от моего ввода, и я не знаю почему. Кроме того, когда я передаю огромную длину входных данных (скажем, 1024 байта), моя программа показываетcore dumped
... Мой вклад всегда одинаков, но это не имеет значения, по крайней мере, на данный момент. Вот код:
#include
#include
#include
#include
int main(int argc, char **argv)
{
int i;
int keylength;
printf("Give a key length [only 128 or 192 or 256!]:\n");
scanf("%d", &keylength);
/* generate a key with a given length */
unsigned char aes_key[keylength];
memset(aes_key, 0, sizeof(aes_key));
if (!RAND_bytes(aes_key, keylength))
{
exit(-1);
}
aes_key[keylength-1] = '\0';
int inputslength;
printf("Give an input's length:\n");
scanf("%d", &inputslength);
/* generate input with a given length */
unsigned char aes_input[inputslength+1];
memset(aes_input, '0', sizeof(aes_input));
aes_input[inputslength] = '\0';
/*printf("original:\t");
for(i=0; i