[[EMAIL PROTECTED] - Wed Dec 4 12:08:18 2002]:
> Whilst conducting some testing with OpenSSL 0.9.7beta4 and the nCipher
> chil plugin, I observed the following issues:
>
> 1. Lack of threadsafety if app fails to support new OpenSSL dynamic
> locks
>
> At the moment hw_ncipher.c uses the new OpenSSL dynamic lock code
> inorder
> to implement the hwcrhk locking upcalls. However if the OpenSSL
> application
> fails to implement the dynamic upcalls, i.e.
> CRYPTO_get_dynlock_create_callback() returns NULL, then the hwcrhk
> engine
> code becomes non threadsafe.
Hmm, that's a good point. However, your solution is not the way to go.
If you take a look at 0.9.8-dev, you'll see that the engines
increasingly become some kind of external module. Therefore, it's not a
good idea to fool the programmers into thinking they can rely on OpenSSL
having the proper static lock for the available engines.
However, if we can do a good enough assertion (which will not abort(),
just make the engine not load), I can see us doing that. Care to help
in that direction? It'll probably involve using
CRYPTO_get_locking_callback() to see if the application provided any
threading support. If it does that, but hasn't provided any support for
dynamic locks, it's bye-bye engine... Sounds reasonable enough?
> 2. Missing emsg in call to p_hwcrhk_ModExpCRT() in hw_ncipher.c
Applied and committed. Thanks.
> 3. hwcrhk_log_message() in hw_ncipher.c
>
> This fails to write a newline character to the logstream after each
> log message. So for instance setting debug in s_client produces:
I applied and committed a patch that uses BIO_printf().
> 4. hwcrhk_insert_card() in hw_ncipher.c
[...]
> int UI_dup_info_string(UI *ui, const char *text)
> {
> char *text_copy=NULL;
>
> if (text)
> {
> text_copy=BUF_strdup(text);
> if (text_copy == NULL)
> {
> UIerr(UI_F_UI_DUP_INFO_STRING,ERR_R_MALLOC_FAILURE);
> return -1;
> }
> }
>
> return general_allocate_string(ui, text_copy, 1, UIT_INFO, 0, NULL,
> 0, 0, NULL);
> }
Actually, the error was deep down in general_allocate_prompt(), which
should have checked type. Patched and committed...
> I hope that this mail is helpful,
Very much so. Thanks!
--
Richard Levitte
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]