X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fmd4%2Ftest%2Fapi.c;fp=ccan%2Fmd4%2Ftest%2Fapi.c;h=39810498bd91ac893336922a1bee1642439c303c;hb=a16a125d3c1fae99f7a261ed65fc7d3729c4d1e5;hp=0000000000000000000000000000000000000000;hpb=3404ba2a1b34e766628d5b9febf401011aa6753f;p=ccan diff --git a/ccan/md4/test/api.c b/ccan/md4/test/api.c new file mode 100644 index 00000000..39810498 --- /dev/null +++ b/ccan/md4/test/api.c @@ -0,0 +1,39 @@ +#include "md4/md4.h" +#include "md4/md4.c" +#include +#include + +static void check_md4(const char *string, const char *expected) +{ + struct md4_ctx ctx; + unsigned int i; + char result[33]; + + md4_init(&ctx); + md4_hash(&ctx, string, strlen(string)); + md4_finish(&ctx); + for (i = 0; i < sizeof(ctx.hash.bytes); i++) + sprintf(result+i*2, "%02x", ctx.hash.bytes[i]); + ok(strcmp(result, expected) == 0, + "Expected %s, got %s", expected, result); +} + +int main(int argc, char *argv[]) +{ + /* Tests taken from the RFC. */ + plan_tests(7); + + check_md4("", "31d6cfe0d16ae931b73c59d7e0c089c0"); + check_md4("a", "bde52cb31de33e46245e05fbdbd6fb24"); + check_md4("abc", "a448017aaf21d8525fc10ae87aa6729d"); + check_md4("message digest", "d9130a8164549fe818874806e1c7014b"); + check_md4("abcdefghijklmnopqrstuvwxyz", + "d79e1c308aa5bbcdeea8ed63df412da9"); + check_md4("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + "0123456789", + "043f8582f241db351ce627e153e7f0e4"); + check_md4("1234567890123456789012345678901234567890123456789" + "0123456789012345678901234567890", + "e33b4ddc9c38f2199c3e7b164fcc0536"); + exit(exit_status()); +}