From daccea61408f0ba312f4e2e6ec6ea2049e9eaceb Mon Sep 17 00:00:00 2001 From: Dmitriy Zhuravlev Date: Tue, 25 Oct 2016 10:45:55 +0300 Subject: [PATCH] Fix IOT-1465 Ownership transfer manager expects the CA_DTLS_AUTHENTICATION_FAILURE in case of handshake error Change-Id: I984ec32de52a0547e449d6b0580fa8299d678d8e Signed-off-by: Dmitriy Zhuravlev Reviewed-on: https://gerrit.iotivity.org/gerrit/13641 Tested-by: jenkins-iotivity Reviewed-by: Randeep Singh (cherry picked from commit af80659dbee1c692df602697d4bdac806a794cb4) Reviewed-on: https://gerrit.iotivity.org/gerrit/13651 --- resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c b/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c index 3885a92..b509b73 100644 --- a/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c +++ b/resource/csdk/connectivity/src/adapter_util/ca_adapter_net_ssl.c @@ -172,7 +172,14 @@ if (0 != (ret) && MBEDTLS_ERR_SSL_WANT_READ != (int) (ret) && { \ mbedtls_ssl_send_alert_message(&(peer)->ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, (msg)); \ } \ - SSL_RES((peer), CA_STATUS_FAILED); \ + if ((int) MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE == (int) (ret) && \ + ((int) MBEDTLS_SSL_ALERT_MSG_DECRYPTION_FAILED == (peer)->ssl.in_msg[1] || \ + (int) MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR == (peer)->ssl.in_msg[1] || \ + (int) MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE == (peer)->ssl.in_msg[1] || \ + (int) MBEDTLS_SSL_ALERT_MSG_BAD_RECORD_MAC == (peer)->ssl.in_msg[1])) \ + { \ + SSL_RES((peer), CA_DTLS_AUTHENTICATION_FAILURE); \ + } \ RemovePeerFromList(&(peer)->sep.endpoint); \ if (mutex) \ { \ -- 2.7.4