diff --git a/src/tls.c b/src/tls.c index d5cb43ec42..fb5b766dd3 100644 --- a/src/tls.c +++ b/src/tls.c @@ -6047,7 +6047,7 @@ static int TLSX_SecureRenegotiation_Parse(WOLFSSL* ssl, const byte* input, input++; /* get past size */ /* validate client verify data */ - if (XMEMCMP(input, + if (ConstantCompare(input, ssl->secure_renegotiation->client_verify_data, TLS_FINISHED_SZ) == 0) { WOLFSSL_MSG("SCR client verify data match"); @@ -6072,15 +6072,16 @@ static int TLSX_SecureRenegotiation_Parse(WOLFSSL* ssl, const byte* input, } else if (*input == 2 * TLS_FINISHED_SZ && length == 2 * TLS_FINISHED_SZ + OPAQUE8_LEN) { + int cmpRes = 0; input++; /* get past size */ - + cmpRes |= ConstantCompare(input, + ssl->secure_renegotiation->client_verify_data, + TLS_FINISHED_SZ); + cmpRes |= ConstantCompare(input + TLS_FINISHED_SZ, + ssl->secure_renegotiation->server_verify_data, + TLS_FINISHED_SZ); /* validate client and server verify data */ - if (XMEMCMP(input, - ssl->secure_renegotiation->client_verify_data, - TLS_FINISHED_SZ) == 0 && - XMEMCMP(input + TLS_FINISHED_SZ, - ssl->secure_renegotiation->server_verify_data, - TLS_FINISHED_SZ) == 0) { + if (cmpRes == 0) { WOLFSSL_MSG("SCR client and server verify data match"); ret = 0; /* verified */ }