我正在尝试使用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的编译器错误,但是从我看到的其他代码中,似乎没有必要进行初始化。 ?

最佳答案

只是一个随机的猜测。
尝试这个:

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的内存(我猜它是一个结构)。
您只声明了一个指针。

07-27 19:32