X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=apps%2Fopenssl.c;h=26ea449dceeddbcc40448d44256c4176abb2dcfc;hb=368058d0a79d2e3b853746b09ca86679a86ac233;hp=4f2ba8cd1903a13953dce46e7060f8fae7494fdd;hpb=aa1477926769dcdf839f8fccd9db79847899aa86;p=openssl.git diff --git a/apps/openssl.c b/apps/openssl.c index 4f2ba8cd19..26ea449dce 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -170,44 +170,24 @@ static int apps_startup() #ifdef SIGPIPE signal(SIGPIPE, SIG_IGN); #endif - ERR_load_crypto_strings(); - ERR_load_SSL_strings(); - OPENSSL_load_builtin_modules(); - SSL_add_ssl_module(); -#ifndef OPENSSL_NO_ENGINE - ENGINE_load_builtin_engines(); -#endif - if (!app_load_modules(NULL)) { - ERR_print_errors(bio_err); - BIO_printf(bio_err, "Error loading default configuration\n"); + /* Set non-default library initialisation settings */ + if (!OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_ALL_BUILTIN + | OPENSSL_INIT_LOAD_CONFIG, NULL)) return 0; - } - OpenSSL_add_all_algorithms(); - OpenSSL_add_ssl_algorithms(); +#ifndef OPENSSL_NO_UI setup_ui_method(); - /*SSL_library_init();*/ +#endif + return 1; } static void apps_shutdown() { -#ifndef OPENSSL_NO_ENGINE - ENGINE_cleanup(); -#endif +#ifndef OPENSSL_NO_UI destroy_ui_method(); - CONF_modules_unload(1); -#ifndef OPENSSL_NO_COMP - COMP_zlib_cleanup(); - SSL_COMP_free_compression_methods(); -#endif - OBJ_cleanup(); - EVP_cleanup(); - CRYPTO_cleanup_all_ex_data(); - ERR_remove_thread_state(NULL); - RAND_cleanup(); - ERR_free_strings(); +#endif } static char *make_config_name() @@ -231,59 +211,6 @@ static char *make_config_name() return p; } -static void lock_dbg_cb(int mode, int type, const char *file, int line) -{ - static int modes[CRYPTO_NUM_LOCKS]; - const char *errstr = NULL; - int rw = mode & (CRYPTO_READ | CRYPTO_WRITE); - - if (rw != CRYPTO_READ && rw != CRYPTO_WRITE) { - errstr = "invalid mode"; - goto err; - } - - if (type < 0 || type >= CRYPTO_NUM_LOCKS) { - errstr = "type out of bounds"; - goto err; - } - - if (mode & CRYPTO_LOCK) { - if (modes[type]) { - errstr = "already locked"; - /* must not happen in a single-threaded program --> deadlock! */ - goto err; - } - modes[type] = rw; - } else if (mode & CRYPTO_UNLOCK) { - if (!modes[type]) { - errstr = "not locked"; - goto err; - } - - if (modes[type] != rw) { - errstr = (rw == CRYPTO_READ) ? - "CRYPTO_r_unlock on write lock" : - "CRYPTO_w_unlock on read lock"; - } - - modes[type] = 0; - } else { - errstr = "invalid mode"; - goto err; - } - - err: - if (errstr) { - BIO_printf(bio_err, - "openssl (lock_dbg_cb): %s (mode=%d, type=%d) at %s:%d\n", - errstr, mode, type, file, line); - } -} - -#if defined( OPENSSL_SYS_VMS) -extern char **copy_argv(int *argc, char **argv); -#endif - int main(int argc, char *argv[]) { FUNCTION f, *fp; @@ -302,9 +229,9 @@ int main(int argc, char *argv[]) default_config_file = make_config_name(); bio_in = dup_bio_in(FORMAT_TEXT); bio_out = dup_bio_out(FORMAT_TEXT); - bio_err = BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT); + bio_err = dup_bio_err(FORMAT_TEXT); -#if defined( OPENSSL_SYS_VMS) +#if defined(OPENSSL_SYS_VMS) && defined(__DECC) copied_argv = argv = copy_argv(&argc, argv); #endif @@ -312,12 +239,10 @@ int main(int argc, char *argv[]) if (p != NULL && strcmp(p, "on") == 0) CRYPTO_set_mem_debug(1); CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); - CRYPTO_set_locking_callback(lock_dbg_cb); if (getenv("OPENSSL_FIPS")) { #ifdef OPENSSL_FIPS if (!FIPS_mode_set(1)) { - ERR_load_crypto_strings(); ERR_print_errors(bio_err); return 1; } @@ -429,7 +354,8 @@ int main(int argc, char *argv[]) BIO_free_all(bio_out); apps_shutdown(); #ifndef OPENSSL_NO_CRYPTO_MDEBUG - CRYPTO_mem_leaks(bio_err); + if (CRYPTO_mem_leaks(bio_err) <= 0) + ret = 1; #endif BIO_free(bio_err); EXIT(ret); @@ -724,6 +650,9 @@ static void list_disabled(void) #ifdef OPENSSL_NO_BF BIO_puts(bio_out, "BF\n"); #endif +#ifndef OPENSSL_NO_BLAKE2 + BIO_puts(bio_out, "BLAKE2\n"); +#endif #ifdef OPENSSL_NO_CAMELLIA BIO_puts(bio_out, "CAMELLIA\n"); #endif @@ -754,6 +683,12 @@ static void list_disabled(void) #if defined(OPENSSL_NO_DTLS) BIO_puts(bio_out, "DTLS\n"); #endif +#if defined(OPENSSL_NO_DTLS1) + BIO_puts(bio_out, "DTLS1\n"); +#endif +#if defined(OPENSSL_NO_DTLS1_2) + BIO_puts(bio_out, "DTLS1_2\n"); +#endif #ifdef OPENSSL_NO_EC BIO_puts(bio_out, "EC\n"); #endif @@ -766,15 +701,15 @@ static void list_disabled(void) #ifdef OPENSSL_NO_GOST BIO_puts(bio_out, "GOST\n"); #endif +#ifdef OPENSSL_NO_HEARTBEATS + BIO_puts(bio_out, "HEARTBEATS\n"); +#endif #ifdef OPENSSL_NO_HMAC BIO_puts(bio_out, "HMAC\n"); #endif #ifdef OPENSSL_NO_IDEA BIO_puts(bio_out, "IDEA\n"); #endif -#ifdef OPENSSL_NO_JPAKE - BIO_puts(bio_out, "JPAKE\n"); -#endif #ifdef OPENSSL_NO_MD2 BIO_puts(bio_out, "MD2\n"); #endif @@ -835,9 +770,24 @@ static void list_disabled(void) #ifdef OPENSSL_NO_SRTP BIO_puts(bio_out, "SRTP\n"); #endif +#ifdef OPENSSL_NO_SSL + BIO_puts(bio_out, "SSL\n"); +#endif #ifdef OPENSSL_NO_SSL3 BIO_puts(bio_out, "SSL3\n"); #endif +#if defined(OPENSSL_NO_TLS) + BIO_puts(bio_out, "TLS\n"); +#endif +#ifdef OPENSSL_NO_TLS1 + BIO_puts(bio_out, "TLS1\n"); +#endif +#ifdef OPENSSL_NO_TLS1_1 + BIO_puts(bio_out, "TLS1_1\n"); +#endif +#ifdef OPENSSL_NO_TLS1_2 + BIO_puts(bio_out, "TLS1_2\n"); +#endif #ifdef OPENSSL_NO_WHIRLPOOL BIO_puts(bio_out, "WHIRLPOOL\n"); #endif