diff options
Diffstat (limited to 'regress')
-rw-r--r-- | regress/lib/libcrypto/engine/enginetest.c | 188 |
1 files changed, 84 insertions, 104 deletions
diff --git a/regress/lib/libcrypto/engine/enginetest.c b/regress/lib/libcrypto/engine/enginetest.c index 7a0b1a87519..0cb1d28d590 100644 --- a/regress/lib/libcrypto/engine/enginetest.c +++ b/regress/lib/libcrypto/engine/enginetest.c @@ -10,7 +10,7 @@ * are met: * * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in @@ -60,40 +60,35 @@ #include <string.h> #include <openssl/e_os2.h> -#ifdef OPENSSL_NO_ENGINE -int main(int argc, char *argv[]) -{ - printf("No ENGINE support\n"); - return(0); -} -#else #include <openssl/buffer.h> #include <openssl/crypto.h> #include <openssl/engine.h> #include <openssl/err.h> static void display_engine_list(void) - { +{ ENGINE *h; int loop; h = ENGINE_get_first(); loop = 0; printf("listing available engine types\n"); - while(h) - { + while (h) { printf("engine %i, id = \"%s\", name = \"%s\"\n", - loop++, ENGINE_get_id(h), ENGINE_get_name(h)); + loop++, ENGINE_get_id(h), ENGINE_get_name(h)); h = ENGINE_get_next(h); - } + } + printf("end of list\n"); - /* ENGINE_get_first() increases the struct_ref counter, so we - must call ENGINE_free() to decrease it again */ + /* + * ENGINE_get_first() increases the struct_ref counter, so we must call + * ENGINE_free() to decrease it again + */ ENGINE_free(h); - } +} int main(int argc, char *argv[]) - { +{ ENGINE *block[512]; char *id, *name; ENGINE *ptr; @@ -107,156 +102,142 @@ int main(int argc, char *argv[]) ERR_load_crypto_strings(); memset(block, 0, 512 * sizeof(ENGINE *)); - if(((new_h1 = ENGINE_new()) == NULL) || - !ENGINE_set_id(new_h1, "test_id0") || - !ENGINE_set_name(new_h1, "First test item") || - ((new_h2 = ENGINE_new()) == NULL) || - !ENGINE_set_id(new_h2, "test_id1") || - !ENGINE_set_name(new_h2, "Second test item") || - ((new_h3 = ENGINE_new()) == NULL) || - !ENGINE_set_id(new_h3, "test_id2") || - !ENGINE_set_name(new_h3, "Third test item") || - ((new_h4 = ENGINE_new()) == NULL) || - !ENGINE_set_id(new_h4, "test_id3") || - !ENGINE_set_name(new_h4, "Fourth test item")) - { + if (((new_h1 = ENGINE_new()) == NULL) || + !ENGINE_set_id(new_h1, "test_id0") || + !ENGINE_set_name(new_h1, "First test item") || + ((new_h2 = ENGINE_new()) == NULL) || + !ENGINE_set_id(new_h2, "test_id1") || + !ENGINE_set_name(new_h2, "Second test item") || + ((new_h3 = ENGINE_new()) == NULL) || + !ENGINE_set_id(new_h3, "test_id2") || + !ENGINE_set_name(new_h3, "Third test item") || + ((new_h4 = ENGINE_new()) == NULL) || + !ENGINE_set_id(new_h4, "test_id3") || + !ENGINE_set_name(new_h4, "Fourth test item")) { printf("Couldn't set up test ENGINE structures\n"); goto end; - } + } + printf("\nenginetest beginning\n\n"); display_engine_list(); - if(!ENGINE_add(new_h1)) - { + if (!ENGINE_add(new_h1)) { printf("Add failed!\n"); goto end; - } + } display_engine_list(); ptr = ENGINE_get_first(); - if(!ENGINE_remove(ptr)) - { + if (!ENGINE_remove(ptr)) { printf("Remove failed!\n"); goto end; - } + } if (ptr) ENGINE_free(ptr); display_engine_list(); - if(!ENGINE_add(new_h3) || !ENGINE_add(new_h2)) - { + if (!ENGINE_add(new_h3) || !ENGINE_add(new_h2)) { printf("Add failed!\n"); goto end; - } + } display_engine_list(); - if(!ENGINE_remove(new_h2)) - { + if (!ENGINE_remove(new_h2)) { printf("Remove failed!\n"); goto end; - } + } display_engine_list(); - if(!ENGINE_add(new_h4)) - { + if (!ENGINE_add(new_h4)) { printf("Add failed!\n"); goto end; - } + } display_engine_list(); - if(ENGINE_add(new_h3)) - { + if (ENGINE_add(new_h3)) { printf("Add *should* have failed but didn't!\n"); goto end; - } - else + } else printf("Add that should fail did.\n"); ERR_clear_error(); - if(ENGINE_remove(new_h2)) - { + if (ENGINE_remove(new_h2)) { printf("Remove *should* have failed but didn't!\n"); goto end; - } - else + } else printf("Remove that should fail did.\n"); ERR_clear_error(); - if(!ENGINE_remove(new_h3)) - { + if (!ENGINE_remove(new_h3)) { printf("Remove failed!\n"); goto end; - } + } display_engine_list(); - if(!ENGINE_remove(new_h4)) - { + if (!ENGINE_remove(new_h4)) { printf("Remove failed!\n"); goto end; - } + } display_engine_list(); - /* Depending on whether there's any hardware support compiled - * in, this remove may be destined to fail. */ + /* + * Depending on whether there's any hardware support compiled + * in, this remove may be destined to fail. + */ ptr = ENGINE_get_first(); - if(ptr) - if(!ENGINE_remove(ptr)) + if (ptr) + if (!ENGINE_remove(ptr)) printf("Remove failed!i - probably no hardware " "support present.\n"); if (ptr) ENGINE_free(ptr); display_engine_list(); - if(!ENGINE_add(new_h1) || !ENGINE_remove(new_h1)) - { + + if (!ENGINE_add(new_h1) || !ENGINE_remove(new_h1)) { printf("Couldn't add and remove to an empty list!\n"); goto end; - } - else + } else printf("Successfully added and removed to an empty list!\n"); + printf("About to beef up the engine-type list\n"); - for(loop = 0; loop < 512; loop++) - { - asprintf(&id, "id%i", loop); - asprintf(&name, "Fake engine type %i", loop); - if(((block[loop] = ENGINE_new()) == NULL) || - !id || !ENGINE_set_id(block[loop], id) || - !name || !ENGINE_set_name(block[loop], name)) - { - printf("Couldn't create block of ENGINE structures.\n" - "I'll probably also core-dump now, damn.\n"); + for (loop = 0; loop < 512; loop++) { + if (asprintf(&id, "id%i", loop) == -1) + goto end; + if (asprintf(&name, "Fake engine type %i", loop) == -1) + goto end; + + if (((block[loop] = ENGINE_new()) == NULL) || + !id || !ENGINE_set_id(block[loop], id) || + !name || !ENGINE_set_name(block[loop], name)) { + printf("Couldn't create block of ENGINE structures.\n"); goto end; - } } - for(loop = 0; loop < 512; loop++) - { - if(!ENGINE_add(block[loop])) - { + } + + for (loop = 0; loop < 512; loop++) { + if (!ENGINE_add(block[loop])) { printf("\nAdding stopped at %i, (%s,%s)\n", loop, ENGINE_get_id(block[loop]), ENGINE_get_name(block[loop])); goto cleanup_loop; - } - else + } else printf("."); fflush(stdout); - } + } cleanup_loop: printf("\nAbout to empty the engine-type list\n"); - while((ptr = ENGINE_get_first()) != NULL) - { - if(!ENGINE_remove(ptr)) - { + while ((ptr = ENGINE_get_first()) != NULL) { + if (!ENGINE_remove(ptr)) { printf("\nRemove failed!\n"); goto end; - } + } ENGINE_free(ptr); printf("."); fflush(stdout); - } - for(loop = 0; loop < 512; loop++) - { + } + for (loop = 0; loop < 512; loop++) { free((void *)ENGINE_get_id(block[loop])); free((void *)ENGINE_get_name(block[loop])); - } + } printf("\nTests completed happily\n"); to_return = 0; end: - if(to_return) + if (to_return) ERR_print_errors_fp(stderr); - if(new_h1) ENGINE_free(new_h1); - if(new_h2) ENGINE_free(new_h2); - if(new_h3) ENGINE_free(new_h3); - if(new_h4) ENGINE_free(new_h4); - for(loop = 0; loop < 512; loop++) - if(block[loop]) + if (new_h1) ENGINE_free(new_h1); + if (new_h2) ENGINE_free(new_h2); + if (new_h3) ENGINE_free(new_h3); + if (new_h4) ENGINE_free(new_h4); + for (loop = 0; loop < 512; loop++) + if (block[loop]) ENGINE_free(block[loop]); ENGINE_cleanup(); CRYPTO_cleanup_all_ex_data(); @@ -264,5 +245,4 @@ end: ERR_remove_thread_state(NULL); CRYPTO_mem_leaks_fp(stderr); return to_return; - } -#endif +} |