diff options
Diffstat (limited to 'thirdparty/mbedtls/library/ssl_tls.c')
| -rw-r--r-- | thirdparty/mbedtls/library/ssl_tls.c | 47 | 
1 files changed, 43 insertions, 4 deletions
| diff --git a/thirdparty/mbedtls/library/ssl_tls.c b/thirdparty/mbedtls/library/ssl_tls.c index cbec74fe8c..a40b46a1c0 100644 --- a/thirdparty/mbedtls/library/ssl_tls.c +++ b/thirdparty/mbedtls/library/ssl_tls.c @@ -2,7 +2,13 @@   *  SSLv3/TLSv1 shared functions   *   *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved - *  SPDX-License-Identifier: Apache-2.0 + *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later + * + *  This file is provided under the Apache License 2.0, or the + *  GNU General Public License v2.0 or later. + * + *  ********** + *  Apache License 2.0:   *   *  Licensed under the Apache License, Version 2.0 (the "License"); you may   *  not use this file except in compliance with the License. @@ -16,6 +22,27 @@   *  See the License for the specific language governing permissions and   *  limitations under the License.   * + *  ********** + * + *  ********** + *  GNU General Public License v2.0 or later: + * + *  This program is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 2 of the License, or + *  (at your option) any later version. + * + *  This program is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details. + * + *  You should have received a copy of the GNU General Public License along + *  with this program; if not, write to the Free Software Foundation, Inc., + *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + *  ********** + *   *  This file is part of mbed TLS (https://tls.mbed.org)   */  /* @@ -2269,10 +2296,20 @@ static int ssl_decrypt_buf( mbedtls_ssl_context *ssl )              ssl_read_memory( ssl->in_msg + ssl->in_msglen, padlen );              mbedtls_md_hmac_finish( &ssl->transform_in->md_ctx_dec, mac_expect ); -            /* Call mbedtls_md_process at least once due to cache attacks -             * that observe whether md_process() was called of not */ +            /* Dummy calls to compression function. +             * Call mbedtls_md_process at least once due to cache attacks +             * that observe whether md_process() was called of not. +             * Respect the usual start-(process|update)-finish sequence for +             * the sake of hardware accelerators that might require it. */ +            mbedtls_md_starts( &ssl->transform_in->md_ctx_dec );              for( j = 0; j < extra_run + 1; j++ )                  mbedtls_md_process( &ssl->transform_in->md_ctx_dec, ssl->in_msg ); +            { +                /* The switch statement above already checks that we're using +                 * one of MD-5, SHA-1, SHA-256 or SHA-384. */ +                unsigned char tmp[384 / 8]; +                mbedtls_md_finish( &ssl->transform_in->md_ctx_dec, tmp ); +            }              mbedtls_md_hmac_reset( &ssl->transform_in->md_ctx_dec ); @@ -7589,7 +7626,9 @@ int mbedtls_ssl_conf_alpn_protocols( mbedtls_ssl_config *conf, const char **prot          cur_len = strlen( *p );          tot_len += cur_len; -        if( cur_len == 0 || cur_len > 255 || tot_len > 65535 ) +        if( ( cur_len == 0 ) || +            ( cur_len > MBEDTLS_SSL_MAX_ALPN_NAME_LEN ) || +            ( tot_len > MBEDTLS_SSL_MAX_ALPN_LIST_LEN ) )              return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );      } |