2

AVR プロジェクトで AVR Crypto Lib (http://avrcryptolib.das-labor.org/trac/wiki/AES) で 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 ファイルを読み取ろうとさえしないようです。Web サイトの例では、#include "aes.h" を呼び出すように指示されており、そのファイルを見ると、他のすべての .h ファイルが呼び出されます。

.h ファイルを編集して、それ自体の .c ファイルをインクルードするように指示すると、たとえば aes_keyschedule.h に「aes_keyschedule.c」をインクルードするように指示します問題。asm .S ファイルに到達すると、最終的にはコンパイルされません。確かにこれはうまくいく方法ではありませんが、他の誰かがこれをコンパイルする方法を知りません。

だから私は尋ねようと思いました-他の誰かがこれを経験しましたか、それとも私が見ることができる非常に単純なAESの例を誰かが持っていますか? AVR Crypto Lib よりも優れたものがあるのではないでしょうか?

ありがとう、アレックス

4

1 に答える 1

1

問題が見つかり、メイクファイルを変更する必要がありました。

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

于 2012-09-02T06:19:57.267 に答える