I think you don't have to use dso at all. In my case, I don't use dso,
but if I remember well, I have to use the parameter "-engine
engine_name" when executing openssl. When using openssh, it works by
default. You have to make some minor modifications in openssh though.
My init is like:


void
ENGINE_load_iandes(void)
{
ENGINE *engine = ENGINE_new();

if (engine == NULL)
return;
if (!ENGINE_set_id(engine, "iandes") ||
!ENGINE_set_name(engine, "IANDES crypto device") ||
!ENGINE_set_ciphers(engine, iandes_engine_ciphers)) {
ENGINE_free(engine);
return;
}
ENGINE_add(engine);
ENGINE_free(engine);
ERR_clear_error();
}

in crypto/engine/engine.h you have to add your engine loading function
in the builtin engines:
void ENGINE_load_iandes(void);

__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majordomo@openssl.org