Commit b83aea73 authored by Diego Biurrun's avatar Diego Biurrun

des-test: Pass the proper types to av_des_*() functions

Fixes a number of incompatible pointer type warnings.
parent 5c0e2b13
...@@ -67,19 +67,22 @@ static int run_test(int cbc, int decrypt) ...@@ -67,19 +67,22 @@ static int run_test(int cbc, int decrypt)
} }
} }
union word_byte {
uint64_t word;
uint8_t byte[8];
};
int main(void) int main(void)
{ {
AVDES d; AVDES d;
int i; int i;
uint64_t key[3]; union word_byte key[3], data, ct;
uint64_t data;
uint64_t ct;
uint64_t roundkeys[16]; uint64_t roundkeys[16];
srand(av_gettime()); srand(av_gettime());
key[0] = AV_RB64(test_key); key[0].word = AV_RB64(test_key);
data = AV_RB64(plain); data.word = AV_RB64(plain);
gen_roundkeys(roundkeys, key[0]); gen_roundkeys(roundkeys, key[0].word);
if (des_encdec(data, roundkeys, 0) != AV_RB64(crypt)) { if (des_encdec(data.word, roundkeys, 0) != AV_RB64(crypt)) {
printf("Test 1 failed\n"); printf("Test 1 failed\n");
return 1; return 1;
} }
...@@ -94,15 +97,15 @@ int main(void) ...@@ -94,15 +97,15 @@ int main(void)
return 1; return 1;
} }
for (i = 0; i < 1000; i++) { for (i = 0; i < 1000; i++) {
key[0] = rand64(); key[0].word = rand64();
key[1] = rand64(); key[1].word = rand64();
key[2] = rand64(); key[2].word = rand64();
data = rand64(); data.word = rand64();
av_des_init(&d, key, 192, 0); av_des_init(&d, key[0].byte, 192, 0);
av_des_crypt(&d, &ct, &data, 1, NULL, 0); av_des_crypt(&d, ct.byte, data.byte, 1, NULL, 0);
av_des_init(&d, key, 192, 1); av_des_init(&d, key[0].byte, 192, 1);
av_des_crypt(&d, &ct, &ct, 1, NULL, 1); av_des_crypt(&d, ct.byte, ct.byte, 1, NULL, 1);
if (ct != data) { if (ct.word != data.word) {
printf("Test 2 failed\n"); printf("Test 2 failed\n");
return 1; return 1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment