diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/asn1parse.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/asn1parse.c index 4f882396..67cbb246 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/asn1parse.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/asn1parse.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -77,6 +79,10 @@ int asn1parse_main(int argc, char **argv) OPTION_CHOICE o; const ASN1_ITEM *it = NULL; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, asn1parse_options); if ((osk = sk_OPENSSL_STRING_new_null()) == NULL) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ca.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ca.c index 6d1d1c0a..c9627554 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ca.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ca.c @@ -24,6 +24,8 @@ #include #include #include +#include +#include "app_trace.h" #ifndef W_OK # ifdef OPENSSL_SYS_VMS @@ -307,6 +309,10 @@ int ca_main(int argc, char **argv) REVINFO_TYPE rev_type = REV_NONE; X509_REVOKED *r = NULL; OPTION_CHOICE o; + + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif prog = opt_init(argc, argv, ca_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/crl.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/crl.c index afb59178..055c681a 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/crl.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/crl.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -98,6 +100,10 @@ int crl_main(int argc, char **argv) int hash_old = 0; #endif + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("digest"); prog = opt_init(argc, argv, crl_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/crl2pkcs7.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/crl2pkcs7.c index f6613939..ccbdedd0 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/crl2pkcs7.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/crl2pkcs7.c @@ -18,6 +18,8 @@ #include #include #include +#include +#include "app_trace.h" static int add_certs_from_file(STACK_OF(X509) *stack, char *certfile); @@ -60,6 +62,10 @@ int crl2pkcs7_main(int argc, char **argv) 0; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, crl2pkcs7_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dgst.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dgst.c index a090b291..73f5d630 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dgst.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dgst.c @@ -20,6 +20,8 @@ #include #include #include +#include +#include "app_trace.h" #undef OSSL_DGST_BUFSIZE #define OSSL_DGST_BUFSIZE 1024*8 @@ -117,6 +119,10 @@ int dgst_main(int argc, char **argv) EVP_MD_CTX *signctx = NULL; int oneshot_sign = 0; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + reset_unknown(); buf = app_malloc(OSSL_DGST_BUFSIZE, "I/O buffer"); diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dhparam.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dhparam.c index 600b7ed2..988293f7 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dhparam.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dhparam.c @@ -27,6 +27,8 @@ #include #include #include +#include +#include "app_trace.h" #define DEFBITS 2048 @@ -91,6 +93,10 @@ int dhparam_main(int argc, char **argv) int informat = FORMAT_PEM, outformat = FORMAT_PEM, check = 0, noout = 0; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, dhparam_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dsa.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dsa.c index 9ba8c252..bb82ccfa 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dsa.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dsa.c @@ -25,6 +25,8 @@ #include #include #include +#include +#include "app_trace.h" #ifndef OPENSSL_NO_RC4 # define DEFAULT_PVK_ENCR_STRENGTH 2 @@ -92,6 +94,10 @@ int dsa_main(int argc, char **argv) int selection = 0; OSSL_ENCODER_CTX *ectx = NULL; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("cipher"); prog = opt_init(argc, argv, dsa_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dsaparam.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dsaparam.c index 99fc3ee7..cbaa1a00 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dsaparam.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/dsaparam.c @@ -21,6 +21,8 @@ #include #include #include +#include +#include "app_trace.h" static int verbose = 0; @@ -74,6 +76,10 @@ int dsaparam_main(int argc, char **argv) char *infile = NULL, *outfile = NULL, *prog; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, dsaparam_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ec.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ec.c index 677876cc..5c9b5d15 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ec.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ec.c @@ -16,6 +16,8 @@ #include #include #include +#include +#include "app_trace.h" #include "apps.h" #include "progs.h" @@ -80,6 +82,10 @@ int ec_main(int argc, char **argv) char *point_format = NULL; int no_public = 0; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("cipher"); prog = opt_init(argc, argv, ec_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ecparam.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ecparam.c index f0879dfb..ea2b9be3 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ecparam.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ecparam.c @@ -20,6 +20,8 @@ #include "apps.h" #include "progs.h" #include "ec_common.h" +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -107,6 +109,10 @@ int ecparam_main(int argc, char **argv) int no_seed = 0, check = 0, check_named = 0, text = 0, genkey = 0; int list_curves = 0; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, ecparam_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/enc.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/enc.c index 887159f4..0824b2f8 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/enc.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/enc.c @@ -20,6 +20,8 @@ #include #include #include +#include +#include "app_trace.h" #ifndef OPENSSL_NO_COMP # include #endif @@ -158,7 +160,11 @@ int enc_main(int argc, char **argv) const char *skeymgmt = NULL; EVP_SKEY *skey = NULL; EVP_SKEYMGMT *mgmt = NULL; - + + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + reset_unknown(); /* first check the command name */ diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/engine.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/engine.c index edd78751..9c24f745 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/engine.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/engine.c @@ -21,6 +21,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -308,6 +310,10 @@ int engine_main(int argc, char **argv) char *prog; char *argv1; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + out = dup_bio_out(FORMAT_TEXT); if (engines == NULL || pre_cmds == NULL || post_cmds == NULL) goto end; diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/gendsa.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/gendsa.c index a655c6ea..c060490e 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/gendsa.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/gendsa.c @@ -21,6 +21,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -63,6 +65,10 @@ int gendsa_main(int argc, char **argv) OPTION_CHOICE o; int ret = 1, private = 0, verbose = 0, nbits; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("cipher"); prog = opt_init(argc, argv, gendsa_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/genpkey.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/genpkey.c index eaca1e0d..13e2c13b 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/genpkey.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/genpkey.c @@ -14,6 +14,8 @@ #include #include #include +#include +#include "app_trace.h" static int verbose = 1; @@ -120,6 +122,10 @@ int genpkey_main(int argc, char **argv) OSSL_LIB_CTX *libctx = app_get0_libctx(); STACK_OF(OPENSSL_STRING) *keyopt = NULL; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("cipher"); prog = opt_init(argc, argv, genpkey_options); keyopt = sk_OPENSSL_STRING_new_null(); diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/genrsa.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/genrsa.c index 54d025e2..13a6195c 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/genrsa.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/genrsa.c @@ -23,6 +23,8 @@ #include #include #include +#include +#include "app_trace.h" #define DEFBITS 2048 #define DEFPRIMES 2 @@ -88,7 +90,10 @@ int genrsa_main(int argc, char **argv) char *prog, *hexe, *dece, *ciphername = NULL; OPTION_CHOICE o; int traditional = 0; - + + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif if (bn == NULL || cb == NULL) goto end; diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/include/app_trace.h b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/include/app_trace.h new file mode 100644 index 00000000..d744e71c --- /dev/null +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/include/app_trace.h @@ -0,0 +1,40 @@ +/* + * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ + +#ifndef OPENSSL_APPS_TRACE_H +# define OPENSSL_APPS_TRACE_H +# pragma once + +# include + +# include +# include + +# ifdef __cplusplus +extern "C" { +# endif + + +#ifndef OPENSSL_NO_TRACE +typedef struct tracedata_st { + BIO *bio; + unsigned int ingroup:1; +} tracedata; + + void setup_trace(const char *str); + + +#endif /* OPENSSL_NO_TRACE */ + + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/lib/app_trace.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/lib/app_trace.c new file mode 100644 index 00000000..e7a2875f --- /dev/null +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/lib/app_trace.c @@ -0,0 +1,146 @@ +/* + * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the Apache License 2.0 (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 + */ +#include "app_trace.h" +#include "apps.h" +#include + +#ifndef OPENSSL_NO_TRACE + +BIO *trace_bio_err = NULL; + + static size_t internal_trace_cb(const char *buf, size_t cnt, + int category, int cmd, void *vdata) +{ + int ret = 0; + tracedata *trace_data = vdata; + char buffer[256], *hex; + CRYPTO_THREAD_ID tid; + + switch (cmd) { + case OSSL_TRACE_CTRL_BEGIN: + if (trace_data->ingroup) { + BIO_printf(trace_bio_err, "ERROR: tracing already started\n"); + return 0; + } + trace_data->ingroup = 1; + + tid = CRYPTO_THREAD_get_current_id(); + hex = OPENSSL_buf2hexstr((const unsigned char *)&tid, sizeof(tid)); + BIO_snprintf(buffer, sizeof(buffer), "TRACE[%s]:%s: ", + hex == NULL ? "" : hex, + OSSL_trace_get_category_name(category)); + OPENSSL_free(hex); + BIO_set_prefix(trace_data->bio, buffer); + break; + case OSSL_TRACE_CTRL_WRITE: + if (!trace_data->ingroup) { + BIO_printf(trace_bio_err, "ERROR: writing when tracing not started\n"); + return 0; + } + + ret = BIO_write(trace_data->bio, buf, cnt); + break; + case OSSL_TRACE_CTRL_END: + if (!trace_data->ingroup) { + BIO_printf(trace_bio_err, "ERROR: finishing when tracing not started\n"); + return 0; + } + trace_data->ingroup = 0; + + BIO_set_prefix(trace_data->bio, NULL); + + break; + } + + return ret < 0 ? 0 : ret; +} + +DEFINE_STACK_OF(tracedata) +static STACK_OF(tracedata) *trace_data_stack; + + void tracedata_free(tracedata *data) +{ + BIO_free_all(data->bio); + OPENSSL_free(data); +} + + static void cleanup_trace(void) +{ + sk_tracedata_pop_free(trace_data_stack, tracedata_free); +} + + static void setup_trace_category(int category) +{ + BIO *channel; + tracedata *trace_data; + BIO *bio = NULL; + + if (OSSL_trace_enabled(category)) + return; + + bio = BIO_new(BIO_f_prefix()); + channel = BIO_push(bio, dup_bio_err(FORMAT_TEXT)); + trace_data = OPENSSL_zalloc(sizeof(*trace_data)); + + if (trace_data == NULL + || bio == NULL + || (trace_data->bio = channel) == NULL + || OSSL_trace_set_callback(category, internal_trace_cb, + trace_data) == 0 + || sk_tracedata_push(trace_data_stack, trace_data) == 0) { + + fprintf(stderr, + "warning: unable to setup trace callback for category '%s'.\n", + OSSL_trace_get_category_name(category)); + + OSSL_trace_set_callback(category, NULL, NULL); + BIO_free_all(channel); + } +} + + void setup_trace(const char *str) +{ + char *val; + OSSL_trace_unset_all_callbacks(); + + /* + * We add this handler as early as possible to ensure it's executed + * as late as possible, i.e. after the TRACE code has done its cleanup + * (which happens last in OPENSSL_cleanup). + */ + atexit(cleanup_trace); + + trace_data_stack = sk_tracedata_new_null(); + val = OPENSSL_strdup(str); + + if (val != NULL) { + char *valp = val; + char *item; + + for (valp = val; (item = strtok(valp, ",")) != NULL; valp = NULL) { + int category = OSSL_trace_get_category_num(item); + + if (category == OSSL_TRACE_CATEGORY_ALL) { + while (++category < OSSL_TRACE_CATEGORY_NUM) + setup_trace_category(category); + break; + } else if (category > 0) { + setup_trace_category(category); + } else { + fprintf(stderr, + "warning: unknown trace category: '%s'.\n", item); + } + } + } + + OPENSSL_free(val); +} +#endif /* OPENSSL_NO_TRACE */ + + diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/lib/build.info b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/lib/build.info index 7f62fb52..12ef37f7 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/lib/build.info +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/lib/build.info @@ -8,7 +8,7 @@ IF[{- $config{target} =~ /^vms-/ -}] ENDIF # Source for libapps -$LIBAPPSSRC=apps.c apps_ui.c log.c opt.c fmt.c s_cb.c s_socket.c app_rand.c \ +$LIBAPPSSRC=apps.c app_trace.c apps_ui.c log.c opt.c fmt.c s_cb.c s_socket.c app_rand.c \ columns.c app_params.c names.c app_provider.c app_x509.c http_server.c \ engine_lib.c engine_loader.c app_libctx.c apps_opt_printf.c diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/nseq.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/nseq.c index e66b58d9..516a558e 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/nseq.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/nseq.c @@ -13,6 +13,8 @@ #include "progs.h" #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -44,6 +46,10 @@ int nseq_main(int argc, char **argv) int toseq = 0, ret = 1, i; char *infile = NULL, *outfile = NULL, *prog; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, nseq_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ocsp.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ocsp.c index 79b76a2c..51318046 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ocsp.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/ocsp.c @@ -32,6 +32,8 @@ #include #include #include +#include +#include "app_trace.h" #if defined(OPENSSL_SYS_VXWORKS) /* not supported */ @@ -252,6 +254,10 @@ int ocsp_main(int argc, char **argv) unsigned long sign_flags = 0, verify_flags = 0, rflags = 0; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + if ((reqnames = sk_OPENSSL_STRING_new_null()) == NULL || (ids = sk_OCSP_CERTID_new_null()) == NULL || (vpm = X509_VERIFY_PARAM_new()) == NULL) diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/passwd.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/passwd.c index 8b233538..c8832f45 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/passwd.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/passwd.c @@ -21,6 +21,8 @@ #endif #include #include +#include +#include "app_trace.h" static const unsigned char cov_2char[64] = { /* from crypto/des/fcrypt.c */ @@ -107,6 +109,10 @@ int passwd_main(int argc, char **argv) size_t pw_maxlen = 256; /* arbitrary limit, should be enough for most * passwords */ + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, passwd_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs12.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs12.c index 9964faf2..007b18fb 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs12.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs12.c @@ -22,6 +22,8 @@ #include #include #include +#include +#include "app_trace.h" #define NOKEYS 0x1 #define NOCERTS 0x2 @@ -191,6 +193,10 @@ int pkcs12_main(int argc, char **argv) EVP_CIPHER *enc = (EVP_CIPHER *)default_enc; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("cipher"); prog = opt_init(argc, argv, pkcs12_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs7.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs7.c index 57cb517b..d84740a3 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs7.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs7.c @@ -19,6 +19,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -64,6 +66,10 @@ int pkcs7_main(int argc, char **argv) OPTION_CHOICE o; OSSL_LIB_CTX *libctx = app_get0_libctx(); + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, pkcs7_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs8.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs8.c index 22978afb..79411f46 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs8.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkcs8.c @@ -16,6 +16,8 @@ #include #include #include +#include +#include "app_trace.h" #define STR(a) XSTR(a) #define XSTR(a) #a @@ -95,6 +97,10 @@ int pkcs8_main(int argc, char **argv) #endif int saltlen = 0; /* A value of zero chooses the default */ + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, pkcs8_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkey.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkey.c index ab0c95c2..51961c96 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkey.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkey.c @@ -16,6 +16,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -83,6 +85,10 @@ int pkey_main(int argc, char **argv) char *point_format = NULL; #endif + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("cipher"); prog = opt_init(argc, argv, pkey_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkeyparam.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkeyparam.c index fd8de0e0..ff5e6626 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkeyparam.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkeyparam.c @@ -15,6 +15,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -53,6 +55,10 @@ int pkeyparam_main(int argc, char **argv) OPTION_CHOICE o; char *infile = NULL, *outfile = NULL, *prog; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, pkeyparam_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkeyutl.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkeyutl.c index 2d3fd631..31b72577 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkeyutl.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/pkeyutl.c @@ -14,6 +14,8 @@ #include #include #include +#include +#include "app_trace.h" #define KEY_NONE 0 #define KEY_PRIVKEY 1 @@ -149,6 +151,11 @@ int pkeyutl_main(int argc, char **argv) EVP_MD_CTX *mctx = NULL; EVP_MD *md = NULL; int filesize = -1; + + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + OSSL_LIB_CTX *libctx = app_get0_libctx(); prog = opt_init(argc, argv, pkeyutl_options); diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rand.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rand.c index b123a151..657115a8 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rand.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rand.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -58,6 +60,10 @@ int rand_main(int argc, char **argv) uint64_t scaled_num = 0; uint8_t *buf = NULL; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, rand_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/req.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/req.c index c5627ffd..bfc40448 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/req.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/req.c @@ -27,6 +27,8 @@ #include #include #include +#include +#include "app_trace.h" #ifndef OPENSSL_NO_DSA # include #endif @@ -275,6 +277,10 @@ int req_main(int argc, char **argv) long newkey_len = -1; unsigned long chtype = MBSTRING_ASC, reqflag = 0; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + cipher = (EVP_CIPHER *)EVP_aes_256_cbc(); opt_set_unknown_name("digest"); diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rsa.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rsa.c index 9a4d16cb..96036284 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rsa.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rsa.c @@ -26,6 +26,8 @@ #include #include #include +#include +#include "app_trace.h" /* * This include is to get OSSL_KEYMGMT_SELECT_*, which feels a bit @@ -139,6 +141,10 @@ int rsa_main(int argc, char **argv) int selection = 0; OSSL_ENCODER_CTX *ectx = NULL; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("cipher"); prog = opt_init(argc, argv, rsa_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rsautl.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rsautl.c index 3ee8224f..a32d40db 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rsautl.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/rsautl.c @@ -15,6 +15,8 @@ #include #include #include +#include +#include "app_trace.h" #define RSA_SIGN 1 #define RSA_VERIFY 2 @@ -85,6 +87,10 @@ int rsautl_main(int argc, char **argv) int hexdump = 0, asn1parse = 0, need_priv = 0, rev = 0; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, rsautl_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/s_client.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/s_client.c index ded05cd2..9ad8b0d1 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/s_client.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/s_client.c @@ -48,6 +48,8 @@ typedef unsigned int u_int; #include "s_apps.h" #include "timeouts.h" #include "internal/sockets.h" +#include +#include "app_trace.h" #if defined(__has_feature) # if __has_feature(memory_sanitizer) @@ -961,6 +963,10 @@ int s_client_main(int argc, char **argv) BIO_ADDR *peer_addr = NULL; struct user_data_st user_data; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + FD_ZERO(&readfds); FD_ZERO(&writefds); /* Known false-positive of MemorySanitizer. */ diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/s_server.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/s_server.c index 4c1f925f..dc545686 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/s_server.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/s_server.c @@ -57,6 +57,8 @@ typedef unsigned int u_int; #include #endif #include "internal/sockets.h" +#include +#include "app_trace.h" static int not_resumable_sess_cb(SSL *s, int is_forward_secure); static int sv_body(int s, int stype, int prot, unsigned char *context); @@ -1114,6 +1116,10 @@ int s_server_main(int argc, char *argv[]) use_sendfile = 0; use_zc_sendfile = 0; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + #if defined(OPENSSL_SYS_VXWORKS_SUPPORT) if (bio_err == NULL) bio_err = dup_bio_err(FORMAT_TEXT); diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/smime.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/smime.c index 211ddce4..1cae9226 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/smime.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/smime.c @@ -18,6 +18,8 @@ #include #include #include +#include +#include "app_trace.h" static int save_certs(char *signerfile, STACK_OF(X509) *signers); static int smime_cb(int ok, X509_STORE_CTX *ctx); @@ -184,6 +186,11 @@ int smime_main(int argc, char **argv) int vpmtouched = 0, rv = 0; ENGINE *e = NULL; const char *mime_eol = "\n"; + + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + OSSL_LIB_CTX *libctx = app_get0_libctx(); if ((vpm = X509_VERIFY_PARAM_new()) == NULL) diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/speed.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/speed.c index baa87229..e4a20fba 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/speed.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/speed.c @@ -44,6 +44,8 @@ #include #include #include +#include +#include "app_trace.h" #if !defined(OPENSSL_SYS_MSDOS) # include #endif @@ -1907,6 +1909,11 @@ int speed_main(int argc, char **argv) #ifndef NO_FORK int multi = 0; #endif + + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + long op_count = 1; openssl_speed_sec_t seconds = { SECONDS, RSA_SECONDS, DSA_SECONDS, ECDSA_SECONDS, ECDH_SECONDS, diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/spkac.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/spkac.c index 5a129a7f..c5ca1103 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/spkac.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/spkac.c @@ -19,6 +19,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -73,6 +75,10 @@ int spkac_main(int argc, char **argv) int keyformat = FORMAT_UNDEF; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, spkac_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/storeutl.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/storeutl.c index b131278a..e522a2e6 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/storeutl.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/storeutl.c @@ -15,6 +15,8 @@ #include #include #include /* s2i_ASN1_INTEGER */ +#include +#include "app_trace.h" static int process(const char *uri, const UI_METHOD *uimeth, PW_CB_DATA *uidata, int expected, int criterion, OSSL_STORE_SEARCH *search, @@ -88,6 +90,10 @@ int storeutl_main(int argc, char *argv[]) EVP_MD *digest = NULL; OSSL_LIB_CTX *libctx = app_get0_libctx(); + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + opt_set_unknown_name("digest"); prog = opt_init(argc, argv, storeutl_options); while ((o = opt_next()) != OPT_EOF) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/verify.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/verify.c index 93b21428..96d783d8 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/verify.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/verify.c @@ -17,6 +17,8 @@ #include #include #include +#include +#include "app_trace.h" static int cb(int ok, X509_STORE_CTX *ctx); static int check(X509_STORE *ctx, const char *file, @@ -89,6 +91,10 @@ int verify_main(int argc, char **argv) int vpmtouched = 0, crl_download = 0, show_chain = 0, i = 0, ret = 1; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + if ((vpm = X509_VERIFY_PARAM_new()) == NULL) goto end; diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/version.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/version.c index 89fb64b7..42df2ece 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/version.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/version.c @@ -15,6 +15,8 @@ #include #include #include +#include +#include "app_trace.h" typedef enum OPTION_choice { OPT_COMMON, @@ -57,6 +59,10 @@ int version_main(int argc, char **argv) char *prog; OPTION_CHOICE o; + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + prog = opt_init(argc, argv, version_options); while ((o = opt_next()) != OPT_EOF) { switch (o) { diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/x509.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/x509.c index 610de16a..c787af4c 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/x509.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/apps/x509.c @@ -22,6 +22,8 @@ #include #include #include +#include +#include "app_trace.h" #ifndef OPENSSL_NO_DSA # include #endif @@ -306,6 +308,10 @@ int x509_main(int argc, char **argv) int subject_hash_old = 0, issuer_hash_old = 0; #endif + #ifndef OPENSSL_NO_TRACE + setup_trace(getenv("OPENSSL_TRACE")); + #endif + reset_unknown(); ctx = X509_STORE_new(); diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/crypto/trace.c b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/crypto/trace.c index c70c3660..422f9050 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/crypto/trace.c +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/crypto/trace.c @@ -395,6 +395,14 @@ static int trace_attach_w_callback_cb(int category, int type, const void *data) } #endif +void OSSL_trace_unset_all_callbacks(void) +{ + int i; + for (i = 0; i < OSSL_TRACE_CATEGORY_NUM; i++) { + OSSL_trace_set_callback(i, NULL, NULL); + } +} + int OSSL_trace_set_callback(int category, OSSL_trace_cb callback, void *data) { #ifndef OPENSSL_NO_TRACE diff --git a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/include/openssl/trace.h b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/include/openssl/trace.h index dac0a820..425fd235 100644 --- a/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/include/openssl/trace.h +++ b/vxworks-6.9/target/src/openssl/OPENSSL/openssl-3.5.0/include/openssl/trace.h @@ -64,6 +64,10 @@ extern "C" { # define OSSL_TRACE_CATEGORY_NUM 24 /* KEEP THIS LIST IN SYNC with trace_categories[] in crypto/trace.c */ +/* Unsets (clears) all previously registered trace callbacks for every trace category */ +void OSSL_trace_unset_all_callbacks(void); + + /* Returns the trace category number for the given |name| */ int OSSL_trace_get_category_num(const char *name); diff --git a/vxworks-6.9/target/src/openssl/openssl_src/vxworks.krnl.mak b/vxworks-6.9/target/src/openssl/openssl_src/vxworks.krnl.mak index f94b7bb0..0c9bf8b0 100644 --- a/vxworks-6.9/target/src/openssl/openssl_src/vxworks.krnl.mak +++ b/vxworks-6.9/target/src/openssl/openssl_src/vxworks.krnl.mak @@ -32,7 +32,7 @@ endif OPENSSL_CPPFLAGS = -DOPENSSL_SYS_VXWORKS_SUPPORT -DOPENSSL_NO_THREAD_POOL -DVX69_TIMESTAMP_ENTROPY_SUPPORT -OPENSSL_CONFIGURE_OPTIONS = no-shared +OPENSSL_CONFIGURE_OPTIONS = no-shared enable-trace ifneq (, $(findstring enable-fips, $(CONFIGURE_CMD))) OPENSSL_FIPS_ENABLE =