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 回答