2012-09-22 76 views
0

我想使用openssl设置一个密钥。此代码正在生成分段错误。有人可以帮忙吗?AES_set_encrypt_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); 

我也越来越认为AES_KEY可能无法初始化一个编译器错误,但是从我所看到的其他代码,初始化似乎没有必要。 ?

回答

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内存(我猜这是一个结构)需要被初始化。 您只声明了一个指针。

+0

嘿,很好的电话!它现在有用 - 谢谢! – user1190650

+1

你也可以声明总是通过指针传递的内容为'AES_KEY aes_key [1]'。我觉得更方便。 – elmigranto