Small update:

I got the proper error response working now (it was getting a bit late
yesterday, my brain obviously wasn't in top gear!), and it is as follows:

error:140840FF:SSL routines:SSL3_CONNECT:unknown state

Does this help anyone or provide any further indications of the problem?
What could cause an unknown state?

Cheers,
Toby

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Toby Shepheard
> Sent: 06 March 2001 19:42
> To: [EMAIL PROTECTED]
> Subject: SSL_ERROR_SSL generated in SSL_connect
>
>
> Hi,
>
> I've implemented a basic SSL client in C on Solaris using
> openssl. I've also
> written some wrapping code, so now I can compile it as a .so object to
> integrate with another piece of software (Vignette StoryServer 5.5)
>
> When run as a standalone program, everything is fine. However, when I
> compile as a .so and run it in the StoryServer environment, I
> hit a problem
> with SSL_connect:
>
> SSL_get_error(ssl, (SSL_connect(ssl))
> always returns SSL_ERROR_SSL
>
> The man pages suggest this may be a protocol error. I then called
> ERR_print_errors(bio_err)
> ERR_error_string(err, szDebug)
>
> this gave
> 2546:error:140840FF:lib(20):func(132):reason(255):s3_clnt.c:382:
> and
> error:FFFFFFFF::lib(255) :func(4095) :reason(4095)
> but perhaps I didn't do that last bit properly! (code below).
>
> The only other clue I have is from using ssldump. This shows a TCP
> connection being initialised, but nothing else - not even a
> client hello!
>
> A stripped down version of the code, with all the SSL stuff,
> is appended at
> the end. If anyone can point me to where things may be going
> wrong, or even
> how I can get more info about what might be happening, I'd
> really appreciate
> it!
>
> As it works when I compile as an executable, I suspect it may
> be something
> to do with the environment settings or compiling as a .so,
> but I don't see
> how or why.
>
>
> Thanks,
> Toby
>
> (code follows)
> __________________________________________
>   BIO* bio_err = 0;
>   SSL_METHOD* meth;
>   SSL_CTX* ctx;
>   SSL* ssl;
>   int err;
>
>   // the TCP socket connection has been made already - socket
> is iSocket.
>
>   if(!bio_err)
>   {
>     /* Global system initialization*/
>     SSL_library_init();
>     SSL_load_error_strings();
>
>     /* An error write context */
>     bio_err=BIO_new_fp(zzsm_fp, BIO_NOCLOSE);
>   }
>
>   /* Create context*/
>   meth=SSLv3_method();
>   ctx=SSL_CTX_new(meth);
>   // Load trusted CAs
>   SSL_CTX_load_verify_locations(ctx, CA_LIST, 0);
>   SSL_CTX_set_verify_depth(ctx, 1);
>
>   /* Load random data */
>   RAND_load_file(RANDOM, 1024*1024)
>
>   ssl = SSL_new(ctx);
>   err = SSL_set_fd(ssl, iSocket);
>
>       // everything works fine up to here. I've removed error handling
>       // code from the email to keep the size down.
>
>   err = SSL_connect(ssl);
>
>   if(err <= 0 )
>   {
>     int sslError;
>     sprintf(szDebug, "zzss_secureConnection: Error establishing SSL
> layer\n");
>     zzsm_debugError(szDebug);
>     sslError = SSL_get_error(ssl, err);
>     switch(sslError)
>     {
>       // here I always reach this case:
>       case SSL_ERROR_SSL:
>         printf(
>              "SSL error: possible protocol error, or other SSL error\n");
>           ERR_error_string(ERR_getError(), szDebug);
>           printf(szDebug);

        // returns the following:
        // error:140840FF:SSL routines:SSL3_CONNECT:unknown state
>     }
>   }
> _______________________________
>
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    [EMAIL PROTECTED]
> Automated List Manager
> [EMAIL PROTECTED]

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

Reply via email to