diff options
Diffstat (limited to 'apps/engine.c')
-rw-r--r-- | apps/engine.c | 243 |
1 files changed, 0 insertions, 243 deletions
diff --git a/apps/engine.c b/apps/engine.c deleted file mode 100644 index f11206f570..0000000000 --- a/apps/engine.c +++ /dev/null @@ -1,243 +0,0 @@ -/* apps/engine.c -*- mode: C; c-file-style: "eay" -*- */ -/* Written by Richard Levitte <richard@levitte.org> for the OpenSSL - * project 2000. - */ -/* ==================================================================== - * Copyright (c) 2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * 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 - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#ifdef NO_STDIO -#define APPS_WIN16 -#endif -#include "apps.h" -#include <openssl/err.h> -#include <openssl/engine.h> -#include <openssl/ssl.h> - -#undef PROG -#define PROG engine_main - -static char *engine_usage[]={ -"usage: engine opts [engine ...]\n", -" -v - verbose mode, a textual listing of the engines in OpenSSL\n", -" -c - for each engine, also list the capabilities\n", -" -t - for each engine, check that they are really available\n", -NULL -}; - -static void identity(void *ptr) - { - return; - } - -static int append_buf(char **buf, char *s, int *size, int step) - { - int l = strlen(s); - - if (*buf == NULL) - { - *size = step; - *buf = OPENSSL_malloc(*size); - if (*buf == NULL) - return 0; - **buf = '\0'; - } - - if (**buf != '\0') - l += 2; /* ", " */ - - if (strlen(*buf) + strlen(s) >= *size) - { - *size += step; - *buf = OPENSSL_realloc(*buf, *size); - } - - if (*buf == NULL) - return 0; - - if (**buf != '\0') - strcat(*buf, ", "); - strcat(*buf, s); - - return 1; - } - -int MAIN(int, char **); - -int MAIN(int argc, char **argv) - { - int ret=1,i; - char **pp; - int verbose=0, list_cap=0, test_avail=0; - ENGINE *e; - STACK *engines = sk_new_null(); - int badops=0; - BIO *bio_out=NULL; - - apps_startup(); - SSL_load_error_strings(); - - if (bio_err == NULL) - bio_err=BIO_new_fp(stderr,BIO_NOCLOSE); - bio_out=BIO_new_fp(stdout,BIO_NOCLOSE); -#ifdef VMS - { - BIO *tmpbio = BIO_new(BIO_f_linebuffer()); - bio_out = BIO_push(tmpbio, bio_out); - } -#endif - - argc--; - argv++; - while (argc >= 1) - { - if (strcmp(*argv,"-v") == 0) - verbose=1; - else if (strcmp(*argv,"-c") == 0) - list_cap=1; - else if (strcmp(*argv,"-t") == 0) - test_avail=1; - else if ((strncmp(*argv,"-h",2) == 0) || - (strcmp(*argv,"-?") == 0)) - { - badops=1; - break; - } - else - { - sk_push(engines,*argv); - } - argc--; - argv++; - } - - if (badops) - { - for (pp=engine_usage; (*pp != NULL); pp++) - BIO_printf(bio_err,"%s",*pp); - goto end; - } - - if (sk_num(engines) == 0) - { - for(e = ENGINE_get_first(); e != NULL; e = ENGINE_get_next(e)) - { - sk_push(engines,(char *)ENGINE_get_id(e)); - } - } - - for (i=0; i<sk_num(engines); i++) - { - const char *id = sk_value(engines,i); - if ((e = ENGINE_by_id(id)) != NULL) - { - const char *name = ENGINE_get_name(e); - BIO_printf(bio_out, "%s (%s)", name, id); - if (list_cap || test_avail) - BIO_printf(bio_out, ":"); - if (test_avail) - { - if (ENGINE_init(e)) - { - BIO_printf(bio_out, " available"); - ENGINE_finish(e); - } - else - { - BIO_printf(bio_out, " unavailable"); - ERR_clear_error(); - } - } - if (list_cap) - { - int cap_size = 256; - char *cap_buf = NULL; - - if (ENGINE_get_RSA(e) != NULL - && !append_buf(&cap_buf, "RSA", - &cap_size, 256)) - goto end; - if (ENGINE_get_DSA(e) != NULL - && !append_buf(&cap_buf, "DSA", - &cap_size, 256)) - goto end; - if (ENGINE_get_DH(e) != NULL - && !append_buf(&cap_buf, "DH", - &cap_size, 256)) - goto end; - if (ENGINE_get_RAND(e) != NULL - && !append_buf(&cap_buf, "RAND", - &cap_size, 256)) - goto end; - - if (*cap_buf != '\0') - BIO_printf(bio_out, " [%s]", cap_buf); - - OPENSSL_free(cap_buf); - } - BIO_printf(bio_out, "\n"); - } - else - ERR_print_errors(bio_err); - } - - ret=0; -end: - ERR_print_errors(bio_err); - sk_pop_free(engines, identity); - if (bio_out != NULL) BIO_free_all(bio_out); - EXIT(ret); - } |