Hello,
I am implementing an engine for our company's hardware. I completed the engine
body part by referencing other engine implementation. But I have a problem
about the shared library which will be loaded by DSO_load function and bond to
with some functions. I assume that the shared library should contain:
1: The engine itself built for the dynamic load;
2: The lower level interface functions which interface with the
device drivers;
When I built the shared library, there is no problem to use the following
command:
"openssl engine -vvvv dynamic -pre SO_PATH:/xxxxx/librenesas.so -pre LOAD"
But if I run an aes-128-cbc encryption command by using the engine, the
following error message comes out.
OpenSSL> aes-128-cbc -in ifile -out ofile -e -K
12345678901234567890123456789012 -iv 00 -engine renesas
openssl (lock_dbg_cb): already locked (mode=9, type=30) at e_renesas.c:276
openssl (lock_dbg_cb): not locked (mode=10, type=30) at eng_table.c:173
can't use that engine
1174:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared
library:dso_dlfcn.c:162:filename(librenesas.sy
1174:error:25070067:DSO support routines:DSO_load:could not load the shared
library:dso_lib.c:244:
1174:error:80067069:RainerAPI:RENESAS_ENGINE_INIT:reason(105):e_renesas.c:249:
1174:error:260B806D:engine routines:ENGINE_TABLE_REGISTER:init
failed:eng_table.c:161:
It looks that I have two problems:
1: DSO_bind_func couldn't be successful;
2: The engine is locked already when I tried to use CRYPOT_w_lock
function
Does anyone have any suggestion and advice?
Thanks a lot in advance,
Weidong