C++ でファイルを復号化しようとしています。このファイルは、次のコマンドで暗号化されます。
openssl enc -nosalt -aes-128-cbc -pass pass:test -in "test.txt" -out "test_enc.txt" -p
コンソールにkey=098F6BCD4621D373CADE4E832627B4F6とが表示されiv=0A9172716AE6428409885B8B829CCB05ます。
C++ では、次の#include openssl/aes.h行を含めて、次のコードで復号化を試みます。
const char *indata = string.toAscii().constData();
unsigned char outdata[strlen(indata)];
unsigned char ckey[] = "098F6BCD4621D373CADE4E832627B4F6";
    unsigned char ivec[] = "0A9172716AE6428409885B8B829CCB05";
    /* data structure that contains the key itself */
    AES_KEY key;
    /* set the encryption key */
    AES_set_decrypt_key(ckey, 256, &key);
    AES_cbc_encrypt((unsigned char*) indata, outdata, strlen(indata), &key, ivec, AES_DECRYPT);
    QString result = QString((const char*) outdata);
    return result;
変数 outdata には、OpenSSL による暗号化前とは異なる値が含まれています。