1

libtomcrypt API をダウンロードし、AES アルゴリズムのベンチマーク テストを実行したいと考えました。私が行ったことは、ソース ファイルを作成し、tomcrypt.h ヘッダーをインクルードすることです。次に、暗号化機能をテストするためのコード「rijndael_ecb_encrypt」を作成しました。

    #include <time.h>
    #include <tomcrypt.h>   
    #define MIN_TIME 10.0
    #define MIN_ITERS 20

    double test_rijndael_ecb_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_key *skey) {
        int iterations = 0;
        clock_t start;
        double elapsed=0.0;
        int out;
        start=clock();

        do{
            out = rijndael_ecb_encrypt(pt, ct, skey);
            iterations++;
            elapsed=(clock()-start)/(double)CLOCKS_PER_SEC;
        } while(elapsed<MIN_TIME || iterations<MIN_ITERS);

        elapsed=1000.0*elapsed/iterations;

        printf("%s \n",pt);
        //printf("%s \n",skey->data);
        printf("%s \n",ct);
        printf("iterations: %8d \n",iterations);
        printf("%8.2lf ms per iteration \n",elapsed);
        printf("out: %d \n",out);

        return elapsed;
    }

int main(){
//called the function
}

正しくコンパイルされますが、ランタイム リンケージ エラーがあります。また、関数「rijndael_ecb_encrypt」が検出されず、次のようなエラーが表示されます。

gcc  -o "TestC"  ./src/TestC.o   
./src/TestC.o: In function `test_rijndael_ecb_encrypt':
/home/anvesh/workspace/TestC/Debug/../src/TestC.c:35: undefined reference to `rijndael_ecb_encrypt'
collect2: error: ld returned 1 exit status
make: *** [TestC] Error 1

AES 暗号化の実行時間をテストするための正しい実装を行っていますか? そうでない場合、それを実装する代替手段はありますか?? 助言がありますか?私を助けてください。

4

1 に答える 1

2

tom crypt ライブラリをインストールします。

sudo apt-get install libtomcrypt-dev

次に、コンパイル時にライブラリを含めます。

gcc file.c -ltomcrypt
于 2013-05-31T06:09:34.577 に答える