diff options
author | Clément Bœsch <u@pkh.me> | 2017-05-19 11:47:36 +0200 |
---|---|---|
committer | Clément Bœsch <u@pkh.me> | 2017-05-19 11:50:28 +0200 |
commit | 6a3538bb233e5bdaf6448b1a897e5459fcc0c44f (patch) | |
tree | 2857e1eff10ce89e43ba5bdc5bdc47b0386b955a /libavutil/tests | |
parent | 5d986609ba47b405018b1de78413a76b58de1c8b (diff) | |
parent | b83aea73404f6f9314e72fe5d6238deaffa12b2c (diff) | |
download | ffmpeg-6a3538bb233e5bdaf6448b1a897e5459fcc0c44f.tar.gz |
Merge commit 'b83aea73404f6f9314e72fe5d6238deaffa12b2c'
* commit 'b83aea73404f6f9314e72fe5d6238deaffa12b2c':
des-test: Pass the proper types to av_des_*() functions
See 183c3fa48acaf4561d5269ab9a766d13ae70140c
Merged-by: Clément Bœsch <u@pkh.me>
Diffstat (limited to 'libavutil/tests')
-rw-r--r-- | libavutil/tests/des.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/libavutil/tests/des.c b/libavutil/tests/des.c index ed04fad519..309be29473 100644 --- a/libavutil/tests/des.c +++ b/libavutil/tests/des.c @@ -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) { AVDES d; int i; - uint64_t key[3]; - uint64_t data; - uint64_t ct; + union word_byte key[3], data, ct; uint64_t roundkeys[16]; srand(av_gettime()); - key[0] = AV_RB64(test_key); - data = AV_RB64(plain); - gen_roundkeys(roundkeys, key[0]); - if (des_encdec(data, roundkeys, 0) != AV_RB64(crypt)) { + key[0].word = AV_RB64(test_key); + data.word = AV_RB64(plain); + gen_roundkeys(roundkeys, key[0].word); + if (des_encdec(data.word, roundkeys, 0) != AV_RB64(crypt)) { printf("Test 1 failed\n"); return 1; } @@ -94,15 +97,15 @@ int main(void) return 1; } for (i = 0; i < 1000; i++) { - key[0] = rand64(); - key[1] = rand64(); - key[2] = rand64(); - data = rand64(); - av_des_init(&d, (uint8_t *) key, 192, 0); - av_des_crypt(&d, (uint8_t *) &ct, (uint8_t *) &data, 1, NULL, 0); - av_des_init(&d, (uint8_t *) key, 192, 1); - av_des_crypt(&d, (uint8_t *) &ct, (uint8_t *) &ct, 1, NULL, 1); - if (ct != data) { + key[0].word = rand64(); + key[1].word = rand64(); + key[2].word = rand64(); + data.word = rand64(); + av_des_init(&d, key[0].byte, 192, 0); + av_des_crypt(&d, ct.byte, data.byte, 1, NULL, 0); + av_des_init(&d, key[0].byte, 192, 1); + av_des_crypt(&d, ct.byte, ct.byte, 1, NULL, 1); + if (ct.word != data.word) { printf("Test 2 failed\n"); return 1; } |