Hi Prashanth,
I had sent the below email to the OpenSSL-users group...anyway check
it out and do let me know if there is anything else that you
require...the ENGINE gets statically linked and is set as default...do
read the ENGINE man page it has all the info...

================================================== =====
I am using the hardware engine. I had sent a mail sometime back asking
why the engine is not getting enabled by default. Well I did manage to
get a solution.
When using the engine from application point of view, you do require
to set the default engine from the application code, but when your
engine has to come up
and be set as default, then you have to set your engine functions as
default by using the API ENGINE_set_default_RSA(ENGINE *e) and the
same goes for all
the functions that are to be done using the hardware. This is mainly
intended for stand alone applications. Also even before the openssl
comes up, you have to call the ENGINE_load_builtin_engines which
initializes the engine tables with the available engines and during
this phase when you make a call to the bind_helper you have to set
which engine is going to be your default implementation after binding
the function pointers through the API ENGINE_set_default_RSA or what
ever you need to set as default. The reason for calling the
ENGINE_load_builtin_engines before your openssl comes up is, because,
when you don't initialize your engine and set it as default, the
openssl code takes the software implementation as default. So it is as
safe implementation if you can do that in the start.
Hope the above info helps.
================================================== =====

Let me know if there is anything...there are quite a few people using
the ENGINE for openssl or may be I should start mailing to the
openssl-dev group.


On Mon, 21 Feb 2005 23:15:51 +0100, Dr. Stephen Henson
> On Mon, Feb 21, 2005, Prashant Kumar wrote:
> > Thank you all for your response. I tried including the
> > the "--static" flag while compiling as well as
> > directly calling the function ENGINE_load_ubsec. All
> > these methods end up calling ubsec_init which inturn
> > call "DSO_load" (and thus dlopen).
> >
> > I am trying to use the engine implementation for
> > VXWORKS which does not have dlopen (or dynamic loading
> > capability).
> >
> > I was thinking of modifying the "ubsec_init" and
> > "ubsec_finish" to statically link to the ubsec
> > functions instead of using dlopen and so on. Is that
> > the only option I have or is there any other option ?.
> >

> You could write a DSO_METHOD which binds to static functions and returns
> appropriate function pointers. Looks like you can then set DEF_DSO_METHOD
> to have it picked up automatically.
> Steve.
> --
> Dr Stephen N. Henson. Email, S/MIME and PGP keys: see homepage
> OpenSSL project core developer and freelance consultant.
> Funding needed! Details on homepage.
> Homepage: http://www.drh-consultancy.demon.co.uk
> __________________________________________________ ____________________
> OpenSSL Project http://www.openssl.org
> Development Mailing List openssl-dev@openssl.org
> Automated List Manager majordomo@openssl.org

Thank you,
Best Regards
Riaz Ur Rahaman
__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majordomo@openssl.org