size_t yB_len; const unsigned char *Z; size_t Z_len; } rfc5114_td; # define make_rfc5114_td(pre) { \ DH_get_##pre, \ dhtest_##pre##_xA, sizeof(dhtest_##pre##_xA), \ dhtest_##pre##_yA, sizeof(dhtest_##pre##_yA), \ dhtest_##pre##_xB, sizeof(dhtest_##pre##_xB), \ dhtest_##pre##_yB, sizeof(dhtest_##pre##_yB), \ dhtest_##pre##_Z, sizeof(dhtest_##pre##_Z) \ } static const rfc5114_td rfctd[] = { make_rfc5114_td(1024_160), make_rfc5114_td(2048_224), make_rfc5114_td(2048_256) }; static int run_rfc5114_tests(void) { int i; for (i = 0; i < (int)(sizeof(rfctd) / sizeof(rfc5114_td)); i++) { DH *dhA, *dhB; unsigned char *Z1 = NULL, *Z2 = NULL; const rfc5114_td *td = rfctd + i; /* Set up DH structures setting key components */ dhA = td->get_param(); dhB = td->get_param(); if (!dhA || !dhB)
size_t xB_len; const unsigned char *yB; size_t yB_len; const unsigned char *Z; size_t Z_len; } rfc5114_td; #define make_rfc5114_td(pre) \ { \ DH_get_##pre, dhtest_##pre##_xA, sizeof(dhtest_##pre##_xA), \ dhtest_##pre##_yA, sizeof(dhtest_##pre##_yA), dhtest_##pre##_xB, \ sizeof(dhtest_##pre##_xB), dhtest_##pre##_yB, \ sizeof(dhtest_##pre##_yB), dhtest_##pre##_Z, sizeof(dhtest_##pre##_Z) \ } static const rfc5114_td rfctd[] = {make_rfc5114_td(1024_160), make_rfc5114_td(2048_224), make_rfc5114_td(2048_256)}; static int run_rfc5114_tests(void) { int i; DH *dhA = NULL, *dhB = NULL; unsigned char *Z1 = NULL, *Z2 = NULL; for (i = 0; i < (int)(sizeof(rfctd) / sizeof(rfc5114_td)); i++) { const rfc5114_td *td = rfctd + i; /* Set up DH structures setting key components */ dhA = td->get_param(NULL); dhB = td->get_param(NULL); if (!dhA || !dhB) { goto bad_err;