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

Ответы на вопрос(2)

Ваш ответ на вопрос