2012-09-22 158 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