diff options
author | Martin Storsjö <martin@martin.st> | 2012-10-01 23:38:50 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-10-03 16:05:05 +0300 |
commit | 0cc9a64b92939adfe4408003ff119607001a88e0 (patch) | |
tree | 3fb282822d9251d090553315242564b80a1e2056 /libavutil | |
parent | 51a15ed7406f73aed0986de26e16578e55ce0da3 (diff) | |
download | ffmpeg-0cc9a64b92939adfe4408003ff119607001a88e0.tar.gz |
blowfish: Factorize testing into a separate function
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/blowfish.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/libavutil/blowfish.c b/libavutil/blowfish.c index 5df3dfcf1e..35c546a898 100644 --- a/libavutil/blowfish.c +++ b/libavutil/blowfish.c @@ -522,6 +522,25 @@ static const uint8_t ciphertext[8] = { 0x32, 0x4E, 0xD0, 0xFE, 0xF4, 0x13, 0xA2, 0x03 }; +#undef exit +static void test_blowfish(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src, + const uint8_t *ref, int len, uint8_t *iv, int dir, + const char *test) +{ + av_blowfish_crypt(ctx, dst, src, len, iv, dir); + if (memcmp(dst, ref, 8*len)) { + int i; + printf("%s failed\ngot ", test); + for (i = 0; i < 8*len; i++) + printf("%02x ", dst[i]); + printf("\nexpected "); + for (i = 0; i < 8*len; i++) + printf("%02x ", ref[i]); + printf("\n"); + exit(1); + } +} + int main(void) { AVBlowfish ctx; @@ -532,17 +551,8 @@ int main(void) av_blowfish_init(&ctx, "abcdefghijklmnopqrstuvwxyz", 26); - av_blowfish_crypt(&ctx, tmp, plaintext, 1, NULL, 0); - if (memcmp(tmp, ciphertext, 8)) { - printf("Test encryption failed.\n"); - return 1; - } - - av_blowfish_crypt(&ctx, tmp, ciphertext, 1, NULL, 1); - if (memcmp(tmp, plaintext, 8)) { - printf("Test decryption failed.\n"); - return 1; - } + test_blowfish(&ctx, tmp, plaintext, ciphertext, 1, NULL, 0, "encryption"); + test_blowfish(&ctx, tmp, ciphertext, plaintext, 1, NULL, 1, "decryption"); memcpy(tmptext_l, plaintext_l, sizeof(*plaintext_l) * NUM_VARIABLE_KEY_TESTS); memcpy(tmptext_r, plaintext_r, sizeof(*plaintext_r) * NUM_VARIABLE_KEY_TESTS); |