0

openssl を使用してキーを設定しようとしています。このコードは、セグメンテーション違反を生成しています。誰か助けてくれませんか?

AES_KEY *aes_key;
unsigned char key[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
};
unsigned char iv[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
};

AES_set_encrypt_key(key, 128, aes_key);

aes_key が初期化されていない可能性があるというコンパイラ エラーも発生していますが、私が見た他のコードからは、初期化は必要ないようです。?

4

1 に答える 1

2

ただの勝手な推測です。これを試して:

AES_KEY aes_key;
unsigned char key[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
};
unsigned char iv[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
};

AES_set_encrypt_key(key, 128, &aes_key);

私は OpenSSL を使用したことがありませんが、AES_KEY (構造体だと思います) のメモリを初期化する必要があるかもしれません。ポインターを宣言しただけです。

于 2012-09-22T14:27:50.743 に答える