diff options
author | Richard Levitte <levitte@openssl.org> | 2016-10-27 22:18:50 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2016-11-03 13:13:31 +0100 |
commit | 97f1e97114822a04a7720b817a789cc9d2553e2b (patch) | |
tree | cd6734f890fd3cbf7006236bca0e44ec99da7145 /test | |
parent | f12d6273a508b9bc8eaee4d87918fe0401d747f2 (diff) |
Convert mdc2 test print to internal test
Reviewed-by: Emilia Käsper <emilia@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1789)
Diffstat (limited to 'test')
-rw-r--r-- | test/build.info | 7 | ||||
-rw-r--r-- | test/mdc2_internal_test.c | 95 |
2 files changed, 102 insertions, 0 deletions
diff --git a/test/build.info b/test/build.info index 4f89ce8091..46403ea08b 100644 --- a/test/build.info +++ b/test/build.info @@ -315,6 +315,9 @@ IF[{- !$disabled{tests} -}] # are needed, since all symbols are available anyway, regardless of what's # listed in util/*.num. PROGRAMS_NO_INST=asn1_internal_test modes_internal_test x509_internal_test + IF[{- !$disabled{mdc2} -}] + PROGRAMS_NO_INST=mdc2_internal_test + ENDIF IF[{- !$disabled{poly1305} -}] PROGRAMS_NO_INST=poly1305_internal_test ENDIF @@ -371,6 +374,10 @@ IF[{- !$disabled{tests} -}] ENDIF INCLUDE[x509_internal_test]=.. ../include DEPEND[x509_internal_test]=../libcrypto + + SOURCE[mdc2_internal_test]=mdc2_internal_test.c testutil.c + INCLUDE[mdc2_internal_test]=.. ../include + DEPEND[mdc2_internal_test]=../libcrypto ENDIF {- diff --git a/test/mdc2_internal_test.c b/test/mdc2_internal_test.c new file mode 100644 index 0000000000..7f6a95cf4a --- /dev/null +++ b/test/mdc2_internal_test.c @@ -0,0 +1,95 @@ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +/* Internal tests for the mdc2 module */ + +#include <stdio.h> +#include <string.h> + +#include <openssl/mdc2.h> +#include "testutil.h" +#include "e_os.h" + +typedef struct { + const char *input; + const unsigned char expected[MDC2_DIGEST_LENGTH]; +} TESTDATA; + +typedef struct { + const char *case_name; + int num; + const TESTDATA *data; +} SIMPLE_FIXTURE; + +/********************************************************************** + * + * Test of mdc2 internal functions + * + ***/ + +static SIMPLE_FIXTURE setup_mdc2(const char *const test_case_name) +{ + SIMPLE_FIXTURE fixture; + fixture.case_name = test_case_name; + return fixture; +} + +static int execute_mdc2(SIMPLE_FIXTURE fixture) +{ + unsigned char md[MDC2_DIGEST_LENGTH]; + MDC2_CTX c; + + MDC2_Init(&c); + MDC2_Update(&c, (const unsigned char *)fixture.data->input, + strlen(fixture.data->input)); + MDC2_Final(&(md[0]), &c); + + if (memcmp(fixture.data->expected, md, MDC2_DIGEST_LENGTH)) { + fprintf(stderr, "mdc2 test %d: unexpected output\n", fixture.num); + return 0; + } + + return 1; +} + +static void teardown_mdc2(SIMPLE_FIXTURE fixture) +{ + ERR_print_errors_fp(stderr); +} + +/********************************************************************** + * + * Test driver + * + ***/ + +static TESTDATA tests[] = { + { + "Now is the time for all ", + { + 0x42, 0xE5, 0x0C, 0xD2, 0x24, 0xBA, 0xCE, 0xBA, + 0x76, 0x0B, 0xDD, 0x2B, 0xD4, 0x09, 0x28, 0x1A + } + } +}; + +static int drive_tests(int idx) +{ + SETUP_TEST_FIXTURE(SIMPLE_FIXTURE, setup_mdc2); + fixture.num = idx; + fixture.data = &tests[idx]; + EXECUTE_TEST(execute_mdc2, teardown_mdc2); +} + +int main(int argc, char **argv) +{ + ADD_ALL_TESTS(drive_tests, OSSL_NELEM(tests)); + + return run_tests(argv[0]); +} |