Hi,

I'm trying to save a session to a buffer, like it is proposed in several 
articles, using i2d_SSL_SESSION. However, when trying to restore the session 
from the ASN1 buffer it immediately returns with an error.

from what I learned from the various articles and samples I feel that the 
following code snippet should restore what is available in "sess" into 
"sess2":

int len;
unsigned char *pp;
int rc;
SSL_SESSION *sess=NULL, *sess2=NULL;

sess = SSL_get1_session( ssl );
if( sess )
{
        len = i2d_SSL_SESSION( sess, NULL );
        fprintf( stderr, "SESS: len=%d\n", len );
        pp = (unsigned char *)malloc( len );
        rc = i2d_SSL_SESSION( sess, &pp );
        fprintf( stderr, "SESS: converted to asn1, rc=%d\n", rc );
        
        sess2 = d2i_SSL_SESSION( NULL, &pp, len );
        fprintf( stderr, "SESS: new sess2=%x\n", sess2 );
}


however, the result I keep getting is a NULL pointer and a the ssl error 
message:

SSL error: 218525757 (error:0D06703D:asn1 encoding 
routines:a2i_ASN1_STRING:expecting an asn1 sequence) in ssl_asn1.c line 242: 
"address=135554540 offset=0".


there's not much comprehensive documentation about this topic and I'm sure I 
misunderstand something ... but "WHAT" do I misunderstand is the question???

is there anyone out there who got this session saving stuff to work ... ???


Klaus.



______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to