ssh-keygen freezes if you force use of engine

Frederick Gotham cauldwell.thomas at gmail.com
Wed Nov 6 10:18:21 UTC 2019


I have edited the source code for OpenSSL in the init functions so that the 
config file always gets loaded. My config file specifies a custom engine, so 
this means that every process that links with "libssl.so" or "libcrypto.so" 
will use my custom engine.

The problem I'm having is that my device won't boot up. It gets as far as 
running "ssh-keygen" and then it freezes.

In order to troubleshoot this, I recompiled "ssh-keygen" with the flag "-
rdynamic" so that I can see function names in a stack trace. Next I enabled 
core dumps with "ulimit -c unlimited". Then I ran "ssh-keygen", and it froze 
as expected, but this time I pressed "Ctrl + \", and so it produced a core 
dump file.

I used GDB on the core file and saw the following backtrace:

Core was generated by `/home/service/ssh-keygen'.
Program terminated with signal SIGQUIT, Quit.
#0  0x00007f656e35e3c7 in __pthread_once_slow () from /lib/libpthread.so.0
(gdb) bt
#0  0x00007f656e35e3c7 in __pthread_once_slow () from /lib/libpthread.so.0
#1  0x00007f656f730fbe in CRYPTO_THREAD_run_once () from ./libcrypto.so.1.1
#2  0x00007f656f6d5c80 in OPENSSL_init_crypto () from ./libcrypto.so.1.1
#3  0x00007f656f66163b in openssl_config_int () from ./libcrypto.so.1.1
#4  0x00007f656f6d56cf in ossl_init_config_ossl_ () from ./libcrypto.so.1.1
#5  0x00007f656e35e407 in __pthread_once_slow () from /lib/libpthread.so.0
#6  0x00007f656f730fbe in CRYPTO_THREAD_run_once () from ./libcrypto.so.1.1
#7  0x00007f656f6d5c80 in OPENSSL_init_crypto () from ./libcrypto.so.1.1
#8  0x000055a8d125708b in main ()

Can anyone see what might be going on here?



More information about the openssl-users mailing list