aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/dso
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/dso')
-rw-r--r--crypto/dso/.cvsignore2
-rw-r--r--crypto/dso/Makefile.ssl122
-rw-r--r--crypto/dso/README22
-rw-r--r--crypto/dso/dso.h219
-rw-r--r--crypto/dso/dso_dl.c219
-rw-r--r--crypto/dso/dso_dlfcn.c224
-rw-r--r--crypto/dso/dso_err.c119
-rw-r--r--crypto/dso/dso_lib.c283
-rw-r--r--crypto/dso/dso_null.c84
-rw-r--r--crypto/dso/dso_openssl.c79
-rw-r--r--crypto/dso/dso_win32.c238
11 files changed, 0 insertions, 1611 deletions
diff --git a/crypto/dso/.cvsignore b/crypto/dso/.cvsignore
deleted file mode 100644
index c6d03a9dbc6..00000000000
--- a/crypto/dso/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-lib
-Makefile.save
diff --git a/crypto/dso/Makefile.ssl b/crypto/dso/Makefile.ssl
deleted file mode 100644
index c5510692048..00000000000
--- a/crypto/dso/Makefile.ssl
+++ /dev/null
@@ -1,122 +0,0 @@
-#
-# SSLeay/crypto/dso/Makefile
-#
-
-DIR= dso
-TOP= ../..
-CC= cc
-INCLUDES= -I.. -I../../include
-CFLAG=-g
-INSTALL_PREFIX=
-OPENSSLDIR= /usr/local/ssl
-INSTALLTOP=/usr/local/ssl
-MAKE= make -f Makefile.ssl
-MAKEDEPEND= $(TOP)/util/domd $(TOP)
-MAKEFILE= Makefile.ssl
-AR= ar r
-
-CFLAGS= $(INCLUDES) $(CFLAG)
-
-GENERAL=Makefile
-TEST=
-APPS=
-
-LIB=$(TOP)/libcrypto.a
-LIBSRC= dso_dl.c dso_dlfcn.c dso_err.c dso_lib.c dso_null.c \
- dso_openssl.c dso_win32.c
-LIBOBJ= dso_dl.o dso_dlfcn.o dso_err.o dso_lib.o dso_null.o \
- dso_openssl.o dso_win32.o
-
-SRC= $(LIBSRC)
-
-EXHEADER= dso.h
-HEADER= $(EXHEADER)
-
-ALL= $(GENERAL) $(SRC) $(HEADER)
-
-top:
- (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
-
-all: lib
-
-lib: $(LIBOBJ)
- $(AR) $(LIB) $(LIBOBJ)
- $(RANLIB) $(LIB)
- @touch lib
-
-files:
- $(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
-
-links:
- @$(TOP)/util/point.sh Makefile.ssl Makefile
- @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
- @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
- @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
-
-install:
- @for i in $(EXHEADER) ; \
- do \
- (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
- done;
-
-tags:
- ctags $(SRC)
-
-tests:
-
-lint:
- lint -DLINT $(INCLUDES) $(SRC)>fluff
-
-depend:
- $(MAKEDEPEND) $(INCLUDES) $(DEPFLAG) $(PROGS) $(LIBSRC)
-
-dclean:
- $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
- mv -f Makefile.new $(MAKEFILE)
-
-clean:
- rm -f *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
-
-dso_dl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
-dso_dl.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
-dso_dl.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
-dso_dl.o: ../../include/openssl/err.h ../../include/openssl/opensslconf.h
-dso_dl.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
-dso_dl.o: ../../include/openssl/stack.h ../cryptlib.h
-dso_dlfcn.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
-dso_dlfcn.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
-dso_dlfcn.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
-dso_dlfcn.o: ../../include/openssl/err.h ../../include/openssl/opensslconf.h
-dso_dlfcn.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
-dso_dlfcn.o: ../../include/openssl/stack.h ../cryptlib.h
-dso_err.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
-dso_err.o: ../../include/openssl/err.h ../../include/openssl/opensslv.h
-dso_err.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-dso_lib.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
-dso_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
-dso_lib.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
-dso_lib.o: ../../include/openssl/err.h ../../include/openssl/opensslconf.h
-dso_lib.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
-dso_lib.o: ../../include/openssl/stack.h ../cryptlib.h
-dso_null.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
-dso_null.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
-dso_null.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
-dso_null.o: ../../include/openssl/err.h ../../include/openssl/opensslconf.h
-dso_null.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
-dso_null.o: ../../include/openssl/stack.h ../cryptlib.h
-dso_openssl.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
-dso_openssl.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
-dso_openssl.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
-dso_openssl.o: ../../include/openssl/err.h ../../include/openssl/opensslconf.h
-dso_openssl.o: ../../include/openssl/opensslv.h
-dso_openssl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
-dso_openssl.o: ../cryptlib.h
-dso_win32.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h
-dso_win32.o: ../../include/openssl/crypto.h ../../include/openssl/dso.h
-dso_win32.o: ../../include/openssl/e_os.h ../../include/openssl/e_os2.h
-dso_win32.o: ../../include/openssl/err.h ../../include/openssl/opensslconf.h
-dso_win32.o: ../../include/openssl/opensslv.h ../../include/openssl/safestack.h
-dso_win32.o: ../../include/openssl/stack.h ../cryptlib.h
diff --git a/crypto/dso/README b/crypto/dso/README
deleted file mode 100644
index 5a9b86f4c34..00000000000
--- a/crypto/dso/README
+++ /dev/null
@@ -1,22 +0,0 @@
-TODO
-----
-
-Get a fix on how the paths should be handled. For now, flags == 0
-and this is currently just passing strings directly onto the
-underlying system calls and letting them do what they want with
-the paths. However, it may be desirable to implement flags that
-control the way the loading is performed (or attempted), and I
-invisage that DSO_ctrl() will be used to control this.
-
-NOTES
------
-
-I've checked out HPUX (well, version 11 at least) and shl_t is
-a pointer type so it's safe to use in the way it has been in
-dso_dl.c. On the other hand, HPUX11 support dlfcn too and
-according to their man page, prefer developers to move to that.
-I'll leave Richard's changes there as I guess dso_dl is needed
-for HPUX10.20.
-
-[G-T]
-
diff --git a/crypto/dso/dso.h b/crypto/dso/dso.h
deleted file mode 100644
index 281af47c262..00000000000
--- a/crypto/dso/dso.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/* dso.h */
-/* Written by Geoff Thorpe ([email protected]) 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
- *
- * 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
- * ([email protected]). This product includes software written by Tim
- * Hudson ([email protected]).
- *
- */
-
-#ifndef HEADER_DSO_H
-#define HEADER_DSO_H
-
-#include <openssl/crypto.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* These values are used as commands to DSO_ctrl() */
-#define DSO_CTRL_GET_FLAGS 1
-#define DSO_CTRL_SET_FLAGS 2
-#define DSO_CTRL_OR_FLAGS 3
-
-/* These flags control the translation of file-names from canonical to
- * native. Eg. in the CryptoSwift support, the "dl" and "dlfcn"
- * methods will translate "swift" -> "libswift.so" whereas the "win32"
- * method will translate "swift" -> "swift.dll". NB: Until I can figure
- * out how to be more "conventional" with this, the methods will only
- * honour this flag if it looks like it was passed a file without any
- * path and if the filename is small enough.
- */
-#define DSO_FLAG_NAME_TRANSLATION 0x01
-
-typedef struct dso_st DSO;
-
-typedef struct dso_meth_st
- {
- const char *name;
- /* Loads a shared library */
- int (*dso_load)(DSO *dso, const char *filename);
- /* Unloads a shared library */
- int (*dso_unload)(DSO *dso);
- /* Binds a function, variable, or whatever */
- int (*dso_bind)(DSO *dso, const char *symname, void **symptr);
-
-/* I don't think this would actually be used in any circumstances. */
-#if 0
- /* Unbinds a symbol */
- int (*dso_unbind)(DSO *dso, char *symname, void *symptr);
-#endif
- /* The generic (yuck) "ctrl()" function. NB: Negative return
- * values (rather than zero) indicate errors. */
- long (*dso_ctrl)(DSO *dso, int cmd, long larg, void *parg);
-
- /* [De]Initialisation handlers. */
- int (*init)(DSO *dso);
- int (*finish)(DSO *dso);
- } DSO_METHOD;
-
-/**********************************************************************/
-/* The low-level handle type used to refer to a loaded shared library */
-
-struct dso_st
- {
- DSO_METHOD *meth;
- /* Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS
- * doesn't use anything but will need to cache the filename
- * for use in the dso_bind handler. All in all, let each
- * method control its own destiny. "Handles" and such go in
- * a STACK. */
- STACK *meth_data;
- int references;
- int flags;
- /* For use by applications etc ... use this for your bits'n'pieces,
- * don't touch meth_data! */
- CRYPTO_EX_DATA ex_data;
- };
-
-
-DSO * DSO_new(void);
-DSO * DSO_new_method(DSO_METHOD *method);
-int DSO_free(DSO *dso);
-int DSO_flags(DSO *dso);
-int DSO_up(DSO *dso);
-long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg);
-
-void DSO_set_default_method(DSO_METHOD *meth);
-DSO_METHOD *DSO_get_default_method(void);
-DSO_METHOD *DSO_get_method(DSO *dso);
-DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth);
-
-/* The all-singing all-dancing load function, you normally pass NULL
- * for the first and third parameters. Use DSO_up and DSO_free for
- * subsequent reference count handling. Any flags passed in will be set
- * in the constructed DSO after its init() function but before the
- * load operation. This will be done with;
- * DSO_ctrl(dso, DSO_CTRL_SET_FLAGS, flags, NULL); */
-DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags);
-
-/* This function binds to a function, variable, whatever inside a
- * shared library. */
-void *DSO_bind(DSO *dso, const char *symname);
-
-/* This method is the default, but will beg, borrow, or steal whatever
- * method should be the default on any particular platform (including
- * DSO_METH_null() if necessary). */
-DSO_METHOD *DSO_METHOD_openssl(void);
-
-/* This method is defined for all platforms - if a platform has no
- * DSO support then this will be the only method! */
-DSO_METHOD *DSO_METHOD_null(void);
-
-/* If DSO_DLFCN is defined, the standard dlfcn.h-style functions
- * (dlopen, dlclose, dlsym, etc) will be used and incorporated into
- * this method. If not, this method will return NULL. */
-DSO_METHOD *DSO_METHOD_dlfcn(void);
-
-/* If DSO_DL is defined, the standard dl.h-style functions (shl_load,
- * shl_unload, shl_findsym, etc) will be used and incorporated into
- * this method. If not, this method will return NULL. */
-DSO_METHOD *DSO_METHOD_dl(void);
-
-/* If WIN32 is defined, use DLLs. If not, return NULL. */
-DSO_METHOD *DSO_METHOD_win32(void);
-
-void ERR_load_DSO_strings(void);
-
-/* BEGIN ERROR CODES */
-/* The following lines are auto generated by the script mkerr.pl. Any changes
- * made after this point may be overwritten when the script is next run.
- */
-
-/* Error codes for the DSO functions. */
-
-/* Function codes. */
-#define DSO_F_DLFCN_BIND 100
-#define DSO_F_DLFCN_LOAD 101
-#define DSO_F_DLFCN_UNLOAD 102
-#define DSO_F_DLFCN_CTRL 103
-#define DSO_F_DL_BIND 104
-#define DSO_F_DL_LOAD 105
-#define DSO_F_DL_UNLOAD 106
-#define DSO_F_DL_CTRL 107
-#define DSO_F_DSO_BIND 108
-#define DSO_F_DSO_FREE 109
-#define DSO_F_DSO_LOAD 110
-#define DSO_F_DSO_NEW_METHOD 111
-#define DSO_F_DSO_UP 112
-#define DSO_F_DSO_CTRL 113
-#define DSO_F_WIN32_BIND 114
-#define DSO_F_WIN32_LOAD 115
-#define DSO_F_WIN32_UNLOAD 116
-#define DSO_F_WIN32_CTRL 117
-
-/* Reason codes. */
-#define DSO_R_FINISH_FAILED 100
-#define DSO_R_LOAD_FAILED 101
-#define DSO_R_NULL_HANDLE 102
-#define DSO_R_STACK_ERROR 103
-#define DSO_R_SYM_FAILURE 104
-#define DSO_R_UNLOAD_FAILED 105
-#define DSO_R_UNSUPPORTED 106
-#define DSO_R_UNKNOWN_COMMAND 107
-#define DSO_R_CTRL_FAILED 108
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
diff --git a/crypto/dso/dso_dl.c b/crypto/dso/dso_dl.c
deleted file mode 100644
index bb808ad6fba..00000000000
--- a/crypto/dso/dso_dl.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* dso_dl.c */
-/* Written by Richard Levitte ([email protected]) 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
- *
- * 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
- * ([email protected]). This product includes software written by Tim
- * Hudson ([email protected]).
- *
- */
-
-#include <stdio.h>
-#include "cryptlib.h"
-#include <openssl/dso.h>
-
-#ifndef DSO_DL
-DSO_METHOD *DSO_METHOD_dl(void)
- {
- return NULL;
- }
-#else
-
-#include <dl.h>
-
-/* Part of the hack in "dl_load" ... */
-#define DSO_MAX_TRANSLATED_SIZE 256
-
-static int dl_load(DSO *dso, const char *filename);
-static int dl_unload(DSO *dso);
-static int dl_bind(DSO *dso, const char *symname, void **symptr);
-#if 0
-static int dl_unbind(DSO *dso, char *symname, void *symptr);
-static int dl_init(DSO *dso);
-static int dl_finish(DSO *dso);
-#endif
-static int dl_ctrl(DSO *dso, int cmd, long larg, void *parg);
-
-static DSO_METHOD dso_meth_dl = {
- "OpenSSL 'dl' shared library method",
- dl_load,
- dl_unload,
- dl_bind,
-/* For now, "unbind" doesn't exist */
-#if 0
- NULL, /* unbind */
-#endif
- dl_ctrl,
- NULL, /* init */
- NULL /* finish */
- };
-
-DSO_METHOD *DSO_METHOD_dl(void)
- {
- return(&dso_meth_dl);
- }
-
-/* For this DSO_METHOD, our meth_data STACK will contain;
- * (i) the handle (shl_t) returned from shl_load().
- * NB: I checked on HPUX11 and shl_t is itself a pointer
- * type so the cast is safe.
- */
-
-static int dl_load(DSO *dso, const char *filename)
- {
- shl_t ptr;
- char translated[DSO_MAX_TRANSLATED_SIZE];
- int len;
-
- /* The same comment as in dlfcn_load applies here. bleurgh. */
- len = strlen(filename);
- if((dso->flags & DSO_FLAG_NAME_TRANSLATION) &&
- (len + 6 < DSO_MAX_TRANSLATED_SIZE) &&
- (strstr(filename, "/") == NULL))
- {
- sprintf(translated, "lib%s.so", filename);
- ptr = shl_load(translated, BIND_IMMEDIATE, NULL);
- }
- else
- ptr = shl_load(filename, BIND_IMMEDIATE, NULL);
- if(ptr == NULL)
- {
- DSOerr(DSO_F_DL_LOAD,DSO_R_LOAD_FAILED);
- return(0);
- }
- if(!sk_push(dso->meth_data, (char *)ptr))
- {
- DSOerr(DSO_F_DL_LOAD,DSO_R_STACK_ERROR);
- shl_unload(ptr);
- return(0);
- }
- return(1);
- }
-
-static int dl_unload(DSO *dso)
- {
- shl_t ptr;
- if(dso == NULL)
- {
- DSOerr(DSO_F_DL_UNLOAD,ERR_R_PASSED_NULL_PARAMETER);
- return(0);
- }
- if(sk_num(dso->meth_data) < 1)
- return(1);
- /* Is this statement legal? */
- ptr = (shl_t)sk_pop(dso->meth_data);
- if(ptr == NULL)
- {
- DSOerr(DSO_F_DL_UNLOAD,DSO_R_NULL_HANDLE);
- /* Should push the value back onto the stack in
- * case of a retry. */
- sk_push(dso->meth_data, (char *)ptr);
- return(0);
- }
- shl_unload(ptr);
- return(1);
- }
-
-static int dl_bind(DSO *dso, const char *symname, void **symptr)
- {
- shl_t ptr;
- void *sym;
-
- if((dso == NULL) || (symptr == NULL) || (symname == NULL))
- {
- DSOerr(DSO_F_DL_BIND,ERR_R_PASSED_NULL_PARAMETER);
- return(0);
- }
- if(sk_num(dso->meth_data) < 1)
- {
- DSOerr(DSO_F_DL_BIND,DSO_R_STACK_ERROR);
- return(0);
- }
- ptr = (shl_t)sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
- if(ptr == NULL)
- {
- DSOerr(DSO_F_DL_BIND,DSO_R_NULL_HANDLE);
- return(0);
- }
- if (shl_findsym(ptr, symname, TYPE_UNDEFINED, &sym) < 0)
- {
- DSOerr(DSO_F_DL_BIND,DSO_R_SYM_FAILURE);
- return(0);
- }
- *symptr = sym;
- return(1);
- }
-
-static int dl_ctrl(DSO *dso, int cmd, long larg, void *parg)
- {
- if(dso == NULL)
- {
- DSOerr(DSO_F_DL_CTRL,ERR_R_PASSED_NULL_PARAMETER);
- return(-1);
- }
- switch(cmd)
- {
- case DSO_CTRL_GET_FLAGS:
- return dso->flags;
- case DSO_CTRL_SET_FLAGS:
- dso->flags = (int)larg;
- return(0);
- case DSO_CTRL_OR_FLAGS:
- dso->flags |= (int)larg;
- return(0);
- default:
- break;
- }
- DSOerr(DSO_F_DL_CTRL,DSO_R_UNKNOWN_COMMAND);
- return(-1);
- }
-
-#endif /* DSO_DL */
diff --git a/crypto/dso/dso_dlfcn.c b/crypto/dso/dso_dlfcn.c
deleted file mode 100644
index 7638724f781..00000000000
--- a/crypto/dso/dso_dlfcn.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/* dso_dlfcn.c */
-/* Written by Geoff Thorpe ([email protected]) 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
- *
- * 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
- * ([email protected]). This product includes software written by Tim
- * Hudson ([email protected]).
- *
- */
-
-#include <stdio.h>
-#include "cryptlib.h"
-#include <openssl/dso.h>
-
-#ifndef DSO_DLFCN
-DSO_METHOD *DSO_METHOD_dlfcn(void)
- {
- return NULL;
- }
-#else
-
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-/* Part of the hack in "dlfcn_load" ... */
-#define DSO_MAX_TRANSLATED_SIZE 256
-
-static int dlfcn_load(DSO *dso, const char *filename);
-static int dlfcn_unload(DSO *dso);
-static int dlfcn_bind(DSO *dso, const char *symname, void **symptr);
-#if 0
-static int dlfcn_unbind(DSO *dso, char *symname, void *symptr);
-static int dlfcn_init(DSO *dso);
-static int dlfcn_finish(DSO *dso);
-#endif
-static long dlfcn_ctrl(DSO *dso, int cmd, long larg, void *parg);
-
-static DSO_METHOD dso_meth_dlfcn = {
- "OpenSSL 'dlfcn' shared library method",
- dlfcn_load,
- dlfcn_unload,
- dlfcn_bind,
-/* For now, "unbind" doesn't exist */
-#if 0
- NULL, /* unbind */
-#endif
- dlfcn_ctrl,
- NULL, /* init */
- NULL /* finish */
- };
-
-DSO_METHOD *DSO_METHOD_dlfcn(void)
- {
- return(&dso_meth_dlfcn);
- }
-
-/* For this DSO_METHOD, our meth_data STACK will contain;
- * (i) the handle (void*) returned from dlopen().
- */
-
-static int dlfcn_load(DSO *dso, const char *filename)
- {
- void *ptr;
- char translated[DSO_MAX_TRANSLATED_SIZE];
- int len;
-
- /* NB: This is a hideous hack, but I'm not yet sure what
- * to replace it with. This attempts to convert any filename,
- * that looks like it has no path information, into a
- * translated form, e. "blah" -> "libblah.so" */
- len = strlen(filename);
- if((dso->flags & DSO_FLAG_NAME_TRANSLATION) &&
- (len + 6 < DSO_MAX_TRANSLATED_SIZE) &&
- (strstr(filename, "/") == NULL))
- {
- sprintf(translated, "lib%s.so", filename);
- ptr = dlopen(translated, RTLD_NOW);
- }
- else
- {
- ptr = dlopen(filename, RTLD_NOW);
- }
- if(ptr == NULL)
- {
- DSOerr(DSO_F_DLFCN_LOAD,DSO_R_LOAD_FAILED);
- return(0);
- }
- if(!sk_push(dso->meth_data, (char *)ptr))
- {
- DSOerr(DSO_F_DLFCN_LOAD,DSO_R_STACK_ERROR);
- dlclose(ptr);
- return(0);
- }
- return(1);
- }
-
-static int dlfcn_unload(DSO *dso)
- {
- void *ptr;
- if(dso == NULL)
- {
- DSOerr(DSO_F_DLFCN_UNLOAD,ERR_R_PASSED_NULL_PARAMETER);
- return(0);
- }
- if(sk_num(dso->meth_data) < 1)
- return(1);
- ptr = (void *)sk_pop(dso->meth_data);
- if(ptr == NULL)
- {
- DSOerr(DSO_F_DLFCN_UNLOAD,DSO_R_NULL_HANDLE);
- /* Should push the value back onto the stack in
- * case of a retry. */
- sk_push(dso->meth_data, (char *)ptr);
- return(0);
- }
- /* For now I'm not aware of any errors associated with dlclose() */
- dlclose(ptr);
- return(1);
- }
-
-static int dlfcn_bind(DSO *dso, const char *symname, void **symptr)
- {
- void *ptr, *sym;
-
- if((dso == NULL) || (symptr == NULL) || (symname == NULL))
- {
- DSOerr(DSO_F_DLFCN_BIND,ERR_R_PASSED_NULL_PARAMETER);
- return(0);
- }
- if(sk_num(dso->meth_data) < 1)
- {
- DSOerr(DSO_F_DLFCN_BIND,DSO_R_STACK_ERROR);
- return(0);
- }
- ptr = (void *)sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
- if(ptr == NULL)
- {
- DSOerr(DSO_F_DLFCN_BIND,DSO_R_NULL_HANDLE);
- return(0);
- }
- sym = dlsym(ptr, symname);
- if(sym == NULL)
- {
- DSOerr(DSO_F_DLFCN_BIND,DSO_R_SYM_FAILURE);
- return(0);
- }
- *symptr = sym;
- return(1);
- }
-
-static long dlfcn_ctrl(DSO *dso, int cmd, long larg, void *parg)
- {
- if(dso == NULL)
- {
- DSOerr(DSO_F_DLFCN_CTRL,ERR_R_PASSED_NULL_PARAMETER);
- return(-1);
- }
- switch(cmd)
- {
- case DSO_CTRL_GET_FLAGS:
- return dso->flags;
- case DSO_CTRL_SET_FLAGS:
- dso->flags = (int)larg;
- return(0);
- case DSO_CTRL_OR_FLAGS:
- dso->flags |= (int)larg;
- return(0);
- default:
- break;
- }
- DSOerr(DSO_F_DLFCN_CTRL,DSO_R_UNKNOWN_COMMAND);
- return(-1);
- }
-
-#endif /* DSO_DLFCN */
diff --git a/crypto/dso/dso_err.c b/crypto/dso/dso_err.c
deleted file mode 100644
index 5d2457a9fff..00000000000
--- a/crypto/dso/dso_err.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* crypto/dso/dso_err.c */
-/* ====================================================================
- * Copyright (c) 1999 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
- *
- * 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
- * ([email protected]). This product includes software written by Tim
- * Hudson ([email protected]).
- *
- */
-
-/* NOTE: this file was auto generated by the mkerr.pl script: any changes
- * made to it will be overwritten when the script next updates this file,
- * only reason strings will be preserved.
- */
-
-#include <stdio.h>
-#include <openssl/err.h>
-#include <openssl/dso.h>
-
-/* BEGIN ERROR CODES */
-#ifndef NO_ERR
-static ERR_STRING_DATA DSO_str_functs[]=
- {
-{ERR_PACK(0,DSO_F_DLFCN_BIND,0), "dlfcn_bind"},
-{ERR_PACK(0,DSO_F_DLFCN_LOAD,0), "dlfcn_load"},
-{ERR_PACK(0,DSO_F_DLFCN_UNLOAD,0), "dlfcn_unload"},
-{ERR_PACK(0,DSO_F_DLFCN_CTRL,0), "dlfcn_ctrl"},
-{ERR_PACK(0,DSO_F_DL_BIND,0), "dl_bind"},
-{ERR_PACK(0,DSO_F_DL_LOAD,0), "dl_load"},
-{ERR_PACK(0,DSO_F_DL_UNLOAD,0), "dl_unload"},
-{ERR_PACK(0,DSO_F_DL_CTRL,0), "dl_ctrl"},
-{ERR_PACK(0,DSO_F_DSO_BIND,0), "DSO_bind"},
-{ERR_PACK(0,DSO_F_DSO_FREE,0), "DSO_free"},
-{ERR_PACK(0,DSO_F_DSO_LOAD,0), "DSO_load"},
-{ERR_PACK(0,DSO_F_DSO_NEW_METHOD,0), "DSO_new_method"},
-{ERR_PACK(0,DSO_F_DSO_UP,0), "DSO_up"},
-{ERR_PACK(0,DSO_F_DSO_CTRL,0), "DSO_ctrl"},
-{ERR_PACK(0,DSO_F_WIN32_BIND,0), "win32_bind"},
-{ERR_PACK(0,DSO_F_WIN32_LOAD,0), "win32_load"},
-{ERR_PACK(0,DSO_F_WIN32_UNLOAD,0), "win32_unload"},
-{ERR_PACK(0,DSO_F_WIN32_CTRL,0), "win32_ctrl"},
-{0,NULL}
- };
-
-static ERR_STRING_DATA DSO_str_reasons[]=
- {
-{DSO_R_FINISH_FAILED ,"cleanup method function failed"},
-{DSO_R_LOAD_FAILED ,"could not load the shared library"},
-{DSO_R_NULL_HANDLE ,"a null shared library handle was used"},
-{DSO_R_STACK_ERROR ,"the meth_data stack is corrupt"},
-{DSO_R_SYM_FAILURE ,"could not bind to the requested symbol name"},
-{DSO_R_UNLOAD_FAILED ,"could not unload the shared library"},
-{DSO_R_UNSUPPORTED ,"functionality not supported"},
-{DSO_R_UNKNOWN_COMMAND ,"unknown control command"},
-{DSO_R_CTRL_FAILED ,"control command failed"},
-{0,NULL}
- };
-
-#endif
-
-void ERR_load_DSO_strings(void)
- {
- static int init=1;
-
- if (init)
- {
- init=0;
-#ifndef NO_ERR
- ERR_load_strings(ERR_LIB_DSO,DSO_str_functs);
- ERR_load_strings(ERR_LIB_DSO,DSO_str_reasons);
-#endif
-
- }
- }
diff --git a/crypto/dso/dso_lib.c b/crypto/dso/dso_lib.c
deleted file mode 100644
index f41ebf1aa47..00000000000
--- a/crypto/dso/dso_lib.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/* dso_lib.c */
-/* Written by Geoff Thorpe ([email protected]) 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
- *
- * 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
- * ([email protected]). This product includes software written by Tim
- * Hudson ([email protected]).
- *
- */
-
-#include <stdio.h>
-#include <openssl/crypto.h>
-#include "cryptlib.h"
-#include <openssl/dso.h>
-
-static DSO_METHOD *default_DSO_meth = NULL;
-
-DSO *DSO_new(void)
- {
- return(DSO_new_method(NULL));
- }
-
-void DSO_set_default_method(DSO_METHOD *meth)
- {
- default_DSO_meth = meth;
- }
-
-DSO_METHOD *DSO_get_default_method(void)
- {
- return(default_DSO_meth);
- }
-
-DSO_METHOD *DSO_get_method(DSO *dso)
- {
- return(dso->meth);
- }
-
-DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth)
- {
- DSO_METHOD *mtmp;
- mtmp = dso->meth;
- dso->meth = meth;
- return(mtmp);
- }
-
-DSO *DSO_new_method(DSO_METHOD *meth)
- {
- DSO *ret;
-
- if(default_DSO_meth == NULL)
- /* We default to DSO_METH_openssl() which in turn defaults
- * to stealing the "best available" method. Will fallback
- * to DSO_METH_null() in the worst case. */
- default_DSO_meth = DSO_METHOD_openssl();
- ret = (DSO *)Malloc(sizeof(DSO));
- if(ret == NULL)
- {
- DSOerr(DSO_F_DSO_NEW_METHOD,ERR_R_MALLOC_FAILURE);
- return(NULL);
- }
- memset(ret, 0, sizeof(DSO));
- ret->meth_data = sk_new(NULL);
- if((ret->meth_data = sk_new(NULL)) == NULL)
- {
- /* sk_new doesn't generate any errors so we do */
- DSOerr(DSO_F_DSO_NEW_METHOD,ERR_R_MALLOC_FAILURE);
- Free(ret);
- return(NULL);
- }
- if(meth == NULL)
- ret->meth = default_DSO_meth;
- else
- ret->meth = meth;
- ret->references = 1;
- if((ret->meth->init != NULL) && !ret->meth->init(ret))
- {
- Free(ret);
- ret=NULL;
- }
- return(ret);
- }
-
-int DSO_free(DSO *dso)
- {
- int i;
-
- if(dso == NULL)
- {
- DSOerr(DSO_F_DSO_FREE,ERR_R_PASSED_NULL_PARAMETER);
- return(0);
- }
-
- i=CRYPTO_add(&dso->references,-1,CRYPTO_LOCK_DSO);
-#ifdef REF_PRINT
- REF_PRINT("DSO",dso);
-#endif
- if(i > 0) return(1);
-#ifdef REF_CHECK
- if(i < 0)
- {
- fprintf(stderr,"DSO_free, bad reference count\n");
- abort();
- }
-#endif
-
- if((dso->meth->dso_unload != NULL) && !dso->meth->dso_unload(dso))
- {
- DSOerr(DSO_F_DSO_FREE,DSO_R_UNLOAD_FAILED);
- return(0);
- }
-
- if((dso->meth->finish != NULL) && !dso->meth->finish(dso))
- {
- DSOerr(DSO_F_DSO_FREE,DSO_R_FINISH_FAILED);
- return(0);
- }
-
- sk_free(dso->meth_data);
-
- Free(dso);
- return(1);
- }
-
-int DSO_flags(DSO *dso)
- {
- return((dso == NULL) ? 0 : dso->flags);
- }
-
-
-int DSO_up(DSO *dso)
- {
- if (dso == NULL)
- {
- DSOerr(DSO_F_DSO_UP,ERR_R_PASSED_NULL_PARAMETER);
- return(0);
- }
-
- CRYPTO_add(&dso->references,1,CRYPTO_LOCK_DSO);
- return(1);
- }
-
-DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags)
- {
- DSO *ret;
- int allocated = 0;
-
- if(filename == NULL)
- {
- DSOerr(DSO_F_DSO_LOAD,ERR_R_PASSED_NULL_PARAMETER);
- return(NULL);
- }
- if(dso == NULL)
- {
- ret = DSO_new_method(meth);
- if(ret == NULL)
- {
- DSOerr(DSO_F_DSO_LOAD,ERR_R_MALLOC_FAILURE);
- return(NULL);
- }
- allocated = 1;
- }
- else
- ret = dso;
- /* Bleurgh ... have to check for negative return values for
- * errors. <grimace> */
- if(DSO_ctrl(ret, DSO_CTRL_SET_FLAGS, flags, NULL) < 0)
- {
- DSOerr(DSO_F_DSO_LOAD,DSO_R_CTRL_FAILED);
- if(allocated)
- DSO_free(ret);
- return(NULL);
- }
- if(ret->meth->dso_load == NULL)
- {
- DSOerr(DSO_F_DSO_LOAD,DSO_R_UNSUPPORTED);
- if(allocated)
- DSO_free(ret);
- return(NULL);
- }
- if(!ret->meth->dso_load(ret, filename))
- {
- DSOerr(DSO_F_DSO_LOAD,DSO_R_LOAD_FAILED);
- if(allocated)
- DSO_free(ret);
- return(NULL);
- }
- /* Load succeeded */
- return(ret);
- }
-
-void *DSO_bind(DSO *dso, const char *symname)
- {
- void *ret = NULL;
-
- if((dso == NULL) || (symname == NULL))
- {
- DSOerr(DSO_F_DSO_BIND,ERR_R_PASSED_NULL_PARAMETER);
- return(NULL);
- }
- if(dso->meth->dso_bind == NULL)
- {
- DSOerr(DSO_F_DSO_BIND,DSO_R_UNSUPPORTED);
- return(NULL);
- }
- if(!dso->meth->dso_bind(dso, symname, &ret))
- {
- DSOerr(DSO_F_DSO_BIND,DSO_R_SYM_FAILURE);
- return(NULL);
- }
- /* Success */
- return(ret);
- }
-
-/* I don't really like these *_ctrl functions very much to be perfectly
- * honest. For one thing, I think I have to return a negative value for
- * any error because possible DSO_ctrl() commands may return values
- * such as "size"s that can legitimately be zero (making the standard
- * "if(DSO_cmd(...))" form that works almost everywhere else fail at
- * odd times. I'd prefer "output" values to be passed by reference and
- * the return value as success/failure like usual ... but we conform
- * when we must... :-) */
-long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
- {
- if(dso == NULL)
- {
- DSOerr(DSO_F_DSO_CTRL,ERR_R_PASSED_NULL_PARAMETER);
- return(-1);
- }
- if((dso->meth == NULL) || (dso->meth->dso_ctrl == NULL))
- {
- DSOerr(DSO_F_DSO_CTRL,DSO_R_UNSUPPORTED);
- return(-1);
- }
- return(dso->meth->dso_ctrl(dso,cmd,larg,parg));
- }
diff --git a/crypto/dso/dso_null.c b/crypto/dso/dso_null.c
deleted file mode 100644
index 79e6eddca29..00000000000
--- a/crypto/dso/dso_null.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* dso_null.c */
-/* Written by Geoff Thorpe ([email protected]) 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
- *
- * 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
- * ([email protected]). This product includes software written by Tim
- * Hudson ([email protected]).
- *
- */
-
-/* This "NULL" method is provided as the fallback for systems that have
- * no appropriate support for "shared-libraries". */
-
-#include <stdio.h>
-#include "cryptlib.h"
-#include <openssl/dso.h>
-
-static DSO_METHOD dso_meth_null = {
- "NULL shared library method",
- NULL, /* load */
- NULL, /* unload */
- NULL, /* bind */
-/* For now, "unbind" doesn't exist */
-#if 0
- NULL, /* unbind */
-#endif
- NULL, /* ctrl */
- NULL, /* init */
- NULL /* finish */
- };
-
-DSO_METHOD *DSO_METHOD_null(void)
- {
- return(&dso_meth_null);
- }
-
diff --git a/crypto/dso/dso_openssl.c b/crypto/dso/dso_openssl.c
deleted file mode 100644
index fb12572311a..00000000000
--- a/crypto/dso/dso_openssl.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* dso_openssl.c */
-/* Written by Geoff Thorpe ([email protected]) 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
- *
- * 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
- * ([email protected]). This product includes software written by Tim
- * Hudson ([email protected]).
- *
- */
-
-#include <stdio.h>
-#include "cryptlib.h"
-#include <openssl/dso.h>
-
-/* We just pinch the method from an appropriate "default" method. */
-
-DSO_METHOD *DSO_METHOD_openssl(void)
- {
-#ifdef DEF_DSO_METHOD
- return(DEF_DSO_METHOD());
-#elif defined(DSO_DLFCN)
- return(DSO_METHOD_dlfcn());
-#elif defined(DSO_DL)
- return(DSO_METHOD_dl());
-#elif defined(DSO_WIN32)
- return(DSO_METHOD_win32());
-#else
- return(DSO_METHOD_null());
-#endif
- }
-
diff --git a/crypto/dso/dso_win32.c b/crypto/dso/dso_win32.c
deleted file mode 100644
index c495840bd2f..00000000000
--- a/crypto/dso/dso_win32.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/* dso_win32.c */
-/* Written by Geoff Thorpe ([email protected]) 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
- *
- * 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
- * ([email protected]). This product includes software written by Tim
- * Hudson ([email protected]).
- *
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "cryptlib.h"
-#include <openssl/dso.h>
-
-#ifndef WIN32
-DSO_METHOD *DSO_METHOD_win32(void)
- {
- return NULL;
- }
-#else
-
-/* Part of the hack in "win32_load" ... */
-#define DSO_MAX_TRANSLATED_SIZE 256
-
-static int win32_load(DSO *dso, const char *filename);
-static int win32_unload(DSO *dso);
-static int win32_bind(DSO *dso, const char *symname, void **symptr);
-#if 0
-static int win32_unbind(DSO *dso, char *symname, void *symptr);
-static int win32_init(DSO *dso);
-static int win32_finish(DSO *dso);
-#endif
-static long win32_ctrl(DSO *dso, int cmd, long larg, void *parg);
-
-static DSO_METHOD dso_meth_win32 = {
- "OpenSSL 'win32' shared library method",
- win32_load,
- win32_unload,
- win32_bind,
-/* For now, "unbind" doesn't exist */
-#if 0
- NULL, /* unbind */
-#endif
- win32_ctrl,
- NULL, /* init */
- NULL /* finish */
- };
-
-DSO_METHOD *DSO_METHOD_win32(void)
- {
- return(&dso_meth_win32);
- }
-
-/* For this DSO_METHOD, our meth_data STACK will contain;
- * (i) a pointer to the handle (HINSTANCE) returned from
- * LoadLibrary(), and copied.
- */
-
-static int win32_load(DSO *dso, const char *filename)
- {
- HINSTANCE h, *p;
- char translated[DSO_MAX_TRANSLATED_SIZE];
- int len;
-
- /* NB: This is a hideous hack, but I'm not yet sure what
- * to replace it with. This attempts to convert any filename,
- * that looks like it has no path information, into a
- * translated form, e. "blah" -> "blah.dll" ... I'm more
- * comfortable putting hacks into win32 code though ;-) */
- len = strlen(filename);
- if((dso->flags & DSO_FLAG_NAME_TRANSLATION) &&
- (len + 4 < DSO_MAX_TRANSLATED_SIZE) &&
- (strstr(filename, "/") == NULL)
- (strstr(filename, "\\") == NULL)
- (strstr(filename, ":") == NULL))
- {
- sprintf(translated, "%s.dll", filename);
- h = LoadLibrary(translated);
- }
- else
- h = LoadLibrary(filename);
- if(h == NULL)
- {
- DSOerr(DSO_F_WIN32_LOAD,DSO_R_LOAD_FAILED);
- return(0);
- }
- p = (HINSTANCE *)Malloc(sizeof(HINSTANCE));
- if(p == NULL)
- {
- DSOerr(DSO_F_WIN32_LOAD,ERR_R_MALLOC_FAILURE);
- FreeLibrary(h);
- return(0);
- }
- *p = h;
- if(!sk_push(dso->meth_data, (char *)p))
- {
- DSOerr(DSO_F_WIN32_LOAD,DSO_R_STACK_ERROR);
- FreeLibrary(h);
- Free(p);
- return(0);
- }
- return(1);
- }
-
-static int win32_unload(DSO *dso)
- {
- HINSTANCE *p;
- if(dso == NULL)
- {
- DSOerr(DSO_F_WIN32_UNLOAD,ERR_R_PASSED_NULL_PARAMETER);
- return(0);
- }
- if(sk_num(dso->meth_data) < 1)
- return(1);
- p = (HINSTANCE *)sk_pop(dso->meth_data);
- if(p == NULL)
- {
- DSOerr(DSO_F_WIN32_UNLOAD,DSO_R_NULL_HANDLE);
- return(0);
- }
- if(!FreeLibrary(p))
- {
- DSOerr(DSO_F_WIN32_UNLOAD,DSO_R_UNLOAD_FAILED);
- /* We should push the value back onto the stack in
- * case of a retry. */
- sk_push(dso->meth_data, (char *)p);
- return(0);
- }
- /* Cleanup */
- Free(p);
- return(1);
- }
-
-static int win32_bind(DSO *dso, const char *symname, void **symptr)
- {
- HINSTANCE *ptr;
- void *sym;
-
- if((dso == NULL) || (symptr == NULL) || (symname == NULL))
- {
- DSOerr(DSO_F_WIN32_BIND,ERR_R_PASSED_NULL_PARAMETER);
- return(0);
- }
- if(sk_num(dso->meth_data) < 1)
- {
- DSOerr(DSO_F_WIN32_BIND,DSO_R_STACK_ERROR);
- return(0);
- }
- ptr = (HINSTANCE *)sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
- if(ptr == NULL)
- {
- DSOerr(DSO_F_WIN32_BIND,DSO_R_NULL_HANDLE);
- return(0);
- }
- sym = GetProcAddress(*ptr, symname);
- if(sym == NULL)
- {
- DSOerr(DSO_F_WIN32_BIND,DSO_R_SYM_FAILURE);
- return(0);
- }
- *symptr = sym;
- return(1);
- }
-
-static int win32_ctrl(DSO *dso, int cmd, long larg, void *parg)
- {
- if(dso == NULL)
- {
- DSOerr(DSO_F_WIN32_CTRL,ERR_R_PASSED_NULL_PARAMETER);
- return(-1);
- }
- switch(cmd)
- {
- case DSO_CTRL_GET_FLAGS:
- return dso->flags;
- case DSO_CTRL_SET_FLAGS:
- dso->flags = (int)larg;
- return(0);
- case DSO_CTRL_OR_FLAGS:
- dso->flags |= (int)larg;
- return(0);
- default:
- break;
- }
- DSOerr(DSO_F_WIN32_CTRL,DSO_R_UNKNOWN_COMMAND);
- return(-1);
- }
-
-#endif /* WIN32 */