| An initial review of the OpenSSL code was done to determine how many |
| global variables where present. The idea was to determine the amount of |
| work required to pull the globals into an instance data structure in |
| order to build a Library NLM for NetWare. This file contains the results |
| of the review. Each file is listed along with the globals in the file. |
| The initial review was done very quickly so this list is probably |
| not a comprehensive list. |
| |
| |
| cryptlib.c |
| =========================================== |
| |
| static STACK *app_locks=NULL; |
| |
| static STACK_OF(CRYPTO_dynlock) *dyn_locks=NULL; |
| |
| static void (MS_FAR *locking_callback)(int mode,int type, |
| const char *file,int line)=NULL; |
| static int (MS_FAR *add_lock_callback)(int *pointer,int amount, |
| int type,const char *file,int line)=NULL; |
| static unsigned long (MS_FAR *id_callback)(void)=NULL; |
| static struct CRYPTO_dynlock_value *(MS_FAR *dynlock_create_callback) |
| (const char *file,int line)=NULL; |
| static void (MS_FAR *dynlock_lock_callback)(int mode, |
| struct CRYPTO_dynlock_value *l, const char *file,int line)=NULL; |
| static void (MS_FAR *dynlock_destroy_callback)(struct CRYPTO_dynlock_value *l, |
| const char *file,int line)=NULL; |
| |
| |
| mem.c |
| =========================================== |
| static int allow_customize = 1; /* we provide flexible functions for */ |
| static int allow_customize_debug = 1;/* exchanging memory-related functions at |
| |
| /* may be changed as long as `allow_customize' is set */ |
| static void *(*malloc_locked_func)(size_t) = malloc; |
| static void (*free_locked_func)(void *) = free; |
| static void *(*malloc_func)(size_t) = malloc; |
| static void *(*realloc_func)(void *, size_t)= realloc; |
| static void (*free_func)(void *) = free; |
| |
| /* use default functions from mem_dbg.c */ |
| static void (*malloc_debug_func)(void *,int,const char *,int,int) |
| = CRYPTO_dbg_malloc; |
| static void (*realloc_debug_func)(void *,void *,int,const char *,int,int) |
| = CRYPTO_dbg_realloc; |
| static void (*free_debug_func)(void *,int) = CRYPTO_dbg_free; |
| static void (*set_debug_options_func)(long) = CRYPTO_dbg_set_options; |
| static long (*get_debug_options_func)(void) = CRYPTO_dbg_get_options; |
| |
| |
| mem_dbg.c |
| =========================================== |
| static int mh_mode=CRYPTO_MEM_CHECK_OFF; |
| static unsigned long order = 0; /* number of memory requests */ |
| static LHASH *mh=NULL; /* hash-table of memory requests (address as key) */ |
| |
| static LHASH *amih=NULL; /* hash-table with those app_mem_info_st's */ |
| static long options = /* extra information to be recorded */ |
| static unsigned long disabling_thread = 0; |
| |
| |
| err.c |
| =========================================== |
| static LHASH *error_hash=NULL; |
| static LHASH *thread_hash=NULL; |
| |
| several files have routines with static "init" to track if error strings |
| have been loaded ( may not want seperate error strings for each process ) |
| The "init" variable can't be left "global" because the error has is a ptr |
| that is malloc'ed. The malloc'ed error has is dependant on the "init" |
| vars. |
| |
| files: |
| pem_err.c |
| cpt_err.c |
| pk12err.c |
| asn1_err.c |
| bio_err.c |
| bn_err.c |
| buf_err.c |
| comp_err.c |
| conf_err.c |
| cpt_err.c |
| dh_err.c |
| dsa_err.c |
| dso_err.c |
| evp_err.c |
| obj_err.c |
| pkcs7err.c |
| rand_err.c |
| rsa_err.c |
| rsar_err.c |
| ssl_err.c |
| x509_err.c |
| v3err.c |
| err.c |
| |
| These file have similar "init" globals but they are for other stuff not |
| error strings: |
| |
| bn_lib.c |
| ecc_enc.c |
| s23_clnt.c |
| s23_meth.c |
| s23_srvr.c |
| s2_clnt.c |
| s2_lib.c |
| s2_meth.c |
| s2_srvr.c |
| s3_clnt.c |
| s3_lib.c |
| s3_srvr.c |
| t1_clnt.c |
| t1_meth.c |
| t1_srvr.c |
| |
| rand_lib.c |
| =========================================== |
| static RAND_METHOD *rand_meth= &rand_ssleay_meth; |
| |
| md_rand.c |
| =========================================== |
| static int state_num=0,state_index=0; |
| static unsigned char state[STATE_SIZE+MD_DIGEST_LENGTH]; |
| static unsigned char md[MD_DIGEST_LENGTH]; |
| static long md_count[2]={0,0}; |
| static double entropy=0; |
| static int initialized=0; |
| |
| /* This should be set to 1 only when ssleay_rand_add() is called inside |
| an already locked state, so it doesn't try to lock and thereby cause |
| a hang. And it should always be reset back to 0 before unlocking. */ |
| static int add_do_not_lock=0; |
| |
| obj_dat.c |
| ============================================ |
| static int new_nid=NUM_NID; |
| static LHASH *added=NULL; |
| |
| b_sock.c |
| =========================================== |
| static unsigned long BIO_ghbn_hits=0L; |
| static unsigned long BIO_ghbn_miss=0L; |
| static struct ghbn_cache_st |
| { |
| char name[129]; |
| struct hostent *ent; |
| unsigned long order; |
| } ghbn_cache[GHBN_NUM]; |
| |
| static int wsa_init_done=0; |
| |
| |
| bio_lib.c |
| =========================================== |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *bio_meth=NULL; |
| static int bio_meth_num=0; |
| |
| |
| bn_lib.c |
| ======================================== |
| static int bn_limit_bits=0; |
| static int bn_limit_num=8; /* (1<<bn_limit_bits) */ |
| static int bn_limit_bits_low=0; |
| static int bn_limit_num_low=8; /* (1<<bn_limit_bits_low) */ |
| static int bn_limit_bits_high=0; |
| static int bn_limit_num_high=8; /* (1<<bn_limit_bits_high) */ |
| static int bn_limit_bits_mont=0; |
| static int bn_limit_num_mont=8; /* (1<<bn_limit_bits_mont) */ |
| |
| conf_lib.c |
| ======================================== |
| static CONF_METHOD *default_CONF_method=NULL; |
| |
| dh_lib.c |
| ======================================== |
| static DH_METHOD *default_DH_method; |
| static int dh_meth_num = 0; |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *dh_meth = NULL; |
| |
| dsa_lib.c |
| ======================================== |
| static DSA_METHOD *default_DSA_method; |
| static int dsa_meth_num = 0; |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *dsa_meth = NULL; |
| |
| dso_lib.c |
| ======================================== |
| static DSO_METHOD *default_DSO_meth = NULL; |
| |
| rsa_lib.c |
| ======================================== |
| static RSA_METHOD *default_RSA_meth=NULL; |
| static int rsa_meth_num=0; |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *rsa_meth=NULL; |
| |
| x509_trs.c |
| ======================================= |
| static int (*default_trust)(int id, X509 *x, int flags) = obj_trust; |
| static STACK_OF(X509_TRUST) *trtable = NULL; |
| |
| x509_req.c |
| ======================================= |
| static int *ext_nids = ext_nid_list; |
| |
| o_names.c |
| ====================================== |
| static LHASH *names_lh=NULL; |
| static STACK_OF(NAME_FUNCS) *name_funcs_stack; |
| static int free_type; |
| static int names_type_num=OBJ_NAME_TYPE_NUM; |
| |
| |
| th-lock.c - NEED to add support for locking for NetWare |
| ============================================== |
| static long *lock_count; |
| (other platform specific globals) |
| |
| x_x509.c |
| ============================================== |
| static int x509_meth_num = 0; |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *x509_meth = NULL; |
| |
| |
| evp_pbe.c |
| ============================================ |
| static STACK *pbe_algs; |
| |
| evp_key.c |
| ============================================ |
| static char prompt_string[80]; |
| |
| ssl_ciph.c |
| ============================================ |
| static STACK_OF(SSL_COMP) *ssl_comp_methods=NULL; |
| |
| ssl_lib.c |
| ============================================= |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *ssl_meth=NULL; |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *ssl_ctx_meth=NULL; |
| static int ssl_meth_num=0; |
| static int ssl_ctx_meth_num=0; |
| |
| ssl_sess.c |
| ============================================= |
| static int ssl_session_num=0; |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *ssl_session_meth=NULL; |
| |
| x509_vfy.c |
| ============================================ |
| static STACK_OF(CRYPTO_EX_DATA_FUNCS) *x509_store_ctx_method=NULL; |
| static int x509_store_ctx_num=0; |
| |