Platform
========
RedHat Linux 6.2 (i386)
gcc 2.95.3
OpenSSL Version
===============
0.9.6c
Problem Description
===================
Calls to PEM_write_PKCS8PrivateKey() using a custom password collecting
function fail, in that subsequent calls to PEM_read_PrivateKey() using the
correct password cannot read the key.
Solution
========
Function do_pk8pkey() within pem_lib.c appears to invoke the custom callback
incorrectly. The original if-then statement, starting on line 847, is:
if(!cb) klen = def_callback(buf, PEM_BUFSIZE, 1, u);
else klen = cb(buf, PEM_BUFSIZE, 1, u);
The fix is on the second line -- dereference the callback function pointer:
if(!cb) klen = def_callback(buf, PEM_BUFSIZE, 1, u);
else klen = (*cb)(buf, PEM_BUFSIZE, 1, u);
Thanks,
DSC
_________________________________________________________________________
Dan S. Camper Borrowed Time, Inc.
Software Thaumaturge http://www.bti.net
Toll-Free: 877.451.8939
Texas: 512.451.8939
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]