2012-09-01 23 views
2

我試圖在我的AVR項目中使用AVR Crypto Lib(http://avrcryptolib.das-labor.org/trac/wiki/AES)中的AES函數,但是當我複製所有需要的文件,它給了我下面的錯誤。我在Windows上使用WinAVR,並在AVR Studio 5上嘗試使用默認項目,但未成功。AVR Crypto Lib中的AES函數沒有編譯

main.o: In function `main': 
c:\.../main.c:40: undefined reference to `aes128_init' 
c:\.../main.c:41: undefined reference to `aes128_enc' 
"make.exe": *** [main.elf] Error 1 

這就好像它甚至沒有嘗試讀取其中存在這些函數的.c文件。該網站上的例子說調用#include「aes.h」,如果你看看那個文件,它會調用所有其他的.h文件。

如果我編輯.h文件並告訴它們包括自己的.c文件 - 例如,在aes_keyschedule.h中,我告訴它包括「aes_keyschedule.c」這種工作,並使'aes128_init'消息消失,但引入更多問題。最終,當我到達asm.S文件時,它不會編譯。這當然不是它應該如何工作,但我不知道其他人是如何得到這個編譯。

所以我想我會問 - 有沒有其他人體驗過這個或有沒有人有一個非常簡單的AES示例,我可以看看?也許有比AVR Crypto Lib更好的東西?

謝謝 亞歷

回答

1

發現問題,必須修改Makefile。

我改變SRC的下方,它的所有作品:

SRC = $(TARGET).c aes128_dec.c aes128_enc.c aes_dec.c aes_enc.c aes_invsbox.c aes_keyschedule.c aes_sbox.c 

而且,我改變ASRC到: ASRC = gf256mul.S

+0

這是一個有點本地化問題/答案的,但感謝彙報。也許你可以把它報告給一個更集中的AVR社區。過一段時間後你可以接受你自己的答案。 –