[openssl-users] API SSL_Connect fails and always returns SSL_ERROR_WANT_READ causes infinite loop in application
Matt Caswell
matt at openssl.org
Tue Nov 21 09:56:41 UTC 2017
Sounds like a bug. Can you raise this as an issue on github?
https://github.com/openssl/openssl/issues
Thanks
Matt
On 21/11/17 08:53, mahesh gs wrote:
> Hi,
>
> We were able to further localize this problem and found the problem is
> with the function "BIO_dgram_sctp_wait_for_dry". In this function after
> enabling the "sctp_sender_dry_event" we are trying to do MSG_PEEK to
> peek to the message at SCTP layer, in this case the size of the message
> waiting in the lower layer is 15 which size is exactly the size of
> "Handshake Alert" that is received from the server and waiting to be
> read. Dry event is never read from the lower layer that causes the
> SUB_STATE_ERROR and intern causes the SSL_Connect to loop in application.
>
> Current version of openssl we are using is 01.01.00g.
>
> We have tested and able to reproduce this issue with the OPENSSL
> 01.00.02k version that is packaged with RHEL 7.4 as well.
>
>
> Thanks,
> Mahesh G S
>
> On Mon, Nov 20, 2017 at 4:42 PM, mahesh gs <mahesh116 at gmail.com
> <mailto:mahesh116 at gmail.com>> wrote:
>
> Hi Matt,
>
> Thanks for the response.
>
> We debugged through openssl code to get to know the reason why
> client is not reading "SSL Alert".
>
> Once the "ClientKeyExchange" is sent openssl trying to send out the
> "ChangeCipherSpec" message which is creating the problem.
>
> The pre-work function for "ChangeCipherSpec" enables SCTP dry event
> and wait for dry event notification.
>
> Inline image 1
>
>
> In this scenario, dry notification is never sent from SCTP.
> "dtls_wait_for_dry" always returns "WORK_MORE_A". Hereafter flow
> never enters "read_state_machine" where alert is to be red.This
> causes SSL_Connect to be in infinite loop.
>
>
> Thanks,
> Mahesh G S
>
> On Fri, Nov 17, 2017 at 3:36 PM, Matt Caswell <matt at openssl.org
> <mailto:matt at openssl.org>> wrote:
>
>
>
> On 17/11/17 06:42, mahesh gs wrote:
> > Why
> > does client respond with "Client key exchange" even if the the handshake
> > failure alert is sent from server?
>
> The client will send its entire flight of messages before it
> attempts to
> read anything from the server. So, in this case, the
> ClientKeyExchange
> message is still sent because the client hasn't read the alert yet.
>
> Matt
>
> --
> openssl-users mailing list
> To unsubscribe:
> https://mta.openssl.org/mailman/listinfo/openssl-users
> <https://mta.openssl.org/mailman/listinfo/openssl-users>
>
>
>
>
>
More information about the openssl-users
mailing list