Hi!

I have some server and async. transport on WINSOCK. Send and receive do with 
next
operations:

    DWORD CSSLTLSLayer::Receive(IN OVERLAPPED *pOverlapped,
                                IN WSABUF *pBuffer, 
                                OUT PDWORD pdwWasRecv)
    {
        DWORD dwRet = __super::Receive(pOverlapped, pBuffer, pdwWasRecv);

        BIO_write(m_pNetworkBIO, pBuffer->buf, *pdwWasRecv);
        BIO_flush(m_pNetworkBIO);

        size_t iBuffered = BIO_ctrl_pending(m_pSSLBIO);

            if (iBuffered <= 0){
                return(WSA_IO_PENDING);
            }

        m_vcLayeredBuffer.clear();
        m_vcLayeredBuffer.resize(iBuffered);
        iBuffered = BIO_read(m_pSSLBIO, &m_vcLayeredBuffer.front(), 
(int)iBuffered);

        pBuffer->buf = &m_vcLayeredBuffer.front();
        pBuffer->len = (u_long)m_vcLayeredBuffer.size();

        return(dwRet);
    }

    DWORD CSSLTLSLayer::Send(IN OVERLAPPED *pOverlapped, 
                             IN WSABUF *pBuffer, 
                             OUT PDWORD pdwWasSend)
    {
        size_t iBuffered = BIO_write(m_pSSLBIO, pBuffer->buf, pBuffer->len);

        BIO_flush(m_pSSLBIO);
        iBuffered = (int)BIO_ctrl_pending(m_pNetworkBIO);

            if (iBuffered <= 0){
                return(WSA_IO_PENDING);
            }

        m_vcLayeredBuffer.clear();
        m_vcLayeredBuffer.resize(iBuffered);

        iBuffered = BIO_read(m_pNetworkBIO, 
                             &m_vcLayeredBuffer.front(), 
                             (int)iBuffered);

        pBuffer->buf = &m_vcLayeredBuffer.front();
        pBuffer->len = (u_long)m_vcLayeredBuffer.size();

        return(__super::Send(pOverlapped, pBuffer, pdwWasSend));
    }

But i have a problem with handshake. How can i do SSL handshake using
BIO and without SSL_accept or SSL_set_accept_state()+SSL_do_handshake.

Thanks for support!;)

--
Best regards, 
Vladimir Sabanov mailto:[EMAIL PROTECTED]
Software Developer of ApriorIT - A PriorITy choice!

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

Reply via email to