mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-03 20:22:59 -05:00 
			
		
		
		
	Drop support for TLS record-level compression.
Remove option MBEDTLS_ZLIB_SUPPORT. Signed-off-by: Mateusz Starzyk <mateusz.starzyk@mobica.com>
This commit is contained in:
		
							parent
							
								
									2012ed7560
								
							
						
					
					
						commit
						a3a9984a5d
					
				@ -10,10 +10,6 @@
 | 
			
		||||
#     directories. That way, a target linking to a library (using the
 | 
			
		||||
#     target_link_librairies command) inherits from the library PUBLIC include
 | 
			
		||||
#     directories and not from the PRIVATE ones.
 | 
			
		||||
#   + Note: there is currently one remaining include_directories command in the
 | 
			
		||||
#     CMake files. It is related to ZLIB support which is planned to be removed.
 | 
			
		||||
#     When the support is removed, the associated include_directories command
 | 
			
		||||
#     will be removed as well as this note.
 | 
			
		||||
# - MBEDTLS_TARGET_PREFIX: CMake targets are designed to be alterable by calling
 | 
			
		||||
#   CMake in order to avoid target name clashes, via the use of
 | 
			
		||||
#   MBEDTLS_TARGET_PREFIX. The value of this variable is prefixed to the
 | 
			
		||||
@ -43,7 +39,6 @@ endif()
 | 
			
		||||
set(MBEDTLS_DIR ${CMAKE_CURRENT_SOURCE_DIR})
 | 
			
		||||
 | 
			
		||||
option(USE_PKCS11_HELPER_LIBRARY "Build mbed TLS with the pkcs11-helper library." OFF)
 | 
			
		||||
option(ENABLE_ZLIB_SUPPORT "Build mbed TLS with zlib library." OFF)
 | 
			
		||||
 | 
			
		||||
option(ENABLE_PROGRAMS "Build mbed TLS programs." ON)
 | 
			
		||||
 | 
			
		||||
@ -250,14 +245,6 @@ else()
 | 
			
		||||
    set(LIB_INSTALL_DIR lib)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
    find_package(ZLIB)
 | 
			
		||||
 | 
			
		||||
    if(ZLIB_FOUND)
 | 
			
		||||
        include_directories(${ZLIB_INCLUDE_DIR})
 | 
			
		||||
    endif(ZLIB_FOUND)
 | 
			
		||||
endif(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
 | 
			
		||||
add_subdirectory(include)
 | 
			
		||||
 | 
			
		||||
add_subdirectory(3rdparty)
 | 
			
		||||
 | 
			
		||||
@ -2,3 +2,4 @@ API changes
 | 
			
		||||
   * Drop support for parsing SSLv2 ClientHello (MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO).
 | 
			
		||||
   * Drop support for SSLv3 (MBEDTLS_SSL_PROTO_SSL3).
 | 
			
		||||
   * Drop support for compatibility with our own previous buggy implementation of truncated HMAC (MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT).
 | 
			
		||||
   * Drop support for TLS record-level compression (MBEDTLS_ZLIB_SUPPORT).
 | 
			
		||||
 | 
			
		||||
@ -1708,31 +1708,6 @@
 | 
			
		||||
 * Comment this macro to disallow using RSASSA-PSS in certificates.
 | 
			
		||||
 */
 | 
			
		||||
#define MBEDTLS_X509_RSASSA_PSS_SUPPORT
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \def MBEDTLS_ZLIB_SUPPORT
 | 
			
		||||
 *
 | 
			
		||||
 * If set, the SSL/TLS module uses ZLIB to support compression and
 | 
			
		||||
 * decompression of packet data.
 | 
			
		||||
 *
 | 
			
		||||
 * \warning TLS-level compression MAY REDUCE SECURITY! See for example the
 | 
			
		||||
 * CRIME attack. Before enabling this option, you should examine with care if
 | 
			
		||||
 * CRIME or similar exploits may be applicable to your use case.
 | 
			
		||||
 *
 | 
			
		||||
 * \note Currently compression can't be used with DTLS.
 | 
			
		||||
 *
 | 
			
		||||
 * \deprecated This feature is deprecated and will be removed
 | 
			
		||||
 *             in the next major revision of the library.
 | 
			
		||||
 *
 | 
			
		||||
 * Used in: library/ssl_tls.c
 | 
			
		||||
 *          library/ssl_cli.c
 | 
			
		||||
 *          library/ssl_srv.c
 | 
			
		||||
 *
 | 
			
		||||
 * This feature requires zlib library and headers to be present.
 | 
			
		||||
 *
 | 
			
		||||
 * Uncomment to enable use of ZLIB
 | 
			
		||||
 */
 | 
			
		||||
//#define MBEDTLS_ZLIB_SUPPORT
 | 
			
		||||
/* \} name SECTION: mbed TLS feature support */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 | 
			
		||||
@ -2147,31 +2147,6 @@
 | 
			
		||||
 * Comment this macro to disallow using RSASSA-PSS in certificates.
 | 
			
		||||
 */
 | 
			
		||||
#define MBEDTLS_X509_RSASSA_PSS_SUPPORT
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \def MBEDTLS_ZLIB_SUPPORT
 | 
			
		||||
 *
 | 
			
		||||
 * If set, the SSL/TLS module uses ZLIB to support compression and
 | 
			
		||||
 * decompression of packet data.
 | 
			
		||||
 *
 | 
			
		||||
 * \warning TLS-level compression MAY REDUCE SECURITY! See for example the
 | 
			
		||||
 * CRIME attack. Before enabling this option, you should examine with care if
 | 
			
		||||
 * CRIME or similar exploits may be applicable to your use case.
 | 
			
		||||
 *
 | 
			
		||||
 * \note Currently compression can't be used with DTLS.
 | 
			
		||||
 *
 | 
			
		||||
 * \deprecated This feature is deprecated and will be removed
 | 
			
		||||
 *             in the next major revision of the library.
 | 
			
		||||
 *
 | 
			
		||||
 * Used in: library/ssl_tls.c
 | 
			
		||||
 *          library/ssl_cli.c
 | 
			
		||||
 *          library/ssl_srv.c
 | 
			
		||||
 *
 | 
			
		||||
 * This feature requires zlib library and headers to be present.
 | 
			
		||||
 *
 | 
			
		||||
 * Uncomment to enable use of ZLIB
 | 
			
		||||
 */
 | 
			
		||||
//#define MBEDTLS_ZLIB_SUPPORT
 | 
			
		||||
/* \} name SECTION: mbed TLS feature support */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 | 
			
		||||
@ -51,19 +51,6 @@
 | 
			
		||||
#include "mbedtls/ecdh.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_DEPRECATED_WARNING)
 | 
			
		||||
#warning "Record compression support via MBEDTLS_ZLIB_SUPPORT is deprecated and will be removed in the next major revision of the library"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_DEPRECATED_REMOVED)
 | 
			
		||||
#error "Record compression support via MBEDTLS_ZLIB_SUPPORT is deprecated and cannot be used if MBEDTLS_DEPRECATED_REMOVED is set"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "zlib.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_HAVE_TIME)
 | 
			
		||||
#include "mbedtls/platform_time.h"
 | 
			
		||||
#endif
 | 
			
		||||
@ -107,7 +94,6 @@
 | 
			
		||||
#define MBEDTLS_ERR_SSL_ALLOC_FAILED                      -0x7F00  /**< Memory allocation failed */
 | 
			
		||||
#define MBEDTLS_ERR_SSL_HW_ACCEL_FAILED                   -0x7F80  /**< Hardware acceleration function returned with error */
 | 
			
		||||
#define MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH              -0x6F80  /**< Hardware acceleration function skipped / left alone data */
 | 
			
		||||
#define MBEDTLS_ERR_SSL_COMPRESSION_FAILED                -0x6F00  /**< Processing of the compression / decompression failed */
 | 
			
		||||
#define MBEDTLS_ERR_SSL_BAD_HS_PROTOCOL_VERSION           -0x6E80  /**< Handshake protocol not within min/max boundaries */
 | 
			
		||||
#define MBEDTLS_ERR_SSL_BAD_HS_NEW_SESSION_TICKET         -0x6E00  /**< Processing of the NewSessionTicket handshake message failed. */
 | 
			
		||||
#define MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED            -0x6D80  /**< Session ticket has expired. */
 | 
			
		||||
@ -183,7 +169,6 @@
 | 
			
		||||
#define MBEDTLS_SSL_ETM_ENABLED                 1
 | 
			
		||||
 | 
			
		||||
#define MBEDTLS_SSL_COMPRESS_NULL               0
 | 
			
		||||
#define MBEDTLS_SSL_COMPRESS_DEFLATE            1
 | 
			
		||||
 | 
			
		||||
#define MBEDTLS_SSL_VERIFY_NONE                 0
 | 
			
		||||
#define MBEDTLS_SSL_VERIFY_OPTIONAL             1
 | 
			
		||||
@ -1334,9 +1319,6 @@ struct mbedtls_ssl_context
 | 
			
		||||
    uint16_t mtu;               /*!< path mtu, used to fragment outgoing messages */
 | 
			
		||||
#endif /* MBEDTLS_SSL_PROTO_DTLS */
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    unsigned char *compress_buf;        /*!<  zlib data buffer        */
 | 
			
		||||
#endif /* MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
#if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING)
 | 
			
		||||
    signed char split_done;     /*!< current record already splitted? */
 | 
			
		||||
#endif /* MBEDTLS_SSL_CBC_RECORD_SPLITTING */
 | 
			
		||||
@ -1497,9 +1479,8 @@ int mbedtls_ssl_setup( mbedtls_ssl_context *ssl,
 | 
			
		||||
 *                 pointers and data.
 | 
			
		||||
 *
 | 
			
		||||
 * \param ssl      SSL context
 | 
			
		||||
 * \return         0 if successful, or MBEDTLS_ERR_SSL_ALLOC_FAILED,
 | 
			
		||||
                   MBEDTLS_ERR_SSL_HW_ACCEL_FAILED or
 | 
			
		||||
 *                 MBEDTLS_ERR_SSL_COMPRESSION_FAILED
 | 
			
		||||
 * \return         0 if successful, or MBEDTLS_ERR_SSL_ALLOC_FAILED or
 | 
			
		||||
                   MBEDTLS_ERR_SSL_HW_ACCEL_FAILED
 | 
			
		||||
 */
 | 
			
		||||
int mbedtls_ssl_session_reset( mbedtls_ssl_context *ssl );
 | 
			
		||||
 | 
			
		||||
@ -1814,9 +1795,6 @@ int mbedtls_ssl_get_peer_cid( mbedtls_ssl_context *ssl,
 | 
			
		||||
 * \note           Values lower than the current record layer expansion will
 | 
			
		||||
 *                 result in an error when trying to send data.
 | 
			
		||||
 *
 | 
			
		||||
 * \note           Using record compression together with a non-zero MTU value
 | 
			
		||||
 *                 will result in an error when trying to send data.
 | 
			
		||||
 *
 | 
			
		||||
 * \param ssl      SSL context
 | 
			
		||||
 * \param mtu      Value of the path MTU in bytes
 | 
			
		||||
 */
 | 
			
		||||
@ -3711,14 +3689,9 @@ const char *mbedtls_ssl_get_version( const mbedtls_ssl_context *ssl );
 | 
			
		||||
 * \brief          Return the (maximum) number of bytes added by the record
 | 
			
		||||
 *                 layer: header + encryption/MAC overhead (inc. padding)
 | 
			
		||||
 *
 | 
			
		||||
 * \note           This function is not available (always returns an error)
 | 
			
		||||
 *                 when record compression is enabled.
 | 
			
		||||
 *
 | 
			
		||||
 * \param ssl      SSL context
 | 
			
		||||
 *
 | 
			
		||||
 * \return         Current maximum record expansion in bytes, or
 | 
			
		||||
 *                 MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE if compression is
 | 
			
		||||
 *                 enabled, which makes expansion much less predictable
 | 
			
		||||
 * \return         Current maximum record expansion in bytes
 | 
			
		||||
 */
 | 
			
		||||
int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl );
 | 
			
		||||
 | 
			
		||||
@ -3795,9 +3768,6 @@ MBEDTLS_DEPRECATED size_t mbedtls_ssl_get_max_frag_len(
 | 
			
		||||
 *                 to the caller to call \c mbedtls_ssl_write() again in
 | 
			
		||||
 *                 order to send the remaining bytes if any.
 | 
			
		||||
 *
 | 
			
		||||
 * \note           This function is not available (always returns an error)
 | 
			
		||||
 *                 when record compression is enabled.
 | 
			
		||||
 *
 | 
			
		||||
 * \sa             mbedtls_ssl_set_mtu()
 | 
			
		||||
 * \sa             mbedtls_ssl_get_output_max_frag_len()
 | 
			
		||||
 * \sa             mbedtls_ssl_get_input_max_frag_len()
 | 
			
		||||
 | 
			
		||||
@ -127,15 +127,8 @@
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Allow extra bytes for record, authentication and encryption overhead:
 | 
			
		||||
 * counter (8) + header (5) + IV(16) + MAC (16-48) + padding (0-256)
 | 
			
		||||
 * and allow for a maximum of 1024 of compression expansion if
 | 
			
		||||
 * enabled.
 | 
			
		||||
 * counter (8) + header (5) + IV(16) + MAC (16-48) + padding (0-256).
 | 
			
		||||
 */
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
#define MBEDTLS_SSL_COMPRESSION_ADD          1024
 | 
			
		||||
#else
 | 
			
		||||
#define MBEDTLS_SSL_COMPRESSION_ADD             0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* This macro determines whether CBC is supported. */
 | 
			
		||||
#if defined(MBEDTLS_CIPHER_MODE_CBC) &&                               \
 | 
			
		||||
@ -185,8 +178,7 @@
 | 
			
		||||
#define MBEDTLS_SSL_MAX_CID_EXPANSION        0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define MBEDTLS_SSL_PAYLOAD_OVERHEAD ( MBEDTLS_SSL_COMPRESSION_ADD +    \
 | 
			
		||||
                                       MBEDTLS_MAX_IV_LENGTH +          \
 | 
			
		||||
#define MBEDTLS_SSL_PAYLOAD_OVERHEAD ( MBEDTLS_MAX_IV_LENGTH +          \
 | 
			
		||||
                                       MBEDTLS_SSL_MAC_ADD +            \
 | 
			
		||||
                                       MBEDTLS_SSL_PADDING_ADD +        \
 | 
			
		||||
                                       MBEDTLS_SSL_MAX_CID_EXPANSION    \
 | 
			
		||||
@ -292,15 +284,6 @@ static inline size_t mbedtls_ssl_get_input_buflen( const mbedtls_ssl_context *ct
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef MBEDTLS_ZLIB_SUPPORT
 | 
			
		||||
/* Compression buffer holds both IN and OUT buffers, so should be size of the larger */
 | 
			
		||||
#define MBEDTLS_SSL_COMPRESS_BUFFER_LEN (                               \
 | 
			
		||||
        ( MBEDTLS_SSL_IN_BUFFER_LEN > MBEDTLS_SSL_OUT_BUFFER_LEN )      \
 | 
			
		||||
        ? MBEDTLS_SSL_IN_BUFFER_LEN                                     \
 | 
			
		||||
        : MBEDTLS_SSL_OUT_BUFFER_LEN                                    \
 | 
			
		||||
        )
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * TLS extension flags (for extensions with outgoing ServerHello content
 | 
			
		||||
 * that need it (e.g. for RENEGOTIATION_INFO the server already knows because
 | 
			
		||||
@ -750,14 +733,6 @@ struct mbedtls_ssl_transform
 | 
			
		||||
    unsigned char out_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ];
 | 
			
		||||
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Session specific compression layer
 | 
			
		||||
     */
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    z_stream ctx_deflate;               /*!<  compression context     */
 | 
			
		||||
    z_stream ctx_inflate;               /*!<  decompression context   */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
 | 
			
		||||
    /* We need the Hello random bytes in order to re-derive keys from the
 | 
			
		||||
     * Master Secret and other session info, see ssl_populate_transform() */
 | 
			
		||||
 | 
			
		||||
@ -133,10 +133,6 @@ if(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
    set(libs ${libs} pkcs11-helper)
 | 
			
		||||
endif(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
    set(libs ${libs} ${ZLIB_LIBRARIES})
 | 
			
		||||
endif(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
 | 
			
		||||
if(LINK_WITH_PTHREAD)
 | 
			
		||||
    set(libs ${libs} pthread)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
@ -470,8 +470,6 @@ const char * mbedtls_high_level_strerr( int error_code )
 | 
			
		||||
            return( "SSL - Hardware acceleration function returned with error" );
 | 
			
		||||
        case -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH):
 | 
			
		||||
            return( "SSL - Hardware acceleration function skipped / left alone data" );
 | 
			
		||||
        case -(MBEDTLS_ERR_SSL_COMPRESSION_FAILED):
 | 
			
		||||
            return( "SSL - Processing of the compression / decompression failed" );
 | 
			
		||||
        case -(MBEDTLS_ERR_SSL_BAD_HS_PROTOCOL_VERSION):
 | 
			
		||||
            return( "SSL - Handshake protocol not within min/max boundaries" );
 | 
			
		||||
        case -(MBEDTLS_ERR_SSL_BAD_HS_NEW_SESSION_TICKET):
 | 
			
		||||
 | 
			
		||||
@ -979,7 +979,6 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl )
 | 
			
		||||
    unsigned char *p, *q;
 | 
			
		||||
    const unsigned char *end;
 | 
			
		||||
 | 
			
		||||
    unsigned char offer_compress;
 | 
			
		||||
    const int *ciphersuites;
 | 
			
		||||
    const mbedtls_ssl_ciphersuite_t *ciphersuite_info;
 | 
			
		||||
#if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \
 | 
			
		||||
@ -1228,45 +1227,13 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl )
 | 
			
		||||
    *q++ = (unsigned char)( n >> 7 );
 | 
			
		||||
    *q++ = (unsigned char)( n << 1 );
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    offer_compress = 1;
 | 
			
		||||
#else
 | 
			
		||||
    offer_compress = 0;
 | 
			
		||||
#endif
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress len.: %d", 1 ) );
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress alg.: %d",
 | 
			
		||||
                        MBEDTLS_SSL_COMPRESS_NULL ) );
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * We don't support compression with DTLS right now: if many records come
 | 
			
		||||
     * in the same datagram, uncompressing one could overwrite the next one.
 | 
			
		||||
     * We don't want to add complexity for handling that case unless there is
 | 
			
		||||
     * an actual need for it.
 | 
			
		||||
     */
 | 
			
		||||
#if defined(MBEDTLS_SSL_PROTO_DTLS)
 | 
			
		||||
    if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
 | 
			
		||||
        offer_compress = 0;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if( offer_compress )
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress len.: %d", 2 ) );
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress alg.: %d %d",
 | 
			
		||||
                                    MBEDTLS_SSL_COMPRESS_DEFLATE,
 | 
			
		||||
                                    MBEDTLS_SSL_COMPRESS_NULL ) );
 | 
			
		||||
 | 
			
		||||
        MBEDTLS_SSL_CHK_BUF_PTR( p, end, 3 );
 | 
			
		||||
        *p++ = 2;
 | 
			
		||||
        *p++ = MBEDTLS_SSL_COMPRESS_DEFLATE;
 | 
			
		||||
        *p++ = MBEDTLS_SSL_COMPRESS_NULL;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress len.: %d", 1 ) );
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress alg.: %d",
 | 
			
		||||
                            MBEDTLS_SSL_COMPRESS_NULL ) );
 | 
			
		||||
 | 
			
		||||
        MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 );
 | 
			
		||||
        *p++ = 1;
 | 
			
		||||
        *p++ = MBEDTLS_SSL_COMPRESS_NULL;
 | 
			
		||||
    }
 | 
			
		||||
    MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 );
 | 
			
		||||
    *p++ = 1;
 | 
			
		||||
    *p++ = MBEDTLS_SSL_COMPRESS_NULL;
 | 
			
		||||
 | 
			
		||||
    /* First write extensions, then the total length */
 | 
			
		||||
 | 
			
		||||
@ -2048,9 +2015,6 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl )
 | 
			
		||||
    size_t ext_len;
 | 
			
		||||
    unsigned char *buf, *ext;
 | 
			
		||||
    unsigned char comp;
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    int accept_comp;
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(MBEDTLS_SSL_RENEGOTIATION)
 | 
			
		||||
    int renegotiation_info_seen = 0;
 | 
			
		||||
#endif
 | 
			
		||||
@ -2219,20 +2183,7 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl )
 | 
			
		||||
     */
 | 
			
		||||
    comp = buf[37 + n];
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    /* See comments in ssl_write_client_hello() */
 | 
			
		||||
#if defined(MBEDTLS_SSL_PROTO_DTLS)
 | 
			
		||||
    if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
 | 
			
		||||
        accept_comp = 0;
 | 
			
		||||
    else
 | 
			
		||||
#endif
 | 
			
		||||
        accept_comp = 1;
 | 
			
		||||
 | 
			
		||||
    if( comp != MBEDTLS_SSL_COMPRESS_NULL &&
 | 
			
		||||
        ( comp != MBEDTLS_SSL_COMPRESS_DEFLATE || accept_comp == 0 ) )
 | 
			
		||||
#else /* MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
    if( comp != MBEDTLS_SSL_COMPRESS_NULL )
 | 
			
		||||
#endif/* MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 1,
 | 
			
		||||
            ( "server hello, bad compression: %d", comp ) );
 | 
			
		||||
@ -2353,9 +2304,6 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl )
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if( comp != MBEDTLS_SSL_COMPRESS_NULL
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
        && comp != MBEDTLS_SSL_COMPRESS_DEFLATE
 | 
			
		||||
#endif
 | 
			
		||||
      )
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) );
 | 
			
		||||
 | 
			
		||||
@ -1758,115 +1758,6 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl,
 | 
			
		||||
#undef MAC_PLAINTEXT
 | 
			
		||||
#undef MAC_CIPHERTEXT
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
/*
 | 
			
		||||
 * Compression/decompression functions
 | 
			
		||||
 */
 | 
			
		||||
static int ssl_compress_buf( mbedtls_ssl_context *ssl )
 | 
			
		||||
{
 | 
			
		||||
    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
 | 
			
		||||
    unsigned char *msg_post = ssl->out_msg;
 | 
			
		||||
    ptrdiff_t bytes_written = ssl->out_msg - ssl->out_buf;
 | 
			
		||||
    size_t len_pre = ssl->out_msglen;
 | 
			
		||||
    unsigned char *msg_pre = ssl->compress_buf;
 | 
			
		||||
#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH)
 | 
			
		||||
    size_t out_buf_len = ssl->out_buf_len;
 | 
			
		||||
#else
 | 
			
		||||
    size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> compress buf" ) );
 | 
			
		||||
 | 
			
		||||
    if( len_pre == 0 )
 | 
			
		||||
        return( 0 );
 | 
			
		||||
 | 
			
		||||
    memcpy( msg_pre, ssl->out_msg, len_pre );
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 3, ( "before compression: msglen = %d, ",
 | 
			
		||||
                   ssl->out_msglen ) );
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_BUF( 4, "before compression: output payload",
 | 
			
		||||
                   ssl->out_msg, ssl->out_msglen );
 | 
			
		||||
 | 
			
		||||
    ssl->transform_out->ctx_deflate.next_in = msg_pre;
 | 
			
		||||
    ssl->transform_out->ctx_deflate.avail_in = len_pre;
 | 
			
		||||
    ssl->transform_out->ctx_deflate.next_out = msg_post;
 | 
			
		||||
    ssl->transform_out->ctx_deflate.avail_out = out_buf_len - bytes_written;
 | 
			
		||||
 | 
			
		||||
    ret = deflate( &ssl->transform_out->ctx_deflate, Z_SYNC_FLUSH );
 | 
			
		||||
    if( ret != Z_OK )
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 1, ( "failed to perform compression (%d)", ret ) );
 | 
			
		||||
        return( MBEDTLS_ERR_SSL_COMPRESSION_FAILED );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ssl->out_msglen = out_buf_len -
 | 
			
		||||
                      ssl->transform_out->ctx_deflate.avail_out - bytes_written;
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 3, ( "after compression: msglen = %d, ",
 | 
			
		||||
                   ssl->out_msglen ) );
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_BUF( 4, "after compression: output payload",
 | 
			
		||||
                   ssl->out_msg, ssl->out_msglen );
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= compress buf" ) );
 | 
			
		||||
 | 
			
		||||
    return( 0 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int ssl_decompress_buf( mbedtls_ssl_context *ssl )
 | 
			
		||||
{
 | 
			
		||||
    int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
 | 
			
		||||
    unsigned char *msg_post = ssl->in_msg;
 | 
			
		||||
    ptrdiff_t header_bytes = ssl->in_msg - ssl->in_buf;
 | 
			
		||||
    size_t len_pre = ssl->in_msglen;
 | 
			
		||||
    unsigned char *msg_pre = ssl->compress_buf;
 | 
			
		||||
#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH)
 | 
			
		||||
    size_t in_buf_len = ssl->in_buf_len;
 | 
			
		||||
#else
 | 
			
		||||
    size_t in_buf_len = MBEDTLS_SSL_IN_BUFFER_LEN;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> decompress buf" ) );
 | 
			
		||||
 | 
			
		||||
    if( len_pre == 0 )
 | 
			
		||||
        return( 0 );
 | 
			
		||||
 | 
			
		||||
    memcpy( msg_pre, ssl->in_msg, len_pre );
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 3, ( "before decompression: msglen = %d, ",
 | 
			
		||||
                   ssl->in_msglen ) );
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_BUF( 4, "before decompression: input payload",
 | 
			
		||||
                   ssl->in_msg, ssl->in_msglen );
 | 
			
		||||
 | 
			
		||||
    ssl->transform_in->ctx_inflate.next_in = msg_pre;
 | 
			
		||||
    ssl->transform_in->ctx_inflate.avail_in = len_pre;
 | 
			
		||||
    ssl->transform_in->ctx_inflate.next_out = msg_post;
 | 
			
		||||
    ssl->transform_in->ctx_inflate.avail_out = in_buf_len - header_bytes;
 | 
			
		||||
 | 
			
		||||
    ret = inflate( &ssl->transform_in->ctx_inflate, Z_SYNC_FLUSH );
 | 
			
		||||
    if( ret != Z_OK )
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 1, ( "failed to perform decompression (%d)", ret ) );
 | 
			
		||||
        return( MBEDTLS_ERR_SSL_COMPRESSION_FAILED );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ssl->in_msglen = in_buf_len -
 | 
			
		||||
                     ssl->transform_in->ctx_inflate.avail_out - header_bytes;
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 3, ( "after decompression: msglen = %d, ",
 | 
			
		||||
                   ssl->in_msglen ) );
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_BUF( 4, "after decompression: input payload",
 | 
			
		||||
                   ssl->in_msg, ssl->in_msglen );
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= decompress buf" ) );
 | 
			
		||||
 | 
			
		||||
    return( 0 );
 | 
			
		||||
}
 | 
			
		||||
#endif /* MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Fill the input message buffer by appending data to it.
 | 
			
		||||
 * The amount of data already fetched is in ssl->in_left.
 | 
			
		||||
@ -2693,20 +2584,6 @@ int mbedtls_ssl_write_record( mbedtls_ssl_context *ssl, uint8_t force_flush )
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write record" ) );
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    if( ssl->transform_out != NULL &&
 | 
			
		||||
        ssl->session_out->compression == MBEDTLS_SSL_COMPRESS_DEFLATE )
 | 
			
		||||
    {
 | 
			
		||||
        if( ( ret = ssl_compress_buf( ssl ) ) != 0 )
 | 
			
		||||
        {
 | 
			
		||||
            MBEDTLS_SSL_DEBUG_RET( 1, "ssl_compress_buf", ret );
 | 
			
		||||
            return( ret );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        len = ssl->out_msglen;
 | 
			
		||||
    }
 | 
			
		||||
#endif /*MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_SSL_HW_RECORD_ACCEL)
 | 
			
		||||
    if( mbedtls_ssl_hw_record_write != NULL )
 | 
			
		||||
    {
 | 
			
		||||
@ -4745,26 +4622,6 @@ static int ssl_get_next_record( mbedtls_ssl_context *ssl )
 | 
			
		||||
    ssl->in_len[0] = (unsigned char)( rec.data_len >> 8 );
 | 
			
		||||
    ssl->in_len[1] = (unsigned char)( rec.data_len      );
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    if( ssl->transform_in != NULL &&
 | 
			
		||||
        ssl->session_in->compression == MBEDTLS_SSL_COMPRESS_DEFLATE )
 | 
			
		||||
    {
 | 
			
		||||
        if( ( ret = ssl_decompress_buf( ssl ) ) != 0 )
 | 
			
		||||
        {
 | 
			
		||||
            MBEDTLS_SSL_DEBUG_RET( 1, "ssl_decompress_buf", ret );
 | 
			
		||||
            return( ret );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* Check actual (decompress) record content length against
 | 
			
		||||
         * configured maximum. */
 | 
			
		||||
        if( ssl->in_msglen > MBEDTLS_SSL_IN_CONTENT_LEN )
 | 
			
		||||
        {
 | 
			
		||||
            MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad message length" ) );
 | 
			
		||||
            return( MBEDTLS_ERR_SSL_INVALID_RECORD );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#endif /* MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
 | 
			
		||||
    return( 0 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5221,11 +5078,6 @@ int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl )
 | 
			
		||||
    if( transform == NULL )
 | 
			
		||||
        return( (int) out_hdr_len );
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    if( ssl->session_out->compression != MBEDTLS_SSL_COMPRESS_NULL )
 | 
			
		||||
        return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    switch( mbedtls_cipher_get_cipher_mode( &transform->cipher_ctx_enc ) )
 | 
			
		||||
    {
 | 
			
		||||
        case MBEDTLS_MODE_GCM:
 | 
			
		||||
@ -5789,11 +5641,6 @@ void mbedtls_ssl_transform_free( mbedtls_ssl_transform *transform )
 | 
			
		||||
    if( transform == NULL )
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    deflateEnd( &transform->ctx_deflate );
 | 
			
		||||
    inflateEnd( &transform->ctx_inflate );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    mbedtls_cipher_free( &transform->cipher_ctx_enc );
 | 
			
		||||
    mbedtls_cipher_free( &transform->cipher_ctx_dec );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1575,17 +1575,6 @@ read_record_header:
 | 
			
		||||
                      buf + comp_offset + 1, comp_len );
 | 
			
		||||
 | 
			
		||||
    ssl->session_negotiate->compression = MBEDTLS_SSL_COMPRESS_NULL;
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    for( i = 0; i < comp_len; ++i )
 | 
			
		||||
    {
 | 
			
		||||
        if( buf[comp_offset + 1 + i] == MBEDTLS_SSL_COMPRESS_DEFLATE )
 | 
			
		||||
        {
 | 
			
		||||
            ssl->session_negotiate->compression = MBEDTLS_SSL_COMPRESS_DEFLATE;
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    /* See comments in ssl_write_client_hello() */
 | 
			
		||||
#if defined(MBEDTLS_SSL_PROTO_DTLS)
 | 
			
		||||
    if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
 | 
			
		||||
 | 
			
		||||
@ -813,9 +813,6 @@ static int ssl_populate_transform( mbedtls_ssl_transform *transform,
 | 
			
		||||
                                   int trunc_hmac,
 | 
			
		||||
#endif /* MBEDTLS_SSL_TRUNCATED_HMAC */
 | 
			
		||||
#endif /* MBEDTLS_SSL_SOME_MODES_USE_MAC */
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
                                   int compression,
 | 
			
		||||
#endif
 | 
			
		||||
                                   ssl_tls_prf_t tls_prf,
 | 
			
		||||
                                   const unsigned char randbytes[64],
 | 
			
		||||
                                   int minor_ver,
 | 
			
		||||
@ -1300,26 +1297,6 @@ static int ssl_populate_transform( mbedtls_ssl_transform *transform,
 | 
			
		||||
#endif /* MBEDTLS_CIPHER_MODE_CBC */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /* Initialize Zlib contexts */
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    if( compression == MBEDTLS_SSL_COMPRESS_DEFLATE )
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 3, ( "Initializing zlib states" ) );
 | 
			
		||||
 | 
			
		||||
        memset( &transform->ctx_deflate, 0, sizeof( transform->ctx_deflate ) );
 | 
			
		||||
        memset( &transform->ctx_inflate, 0, sizeof( transform->ctx_inflate ) );
 | 
			
		||||
 | 
			
		||||
        if( deflateInit( &transform->ctx_deflate,
 | 
			
		||||
                         Z_DEFAULT_COMPRESSION )   != Z_OK ||
 | 
			
		||||
            inflateInit( &transform->ctx_inflate ) != Z_OK )
 | 
			
		||||
        {
 | 
			
		||||
            MBEDTLS_SSL_DEBUG_MSG( 1, ( "Failed to initialize compression" ) );
 | 
			
		||||
            ret = MBEDTLS_ERR_SSL_COMPRESSION_FAILED;
 | 
			
		||||
            goto end;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#endif /* MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
 | 
			
		||||
end:
 | 
			
		||||
    mbedtls_platform_zeroize( keyblk, sizeof( keyblk ) );
 | 
			
		||||
    return( ret );
 | 
			
		||||
@ -1572,9 +1549,6 @@ int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl )
 | 
			
		||||
                                  ssl->session_negotiate->trunc_hmac,
 | 
			
		||||
#endif /* MBEDTLS_SSL_TRUNCATED_HMAC */
 | 
			
		||||
#endif /* MBEDTLS_SSL_SOME_MODES_USE_MAC */
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
                                  ssl->session_negotiate->compression,
 | 
			
		||||
#endif
 | 
			
		||||
                                  ssl->handshake->tls_prf,
 | 
			
		||||
                                  ssl->handshake->randbytes,
 | 
			
		||||
                                  ssl->minor_ver,
 | 
			
		||||
@ -1590,22 +1564,6 @@ int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl )
 | 
			
		||||
    mbedtls_platform_zeroize( ssl->handshake->randbytes,
 | 
			
		||||
                      sizeof( ssl->handshake->randbytes ) );
 | 
			
		||||
 | 
			
		||||
    /* Allocate compression buffer */
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    if( ssl->session_negotiate->compression == MBEDTLS_SSL_COMPRESS_DEFLATE &&
 | 
			
		||||
        ssl->compress_buf == NULL )
 | 
			
		||||
    {
 | 
			
		||||
        MBEDTLS_SSL_DEBUG_MSG( 3, ( "Allocating compression buffer" ) );
 | 
			
		||||
        ssl->compress_buf = mbedtls_calloc( 1, MBEDTLS_SSL_COMPRESS_BUFFER_LEN );
 | 
			
		||||
        if( ssl->compress_buf == NULL )
 | 
			
		||||
        {
 | 
			
		||||
            MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc(%d bytes) failed",
 | 
			
		||||
                                        MBEDTLS_SSL_COMPRESS_BUFFER_LEN ) );
 | 
			
		||||
            return( MBEDTLS_ERR_SSL_ALLOC_FAILED );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= derive keys" ) );
 | 
			
		||||
 | 
			
		||||
    return( 0 );
 | 
			
		||||
@ -6288,9 +6246,6 @@ static int ssl_context_load( mbedtls_ssl_context *ssl,
 | 
			
		||||
                  ssl->session->trunc_hmac,
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* MBEDTLS_SSL_SOME_MODES_USE_MAC */
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
                  ssl->session->compression,
 | 
			
		||||
#endif
 | 
			
		||||
                  ssl_tls12prf_from_cs( ssl->session->ciphersuite ),
 | 
			
		||||
                  p, /* currently pointing to randbytes */
 | 
			
		||||
                  MBEDTLS_SSL_MINOR_VERSION_3, /* (D)TLS 1.2 is forced */
 | 
			
		||||
@ -6506,14 +6461,6 @@ void mbedtls_ssl_free( mbedtls_ssl_context *ssl )
 | 
			
		||||
        ssl->in_buf = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    if( ssl->compress_buf != NULL )
 | 
			
		||||
    {
 | 
			
		||||
        mbedtls_platform_zeroize( ssl->compress_buf, MBEDTLS_SSL_COMPRESS_BUFFER_LEN );
 | 
			
		||||
        mbedtls_free( ssl->compress_buf );
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if( ssl->transform )
 | 
			
		||||
    {
 | 
			
		||||
        mbedtls_ssl_transform_free( ssl->transform );
 | 
			
		||||
 | 
			
		||||
@ -597,9 +597,6 @@ static const char * const features[] = {
 | 
			
		||||
#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
 | 
			
		||||
    "MBEDTLS_X509_RSASSA_PSS_SUPPORT",
 | 
			
		||||
#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    "MBEDTLS_ZLIB_SUPPORT",
 | 
			
		||||
#endif /* MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
#if defined(MBEDTLS_AESNI_C)
 | 
			
		||||
    "MBEDTLS_AESNI_C",
 | 
			
		||||
#endif /* MBEDTLS_AESNI_C */
 | 
			
		||||
 | 
			
		||||
@ -50,11 +50,6 @@ EXEXT=
 | 
			
		||||
SHARED_SUFFIX=
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Zlib shared library extensions:
 | 
			
		||||
ifdef ZLIB
 | 
			
		||||
LOCAL_LDFLAGS += -lz
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
APPS = \
 | 
			
		||||
	aes/aescrypt2$(EXEXT) \
 | 
			
		||||
	aes/crypt_and_hash$(EXEXT) \
 | 
			
		||||
 | 
			
		||||
@ -6,10 +6,6 @@ if(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
    set(libs ${libs} pkcs11-helper)
 | 
			
		||||
endif(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
    set(libs ${libs} ${ZLIB_LIBRARIES})
 | 
			
		||||
endif(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
 | 
			
		||||
find_library(FUZZINGENGINE_LIB FuzzingEngine)
 | 
			
		||||
if(FUZZINGENGINE_LIB)
 | 
			
		||||
    project(fuzz CXX)
 | 
			
		||||
 | 
			
		||||
@ -23,11 +23,6 @@ SHARED_SUFFIX=
 | 
			
		||||
# python2 for POSIX since FreeBSD has only python2 as default.
 | 
			
		||||
PYTHON ?= python2
 | 
			
		||||
 | 
			
		||||
# Zlib shared library extensions:
 | 
			
		||||
ifdef ZLIB
 | 
			
		||||
LOCAL_LDFLAGS += -lz
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifdef FUZZINGENGINE
 | 
			
		||||
LOCAL_LDFLAGS += -lFuzzingEngine
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
@ -9,10 +9,6 @@ if(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
    set(libs ${libs} pkcs11-helper)
 | 
			
		||||
endif(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
    set(libs ${libs} ${ZLIB_LIBRARIES})
 | 
			
		||||
endif(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
 | 
			
		||||
set(executables
 | 
			
		||||
    dtls_client
 | 
			
		||||
    dtls_server
 | 
			
		||||
 | 
			
		||||
@ -6,10 +6,6 @@ if(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
    set(libs ${libs} pkcs11-helper)
 | 
			
		||||
endif(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
    set(libs ${libs} ${ZLIB_LIBRARIES})
 | 
			
		||||
endif(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
 | 
			
		||||
set(executables_libs
 | 
			
		||||
    selftest
 | 
			
		||||
    udp_proxy
 | 
			
		||||
 | 
			
		||||
@ -1649,14 +1649,6 @@ int query_config( const char *config )
 | 
			
		||||
    }
 | 
			
		||||
#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_ZLIB_SUPPORT)
 | 
			
		||||
    if( strcmp( "MBEDTLS_ZLIB_SUPPORT", config ) == 0 )
 | 
			
		||||
    {
 | 
			
		||||
        MACRO_EXPANSION_TO_STR( MBEDTLS_ZLIB_SUPPORT );
 | 
			
		||||
        return( 0 );
 | 
			
		||||
    }
 | 
			
		||||
#endif /* MBEDTLS_ZLIB_SUPPORT */
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_AESNI_C)
 | 
			
		||||
    if( strcmp( "MBEDTLS_AESNI_C", config ) == 0 )
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
@ -6,10 +6,6 @@ if(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
    set(libs ${libs} pkcs11-helper)
 | 
			
		||||
endif(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
    set(libs ${libs} ${ZLIB_LIBRARIES})
 | 
			
		||||
endif(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
 | 
			
		||||
set(executables
 | 
			
		||||
    cert_app
 | 
			
		||||
    cert_req
 | 
			
		||||
 | 
			
		||||
@ -198,7 +198,6 @@ EXCLUDE_FROM_FULL = frozenset([
 | 
			
		||||
    'MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND', # build dependency (valgrind headers)
 | 
			
		||||
    'MBEDTLS_TEST_NULL_ENTROPY', # removes a feature
 | 
			
		||||
    'MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION', # influences the use of X.509 in TLS
 | 
			
		||||
    'MBEDTLS_ZLIB_SUPPORT', # build dependency (libz)
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
def is_seamless_alt(name):
 | 
			
		||||
 | 
			
		||||
@ -13,10 +13,6 @@ if(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
    set(libs ${libs} pkcs11-helper)
 | 
			
		||||
endif(USE_PKCS11_HELPER_LIBRARY)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
    set(libs ${libs} ${ZLIB_LIBRARIES})
 | 
			
		||||
endif(ENABLE_ZLIB_SUPPORT)
 | 
			
		||||
 | 
			
		||||
if(NOT MBEDTLS_PYTHON_EXECUTABLE)
 | 
			
		||||
    message(FATAL_ERROR "Cannot build test suites without Python 3")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
@ -58,11 +58,6 @@ SHARED_SUFFIX=
 | 
			
		||||
PYTHON ?= python2
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Zlib shared library extensions:
 | 
			
		||||
ifdef ZLIB
 | 
			
		||||
LOCAL_LDFLAGS += -lz
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# A test application is built for each suites/test_suite_*.data file.
 | 
			
		||||
# Application name is same as .data file's base name and can be
 | 
			
		||||
# constructed by stripping path 'suites/' and extension .data.
 | 
			
		||||
 | 
			
		||||
@ -798,45 +798,6 @@ component_test_psa_crypto_key_id_encodes_owner () {
 | 
			
		||||
    make test
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
component_test_zlib_make() {
 | 
			
		||||
    msg "build: zlib enabled, make"
 | 
			
		||||
    scripts/config.py set MBEDTLS_ZLIB_SUPPORT
 | 
			
		||||
    make ZLIB=1 CFLAGS='-Werror -O1'
 | 
			
		||||
 | 
			
		||||
    msg "test: main suites (zlib, make)"
 | 
			
		||||
    make test
 | 
			
		||||
 | 
			
		||||
    msg "test: ssl-opt.sh (zlib, make)"
 | 
			
		||||
    if_build_succeeded tests/ssl-opt.sh
 | 
			
		||||
}
 | 
			
		||||
support_test_zlib_make () {
 | 
			
		||||
    base=support_test_zlib_$$
 | 
			
		||||
    cat <<'EOF' > ${base}.c
 | 
			
		||||
#include "zlib.h"
 | 
			
		||||
int main(void) { return 0; }
 | 
			
		||||
EOF
 | 
			
		||||
    gcc -o ${base}.exe ${base}.c -lz 2>/dev/null
 | 
			
		||||
    ret=$?
 | 
			
		||||
    rm -f ${base}.*
 | 
			
		||||
    return $ret
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
component_test_zlib_cmake() {
 | 
			
		||||
    msg "build: zlib enabled, cmake"
 | 
			
		||||
    scripts/config.py set MBEDTLS_ZLIB_SUPPORT
 | 
			
		||||
    cmake -D ENABLE_ZLIB_SUPPORT=On -D CMAKE_BUILD_TYPE:String=Check .
 | 
			
		||||
    make
 | 
			
		||||
 | 
			
		||||
    msg "test: main suites (zlib, cmake)"
 | 
			
		||||
    make test
 | 
			
		||||
 | 
			
		||||
    msg "test: ssl-opt.sh (zlib, cmake)"
 | 
			
		||||
    if_build_succeeded tests/ssl-opt.sh
 | 
			
		||||
}
 | 
			
		||||
support_test_zlib_cmake () {
 | 
			
		||||
    support_test_zlib_make "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
component_test_ref_configs () {
 | 
			
		||||
    msg "test/build: ref-configs (ASan build)" # ~ 6 min 20s
 | 
			
		||||
    CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
 | 
			
		||||
 | 
			
		||||
@ -1186,18 +1186,6 @@ run_test    "TLS: password protected server key, two certificates" \
 | 
			
		||||
            "$P_CLI" \
 | 
			
		||||
            0
 | 
			
		||||
 | 
			
		||||
requires_config_enabled MBEDTLS_ZLIB_SUPPORT
 | 
			
		||||
run_test    "Default (compression enabled)" \
 | 
			
		||||
            "$P_SRV debug_level=3" \
 | 
			
		||||
            "$P_CLI debug_level=3" \
 | 
			
		||||
            0 \
 | 
			
		||||
            -s "Allocating compression buffer" \
 | 
			
		||||
            -c "Allocating compression buffer" \
 | 
			
		||||
            -s "Record expansion is unknown (compression)" \
 | 
			
		||||
            -c "Record expansion is unknown (compression)" \
 | 
			
		||||
            -S "error" \
 | 
			
		||||
            -C "error"
 | 
			
		||||
 | 
			
		||||
requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK
 | 
			
		||||
run_test    "CA callback on client" \
 | 
			
		||||
            "$P_SRV debug_level=3" \
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user