AES_set_encrypt_key分段错误

时间:2012-09-22 14:16:28

标签: c openssl aes

我正在尝试使用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可能没有被初始化,但是从我见过的其他代码中看,初始化似乎没有必要。 ?

1 个答案:

答案 0 :(得分: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的内存(我猜它是一个结构)需要初始化。 你只声明了一个指针。