Static build of OpenSSL is still default one, even in 0.9.9 snapshots. However, engine "dynamic" is built into it, and makes it possible to load engine modules even into statically build applications.
However, engine API of OpenSSL requires any engine to call some functions of libcrypto, such as ENGINE_set_id, ENGINE_set_init_function etc. If there is no shared libcrypto in the system (because it is compiled into application statically) these symbols cannod be resolved during loading and engine loading fail. This problem can be easily solved by exporting appropriate symbols from executable itself. On linux system only one linker option -Wl,-E should be added to the linking command line. On other systems solution can be more complicated, but ability to resolve symbols in the dlopened object from executable's symbol table exists everywhere. However, static build of OpenSSL doesn't add this option when linking openssl utility. It makes loading of any separately compiled engine into static build of openssl utility impossible. This seems to be inconsistent with existence of engine "dynamic" within this executable. Is it intentionally made decision or just omission? ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]