AVR Crypto Lib中的AES函数无法编译

时间:2012-09-01 12:32:02

标签: cryptography aes avr winavr

我正在尝试在我的AVR项目中使用AVR Crypto Lib中的AES函数(http://avrcryptolib.das-labor.org/trac/wiki/AES)但是当我复制所有必需的文件时它给了我以下错误。我在Windows上使用WinAVR,并且在AVR Studio 5上尝试使用默认项目但没有成功。

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 个答案:

答案 0 :(得分: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