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]

Reply via email to