mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-03 20:22:59 -05:00 
			
		
		
		
	Merge remote-tracking branch 'origin/pr/2105' into development
Additional work done as part of merge:
    - Run ./tests/scripts/check-generated-files.sh and check in the
      resulting changes to programs/ssl/query_config.c
			
			
This commit is contained in:
		
						commit
						415620c1f2
					
				@ -51,6 +51,8 @@ Changes
 | 
				
			|||||||
     by Aurelien Jarno and submitted by Jeffrey Martin.
 | 
					     by Aurelien Jarno and submitted by Jeffrey Martin.
 | 
				
			||||||
   * Reduce the complexity of the timing tests. They were assuming more than the
 | 
					   * Reduce the complexity of the timing tests. They were assuming more than the
 | 
				
			||||||
     underlying OS actually guarantees.
 | 
					     underlying OS actually guarantees.
 | 
				
			||||||
 | 
					   * Fix configuration queries in ssl-opt.h. #2030
 | 
				
			||||||
 | 
					   * Ensure that ssl-opt.h can be run in OS X. #2029
 | 
				
			||||||
 | 
					
 | 
				
			||||||
= mbed TLS 2.16.0 branch released 2018-12-21
 | 
					= mbed TLS 2.16.0 branch released 2018-12-21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								programs/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								programs/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -49,6 +49,7 @@ test/cpp_dummy_build
 | 
				
			|||||||
test/ssl_cert_test
 | 
					test/ssl_cert_test
 | 
				
			||||||
test/udp_proxy
 | 
					test/udp_proxy
 | 
				
			||||||
test/zeroize
 | 
					test/zeroize
 | 
				
			||||||
 | 
					test/query_compile_time_config
 | 
				
			||||||
util/pem2der
 | 
					util/pem2der
 | 
				
			||||||
util/strerror
 | 
					util/strerror
 | 
				
			||||||
x509/cert_app
 | 
					x509/cert_app
 | 
				
			||||||
 | 
				
			|||||||
@ -76,6 +76,7 @@ APPS =	aes/aescrypt2$(EXEXT)		aes/crypt_and_hash$(EXEXT)	\
 | 
				
			|||||||
	test/ssl_cert_test$(EXEXT)	test/benchmark$(EXEXT)		\
 | 
						test/ssl_cert_test$(EXEXT)	test/benchmark$(EXEXT)		\
 | 
				
			||||||
	test/selftest$(EXEXT)		test/udp_proxy$(EXEXT)		\
 | 
						test/selftest$(EXEXT)		test/udp_proxy$(EXEXT)		\
 | 
				
			||||||
	test/zeroize$(EXEXT)						\
 | 
						test/zeroize$(EXEXT)						\
 | 
				
			||||||
 | 
						test/query_compile_time_config$(EXEXT)				\
 | 
				
			||||||
	util/pem2der$(EXEXT)		util/strerror$(EXEXT)		\
 | 
						util/pem2der$(EXEXT)		util/strerror$(EXEXT)		\
 | 
				
			||||||
	x509/cert_app$(EXEXT)		x509/crl_app$(EXEXT)		\
 | 
						x509/cert_app$(EXEXT)		x509/crl_app$(EXEXT)		\
 | 
				
			||||||
	x509/cert_req$(EXEXT)		x509/cert_write$(EXEXT)		\
 | 
						x509/cert_req$(EXEXT)		x509/cert_write$(EXEXT)		\
 | 
				
			||||||
@ -218,17 +219,17 @@ ssl/ssl_client1$(EXEXT): ssl/ssl_client1.c $(DEP)
 | 
				
			|||||||
	echo "  CC    ssl/ssl_client1.c"
 | 
						echo "  CC    ssl/ssl_client1.c"
 | 
				
			||||||
	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c  $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
						$(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client1.c  $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c $(DEP)
 | 
					ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c ssl/query_config.c $(DEP)
 | 
				
			||||||
	echo "  CC    ssl/ssl_client2.c"
 | 
						echo "  CC    ssl/ssl_client2.c"
 | 
				
			||||||
	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c  $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
						$(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_client2.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ssl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP)
 | 
					ssl/ssl_server$(EXEXT): ssl/ssl_server.c $(DEP)
 | 
				
			||||||
	echo "  CC    ssl/ssl_server.c"
 | 
						echo "  CC    ssl/ssl_server.c"
 | 
				
			||||||
	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
						$(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server.c   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c $(DEP)
 | 
					ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c ssl/query_config.c $(DEP)
 | 
				
			||||||
	echo "  CC    ssl/ssl_server2.c"
 | 
						echo "  CC    ssl/ssl_server2.c"
 | 
				
			||||||
	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c   $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
						$(CC) $(LOCAL_CFLAGS) $(CFLAGS) ssl/ssl_server2.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP)
 | 
					ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c $(DEP)
 | 
				
			||||||
	echo "  CC    ssl/ssl_fork_server.c"
 | 
						echo "  CC    ssl/ssl_fork_server.c"
 | 
				
			||||||
@ -270,6 +271,10 @@ test/zeroize$(EXEXT): test/zeroize.c $(DEP)
 | 
				
			|||||||
	echo "  CC    test/zeroize.c"
 | 
						echo "  CC    test/zeroize.c"
 | 
				
			||||||
	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
						$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/zeroize.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test/query_compile_time_config$(EXEXT): test/query_compile_time_config.c ssl/query_config.c $(DEP)
 | 
				
			||||||
 | 
						echo "  CC    test/query_compile_time_config.c"
 | 
				
			||||||
 | 
						$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/query_compile_time_config.c ssl/query_config.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
util/pem2der$(EXEXT): util/pem2der.c $(DEP)
 | 
					util/pem2der$(EXEXT): util/pem2der.c $(DEP)
 | 
				
			||||||
	echo "  CC    util/pem2der.c"
 | 
						echo "  CC    util/pem2der.c"
 | 
				
			||||||
	$(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
						$(CC) $(LOCAL_CFLAGS) $(CFLAGS) util/pem2der.c    $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
 | 
				
			||||||
 | 
				
			|||||||
@ -34,12 +34,14 @@ add_executable(ssl_client1 ssl_client1.c)
 | 
				
			|||||||
target_link_libraries(ssl_client1 ${libs})
 | 
					target_link_libraries(ssl_client1 ${libs})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(ssl_client2 ssl_client2.c)
 | 
					add_executable(ssl_client2 ssl_client2.c)
 | 
				
			||||||
 | 
					target_sources(ssl_client2 PUBLIC query_config.c)
 | 
				
			||||||
target_link_libraries(ssl_client2 ${libs})
 | 
					target_link_libraries(ssl_client2 ${libs})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(ssl_server ssl_server.c)
 | 
					add_executable(ssl_server ssl_server.c)
 | 
				
			||||||
target_link_libraries(ssl_server ${libs})
 | 
					target_link_libraries(ssl_server ${libs})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(ssl_server2 ssl_server2.c)
 | 
					add_executable(ssl_server2 ssl_server2.c)
 | 
				
			||||||
 | 
					target_sources(ssl_server2 PUBLIC query_config.c)
 | 
				
			||||||
target_link_libraries(ssl_server2 ${libs})
 | 
					target_link_libraries(ssl_server2 ${libs})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(ssl_fork_server ssl_fork_server.c)
 | 
					add_executable(ssl_fork_server ssl_fork_server.c)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2579
									
								
								programs/ssl/query_config.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2579
									
								
								programs/ssl/query_config.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -342,6 +342,10 @@ int main( void )
 | 
				
			|||||||
    "                        options: ssl3, tls1, tls1_1, tls1_2, dtls1, dtls1_2\n" \
 | 
					    "                        options: ssl3, tls1, tls1_1, tls1_2, dtls1, dtls1_2\n" \
 | 
				
			||||||
    "\n"                                                    \
 | 
					    "\n"                                                    \
 | 
				
			||||||
    "    force_ciphersuite=<name>    default: all enabled\n"\
 | 
					    "    force_ciphersuite=<name>    default: all enabled\n"\
 | 
				
			||||||
 | 
					    "    query_config=<name>         return 0 if the specified\n"       \
 | 
				
			||||||
 | 
					    "                                configuration macro is defined and 1\n"  \
 | 
				
			||||||
 | 
					    "                                otherwise. The expansion of the macro\n" \
 | 
				
			||||||
 | 
					    "                                is printed if it is defined\n"     \
 | 
				
			||||||
    " acceptable ciphersuite names:\n"
 | 
					    " acceptable ciphersuite names:\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ALPN_LIST_SIZE  10
 | 
					#define ALPN_LIST_SIZE  10
 | 
				
			||||||
@ -417,6 +421,8 @@ struct options
 | 
				
			|||||||
    int etm;                    /* negotiate encrypt then mac?              */
 | 
					    int etm;                    /* negotiate encrypt then mac?              */
 | 
				
			||||||
} opt;
 | 
					} opt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int query_config( const char *config );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void my_debug( void *ctx, int level,
 | 
					static void my_debug( void *ctx, int level,
 | 
				
			||||||
                      const char *file, int line,
 | 
					                      const char *file, int line,
 | 
				
			||||||
                      const char *str )
 | 
					                      const char *str )
 | 
				
			||||||
@ -1059,6 +1065,10 @@ int main( int argc, char *argv[] )
 | 
				
			|||||||
            if( opt.dhmlen < 0 )
 | 
					            if( opt.dhmlen < 0 )
 | 
				
			||||||
                goto usage;
 | 
					                goto usage;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        else if( strcmp( p, "query_config" ) == 0 )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return query_config( q );
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            goto usage;
 | 
					            goto usage;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -446,6 +446,10 @@ int main( void )
 | 
				
			|||||||
    "                                in order from ssl3 to tls1_2\n"    \
 | 
					    "                                in order from ssl3 to tls1_2\n"    \
 | 
				
			||||||
    "                                default: all enabled\n"            \
 | 
					    "                                default: all enabled\n"            \
 | 
				
			||||||
    "    force_ciphersuite=<name>    default: all enabled\n"            \
 | 
					    "    force_ciphersuite=<name>    default: all enabled\n"            \
 | 
				
			||||||
 | 
					    "    query_config=<name>         return 0 if the specified\n"       \
 | 
				
			||||||
 | 
					    "                                configuration macro is defined and 1\n"  \
 | 
				
			||||||
 | 
					    "                                otherwise. The expansion of the macro\n" \
 | 
				
			||||||
 | 
					    "                                is printed if it is defined\n"     \
 | 
				
			||||||
    " acceptable ciphersuite names:\n"
 | 
					    " acceptable ciphersuite names:\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -543,6 +547,8 @@ struct options
 | 
				
			|||||||
    int badmac_limit;           /* Limit of records with bad MAC            */
 | 
					    int badmac_limit;           /* Limit of records with bad MAC            */
 | 
				
			||||||
} opt;
 | 
					} opt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int query_config( const char *config );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void my_debug( void *ctx, int level,
 | 
					static void my_debug( void *ctx, int level,
 | 
				
			||||||
                      const char *file, int line,
 | 
					                      const char *file, int line,
 | 
				
			||||||
                      const char *str )
 | 
					                      const char *str )
 | 
				
			||||||
@ -1871,6 +1877,10 @@ int main( int argc, char *argv[] )
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            opt.sni = q;
 | 
					            opt.sni = q;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        else if( strcmp( p, "query_config" ) == 0 )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return query_config( q );
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            goto usage;
 | 
					            goto usage;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -30,6 +30,10 @@ target_link_libraries(udp_proxy ${libs})
 | 
				
			|||||||
add_executable(zeroize zeroize.c)
 | 
					add_executable(zeroize zeroize.c)
 | 
				
			||||||
target_link_libraries(zeroize ${libs})
 | 
					target_link_libraries(zeroize ${libs})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install(TARGETS selftest benchmark ssl_cert_test udp_proxy
 | 
					add_executable(query_compile_time_config query_compile_time_config.c)
 | 
				
			||||||
 | 
					target_sources(query_compile_time_config PUBLIC ../ssl/query_config.c)
 | 
				
			||||||
 | 
					target_link_libraries(query_compile_time_config ${libs})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install(TARGETS selftest benchmark ssl_cert_test udp_proxy query_compile_time_config
 | 
				
			||||||
        DESTINATION "bin"
 | 
					        DESTINATION "bin"
 | 
				
			||||||
        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 | 
					        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										56
									
								
								programs/test/query_compile_time_config.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								programs/test/query_compile_time_config.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Query the Mbed TLS compile time configuration
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Copyright (C) 2018, Arm Limited, All Rights Reserved
 | 
				
			||||||
 | 
					 *  SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
				
			||||||
 | 
					 *  not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					 *  You may obtain a copy of the License at
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					 *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
				
			||||||
 | 
					 *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					 *  See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					 *  limitations under the License.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  This file is part of Mbed TLS (https://tls.mbed.org)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(MBEDTLS_CONFIG_FILE)
 | 
				
			||||||
 | 
					#include "mbedtls/config.h"
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#include MBEDTLS_CONFIG_FILE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(MBEDTLS_PLATFORM_C)
 | 
				
			||||||
 | 
					#include "mbedtls/platform.h"
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#define mbedtls_printf       printf
 | 
				
			||||||
 | 
					#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define USAGE                                                                \
 | 
				
			||||||
 | 
					    "usage: %s <MBEDTLS_CONFIG>\n\n"                                         \
 | 
				
			||||||
 | 
					    "This program takes one command line argument which corresponds to\n"    \
 | 
				
			||||||
 | 
					    "the string representation of a Mbed TLS compile time configuration.\n"  \
 | 
				
			||||||
 | 
					    "The value 0 will be returned if this configuration is defined in the\n" \
 | 
				
			||||||
 | 
					    "Mbed TLS build and the macro expansion of that configuration will be\n" \
 | 
				
			||||||
 | 
					    "printed (if any). Otherwise, 1 will be returned.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int query_config( const char *config );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main( int argc, char *argv[] )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if ( argc != 2 )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        mbedtls_printf( USAGE, argv[0] );
 | 
				
			||||||
 | 
					        return( MBEDTLS_EXIT_FAILURE );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return( query_config( argv[1] ) );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -132,6 +132,9 @@ done
 | 
				
			|||||||
[ $VERBOSE ] && echo "Re-generating library/error.c"
 | 
					[ $VERBOSE ] && echo "Re-generating library/error.c"
 | 
				
			||||||
scripts/generate_errors.pl
 | 
					scripts/generate_errors.pl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ $VERBOSE ] && echo "Re-generating programs/ssl/query_config.c"
 | 
				
			||||||
 | 
					scripts/generate_query_config.pl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ $VERBOSE ] && echo "Re-generating library/version_features.c"
 | 
					[ $VERBOSE ] && echo "Re-generating library/version_features.c"
 | 
				
			||||||
scripts/generate_features.pl
 | 
					scripts/generate_features.pl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										139
									
								
								scripts/data_files/query_config.fmt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								scripts/data_files/query_config.fmt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,139 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Query Mbed TLS compile time configurations from config.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Copyright (C) 2018, Arm Limited, All Rights Reserved
 | 
				
			||||||
 | 
					 *  SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
				
			||||||
 | 
					 *  not use this file except in compliance with the License.
 | 
				
			||||||
 | 
					 *  You may obtain a copy of the License at
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Unless required by applicable law or agreed to in writing, software
 | 
				
			||||||
 | 
					 *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
				
			||||||
 | 
					 *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
				
			||||||
 | 
					 *  See the License for the specific language governing permissions and
 | 
				
			||||||
 | 
					 *  limitations under the License.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  This file is part of Mbed TLS (https://tls.mbed.org)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(MBEDTLS_CONFIG_FILE)
 | 
				
			||||||
 | 
					#include "mbedtls/config.h"
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#include MBEDTLS_CONFIG_FILE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(MBEDTLS_PLATFORM_C)
 | 
				
			||||||
 | 
					#include "mbedtls/platform.h"
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#define mbedtls_printf printf
 | 
				
			||||||
 | 
					#endif /* MBEDTLS_PLATFORM_C */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Include all the headers with public APIs in case they define a macro to its
 | 
				
			||||||
 | 
					 * default value when that configuration is not set in the config.h.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include "mbedtls/aes.h"
 | 
				
			||||||
 | 
					#include "mbedtls/aesni.h"
 | 
				
			||||||
 | 
					#include "mbedtls/arc4.h"
 | 
				
			||||||
 | 
					#include "mbedtls/aria.h"
 | 
				
			||||||
 | 
					#include "mbedtls/asn1.h"
 | 
				
			||||||
 | 
					#include "mbedtls/asn1write.h"
 | 
				
			||||||
 | 
					#include "mbedtls/base64.h"
 | 
				
			||||||
 | 
					#include "mbedtls/bignum.h"
 | 
				
			||||||
 | 
					#include "mbedtls/blowfish.h"
 | 
				
			||||||
 | 
					#include "mbedtls/camellia.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ccm.h"
 | 
				
			||||||
 | 
					#include "mbedtls/certs.h"
 | 
				
			||||||
 | 
					#include "mbedtls/chacha20.h"
 | 
				
			||||||
 | 
					#include "mbedtls/chachapoly.h"
 | 
				
			||||||
 | 
					#include "mbedtls/cipher.h"
 | 
				
			||||||
 | 
					#include "mbedtls/cmac.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ctr_drbg.h"
 | 
				
			||||||
 | 
					#include "mbedtls/debug.h"
 | 
				
			||||||
 | 
					#include "mbedtls/des.h"
 | 
				
			||||||
 | 
					#include "mbedtls/dhm.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ecdh.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ecdsa.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ecjpake.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ecp.h"
 | 
				
			||||||
 | 
					#include "mbedtls/entropy.h"
 | 
				
			||||||
 | 
					#include "mbedtls/entropy_poll.h"
 | 
				
			||||||
 | 
					#include "mbedtls/error.h"
 | 
				
			||||||
 | 
					#include "mbedtls/gcm.h"
 | 
				
			||||||
 | 
					#include "mbedtls/havege.h"
 | 
				
			||||||
 | 
					#include "mbedtls/hkdf.h"
 | 
				
			||||||
 | 
					#include "mbedtls/hmac_drbg.h"
 | 
				
			||||||
 | 
					#include "mbedtls/md.h"
 | 
				
			||||||
 | 
					#include "mbedtls/md2.h"
 | 
				
			||||||
 | 
					#include "mbedtls/md4.h"
 | 
				
			||||||
 | 
					#include "mbedtls/md5.h"
 | 
				
			||||||
 | 
					#include "mbedtls/memory_buffer_alloc.h"
 | 
				
			||||||
 | 
					#include "mbedtls/net_sockets.h"
 | 
				
			||||||
 | 
					#include "mbedtls/nist_kw.h"
 | 
				
			||||||
 | 
					#include "mbedtls/oid.h"
 | 
				
			||||||
 | 
					#include "mbedtls/padlock.h"
 | 
				
			||||||
 | 
					#include "mbedtls/pem.h"
 | 
				
			||||||
 | 
					#include "mbedtls/pk.h"
 | 
				
			||||||
 | 
					#include "mbedtls/pkcs11.h"
 | 
				
			||||||
 | 
					#include "mbedtls/pkcs12.h"
 | 
				
			||||||
 | 
					#include "mbedtls/pkcs5.h"
 | 
				
			||||||
 | 
					#include "mbedtls/platform_time.h"
 | 
				
			||||||
 | 
					#include "mbedtls/platform_util.h"
 | 
				
			||||||
 | 
					#include "mbedtls/poly1305.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ripemd160.h"
 | 
				
			||||||
 | 
					#include "mbedtls/rsa.h"
 | 
				
			||||||
 | 
					#include "mbedtls/sha1.h"
 | 
				
			||||||
 | 
					#include "mbedtls/sha256.h"
 | 
				
			||||||
 | 
					#include "mbedtls/sha512.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ssl.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ssl_cache.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ssl_ciphersuites.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ssl_cookie.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ssl_internal.h"
 | 
				
			||||||
 | 
					#include "mbedtls/ssl_ticket.h"
 | 
				
			||||||
 | 
					#include "mbedtls/threading.h"
 | 
				
			||||||
 | 
					#include "mbedtls/timing.h"
 | 
				
			||||||
 | 
					#include "mbedtls/version.h"
 | 
				
			||||||
 | 
					#include "mbedtls/x509.h"
 | 
				
			||||||
 | 
					#include "mbedtls/x509_crl.h"
 | 
				
			||||||
 | 
					#include "mbedtls/x509_crt.h"
 | 
				
			||||||
 | 
					#include "mbedtls/x509_csr.h"
 | 
				
			||||||
 | 
					#include "mbedtls/xtea.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Helper macros to convert a macro or its expansion into a string
 | 
				
			||||||
 | 
					 * WARNING: This does not work for expanding function-like macros. However,
 | 
				
			||||||
 | 
					 * Mbed TLS does not currently have configuration options used in this fashion.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define MACRO_EXPANSION_TO_STR(macro)   MACRO_NAME_TO_STR(macro)
 | 
				
			||||||
 | 
					#define MACRO_NAME_TO_STR(macro)                                        \
 | 
				
			||||||
 | 
					    mbedtls_printf( "%s", strlen( #macro "" ) > 0 ? #macro "\n" : "" )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_MSC_VER)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Visual Studio throws the warning 4003 because many Mbed TLS feature macros
 | 
				
			||||||
 | 
					 * are defined empty. This means that from the preprocessor's point of view
 | 
				
			||||||
 | 
					 * the macro MBEDTLS_EXPANSION_TO_STR is being invoked without arguments as
 | 
				
			||||||
 | 
					 * some macros expand to nothing. We suppress that specific warning to get a
 | 
				
			||||||
 | 
					 * clean build and to ensure that tests treating warnings as errors do not
 | 
				
			||||||
 | 
					 * fail.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#pragma warning(push)
 | 
				
			||||||
 | 
					#pragma warning(disable:4003)
 | 
				
			||||||
 | 
					#endif /* _MSC_VER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int query_config( const char *config )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					CHECK_CONFIG    /* If the symbol is not found, return an error */
 | 
				
			||||||
 | 
					    return( 1 );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_MSC_VER)
 | 
				
			||||||
 | 
					#pragma warning(pop)
 | 
				
			||||||
 | 
					#endif /* _MSC_VER */
 | 
				
			||||||
@ -18,8 +18,7 @@
 | 
				
			|||||||
      <Platform>x64</Platform>
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
    </ProjectConfiguration>
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
<SOURCES>
 | 
				
			||||||
    <ClCompile Include="..\..\programs\<PATHNAME>.c" />
 | 
					 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ProjectReference Include="mbedTLS.vcxproj">
 | 
					    <ProjectReference Include="mbedTLS.vcxproj">
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										75
									
								
								scripts/generate_query_config.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										75
									
								
								scripts/generate_query_config.pl
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					#! /usr/bin/env perl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate query_config.c
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# The file query_config.c contains a C function that can be used to check if
 | 
				
			||||||
 | 
					# a configuration macro is defined and to retrieve its expansion in string
 | 
				
			||||||
 | 
					# form (if any). This facilitates querying the compile time configuration of
 | 
				
			||||||
 | 
					# the library, for example, for testing.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# The query_config.c is generated from the current configuration at
 | 
				
			||||||
 | 
					# include/mbedtls/config.h. The idea is that the config.h contains ALL the
 | 
				
			||||||
 | 
					# compile time configurations available in Mbed TLS (commented or uncommented).
 | 
				
			||||||
 | 
					# This script extracts the configuration macros from the config.h and this
 | 
				
			||||||
 | 
					# information is used to automatically generate the body of the query_config()
 | 
				
			||||||
 | 
					# function by using the template in scripts/data_files/query_config.fmt.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Usage: ./scripts/generate_query_config.pl without arguments
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use strict;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $config_file = "./include/mbedtls/config.h";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $query_config_format_file = "./scripts/data_files/query_config.fmt";
 | 
				
			||||||
 | 
					my $query_config_file = "./programs/ssl/query_config.c";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Excluded macros from the generated query_config.c. For example, macros that
 | 
				
			||||||
 | 
					# have commas or function-like macros cannot be transformed into strings easily
 | 
				
			||||||
 | 
					# using the preprocessor, so they should be excluded or the preprocessor will
 | 
				
			||||||
 | 
					# throw errors.
 | 
				
			||||||
 | 
					my @excluded = qw(
 | 
				
			||||||
 | 
					MBEDTLS_SSL_CIPHERSUITES
 | 
				
			||||||
 | 
					MBEDTLS_PARAM_FAILED
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					my $excluded_re = join '|', @excluded;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					open(CONFIG_FILE, "$config_file") or die "Opening config file '$config_file': $!";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This variable will contain the string to replace in the CHECK_CONFIG of the
 | 
				
			||||||
 | 
					# format file
 | 
				
			||||||
 | 
					my $config_check = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while (my $line = <CONFIG_FILE>) {
 | 
				
			||||||
 | 
					    if ($line =~ /^(\/\/)?\s*#\s*define\s+(MBEDTLS_\w+).*/) {
 | 
				
			||||||
 | 
					        my $name = $2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Skip over the macro that prevents multiple inclusion
 | 
				
			||||||
 | 
					        next if "MBEDTLS_CONFIG_H" eq $name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Skip over the macro if it is in the ecluded list
 | 
				
			||||||
 | 
					        next if $name =~ /$excluded_re/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $config_check .= "#if defined($name)\n";
 | 
				
			||||||
 | 
					        $config_check .= "    if( strcmp( \"$name\", config ) == 0 )\n";
 | 
				
			||||||
 | 
					        $config_check .= "    {\n";
 | 
				
			||||||
 | 
					        $config_check .= "        MACRO_EXPANSION_TO_STR( $name );\n";
 | 
				
			||||||
 | 
					        $config_check .= "        return( 0 );\n";
 | 
				
			||||||
 | 
					        $config_check .= "    }\n";
 | 
				
			||||||
 | 
					        $config_check .= "#endif /* $name */\n";
 | 
				
			||||||
 | 
					        $config_check .= "\n";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Read the full format file into a string
 | 
				
			||||||
 | 
					local $/;
 | 
				
			||||||
 | 
					open(FORMAT_FILE, "$query_config_format_file") or die "Opening query config format file '$query_config_format_file': $!";
 | 
				
			||||||
 | 
					my $query_config_format = <FORMAT_FILE>;
 | 
				
			||||||
 | 
					close(FORMAT_FILE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Replace the body of the query_config() function with the code we just wrote
 | 
				
			||||||
 | 
					$query_config_format =~ s/CHECK_CONFIG/$config_check/g;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Rewrite the query_config.c file
 | 
				
			||||||
 | 
					open(QUERY_CONFIG_FILE, ">$query_config_file") or die "Opening destination file '$query_config_file': $!";
 | 
				
			||||||
 | 
					print QUERY_CONFIG_FILE $query_config_format;
 | 
				
			||||||
 | 
					close(QUERY_CONFIG_FILE);
 | 
				
			||||||
@ -93,8 +93,14 @@ sub gen_app {
 | 
				
			|||||||
    $path =~ s!/!\\!g;
 | 
					    $path =~ s!/!\\!g;
 | 
				
			||||||
    (my $appname = $path) =~ s/.*\\//;
 | 
					    (my $appname = $path) =~ s/.*\\//;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    my $srcs = "\n    <ClCompile Include=\"..\\..\\programs\\$path.c\" \/>\r";
 | 
				
			||||||
 | 
					    if( $appname eq "ssl_client2" or $appname eq "ssl_server2" or
 | 
				
			||||||
 | 
					        $appname eq "query_compile_time_config" ) {
 | 
				
			||||||
 | 
					        $srcs .= "\n    <ClCompile Include=\"..\\..\\programs\\ssl\\query_config.c\" \/>\r";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    my $content = $template;
 | 
					    my $content = $template;
 | 
				
			||||||
    $content =~ s/<PATHNAME>/$path/g;
 | 
					    $content =~ s/<SOURCES>/$srcs/g;
 | 
				
			||||||
    $content =~ s/<APPNAME>/$appname/g;
 | 
					    $content =~ s/<APPNAME>/$appname/g;
 | 
				
			||||||
    $content =~ s/<GUID>/$guid/g;
 | 
					    $content =~ s/<GUID>/$guid/g;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -65,5 +65,6 @@ check()
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
check scripts/generate_errors.pl library/error.c
 | 
					check scripts/generate_errors.pl library/error.c
 | 
				
			||||||
 | 
					check scripts/generate_query_config.pl programs/ssl/query_config.c
 | 
				
			||||||
check scripts/generate_features.pl library/version_features.c
 | 
					check scripts/generate_features.pl library/version_features.c
 | 
				
			||||||
check scripts/generate_visualc_files.pl visualc/VS2010
 | 
					check scripts/generate_visualc_files.pl visualc/VS2010
 | 
				
			||||||
 | 
				
			|||||||
@ -165,22 +165,34 @@ requires_config_disabled() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
get_config_value_or_default() {
 | 
					get_config_value_or_default() {
 | 
				
			||||||
    NAME="$1"
 | 
					    # This function uses the query_config command line option to query the
 | 
				
			||||||
    DEF_VAL=$( grep ".*#define.*${NAME}" ../include/mbedtls/config.h |
 | 
					    # required Mbed TLS compile time configuration from the ssl_server2
 | 
				
			||||||
               sed 's/^.* \([0-9]*\)$/\1/' )
 | 
					    # program. The command will always return a success value if the
 | 
				
			||||||
    ../scripts/config.pl get $NAME || echo "$DEF_VAL"
 | 
					    # configuration is defined and the value will be printed to stdout.
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # Note that if the configuration is not defined or is defined to nothing,
 | 
				
			||||||
 | 
					    # the output of this function will be an empty string.
 | 
				
			||||||
 | 
					    ${P_SRV} "query_config=${1}"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
requires_config_value_at_least() {
 | 
					requires_config_value_at_least() {
 | 
				
			||||||
    VAL=$( get_config_value_or_default "$1" )
 | 
					    VAL="$( get_config_value_or_default "$1" )"
 | 
				
			||||||
    if [ "$VAL" -lt "$2" ]; then
 | 
					    if [ -z "$VAL" ]; then
 | 
				
			||||||
 | 
					        # Should never happen
 | 
				
			||||||
 | 
					        echo "Mbed TLS configuration $1 is not defined"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    elif [ "$VAL" -lt "$2" ]; then
 | 
				
			||||||
       SKIP_NEXT="YES"
 | 
					       SKIP_NEXT="YES"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
requires_config_value_at_most() {
 | 
					requires_config_value_at_most() {
 | 
				
			||||||
    VAL=$( get_config_value_or_default "$1" )
 | 
					    VAL=$( get_config_value_or_default "$1" )
 | 
				
			||||||
    if [ "$VAL" -gt "$2" ]; then
 | 
					    if [ -z "$VAL" ]; then
 | 
				
			||||||
 | 
					        # Should never happen
 | 
				
			||||||
 | 
					        echo "Mbed TLS configuration $1 is not defined"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    elif [ "$VAL" -gt "$2" ]; then
 | 
				
			||||||
       SKIP_NEXT="YES"
 | 
					       SKIP_NEXT="YES"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -208,6 +208,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zeroize", "zeroize.vcxproj"
 | 
				
			|||||||
		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}
 | 
							{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}
 | 
				
			||||||
	EndProjectSection
 | 
						EndProjectSection
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "query_compile_time_config", "query_compile_time_config.vcxproj", "{D6F58AF2-9D80-562A-E2B0-F743281522B9}"
 | 
				
			||||||
 | 
						ProjectSection(ProjectDependencies) = postProject
 | 
				
			||||||
 | 
							{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}
 | 
				
			||||||
 | 
						EndProjectSection
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pem2der", "pem2der.vcxproj", "{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pem2der", "pem2der.vcxproj", "{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}"
 | 
				
			||||||
	ProjectSection(ProjectDependencies) = postProject
 | 
						ProjectSection(ProjectDependencies) = postProject
 | 
				
			||||||
		{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}
 | 
							{46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554}
 | 
				
			||||||
@ -587,6 +592,14 @@ Global
 | 
				
			|||||||
		{10C01E94-4926-063E-9F56-C84ED190D349}.Release|Win32.Build.0 = Release|Win32
 | 
							{10C01E94-4926-063E-9F56-C84ED190D349}.Release|Win32.Build.0 = Release|Win32
 | 
				
			||||||
		{10C01E94-4926-063E-9F56-C84ED190D349}.Release|x64.ActiveCfg = Release|x64
 | 
							{10C01E94-4926-063E-9F56-C84ED190D349}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
		{10C01E94-4926-063E-9F56-C84ED190D349}.Release|x64.Build.0 = Release|x64
 | 
							{10C01E94-4926-063E-9F56-C84ED190D349}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
 | 
							{D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
				
			||||||
 | 
							{D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
 | 
							{D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 | 
							{D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|x64.Build.0 = Debug|x64
 | 
				
			||||||
 | 
							{D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|Win32.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|Win32.Build.0 = Release|Win32
 | 
				
			||||||
 | 
							{D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|x64.ActiveCfg = Release|x64
 | 
				
			||||||
 | 
							{D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|x64.Build.0 = Release|x64
 | 
				
			||||||
		{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
							{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
				
			||||||
		{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|Win32.Build.0 = Debug|Win32
 | 
							{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
		{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|x64.ActiveCfg = Debug|x64
 | 
							{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|x64.ActiveCfg = Debug|x64
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										175
									
								
								visualc/VS2010/query_compile_time_config.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								visualc/VS2010/query_compile_time_config.vcxproj
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,175 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Debug|x64">
 | 
				
			||||||
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|Win32">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>Win32</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					    <ProjectConfiguration Include="Release|x64">
 | 
				
			||||||
 | 
					      <Configuration>Release</Configuration>
 | 
				
			||||||
 | 
					      <Platform>x64</Platform>
 | 
				
			||||||
 | 
					    </ProjectConfiguration>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\programs\test\query_compile_time_config.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\programs\ssl\query_config.c" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ProjectReference Include="mbedTLS.vcxproj">
 | 
				
			||||||
 | 
					      <Project>{46cf2d25-6a36-4189-b59c-e4815388e554}</Project>
 | 
				
			||||||
 | 
					      <LinkLibraryDependencies>true</LinkLibraryDependencies>
 | 
				
			||||||
 | 
					    </ProjectReference>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="Globals">
 | 
				
			||||||
 | 
					    <ProjectGuid>{D6F58AF2-9D80-562A-E2B0-F743281522B9}</ProjectGuid>
 | 
				
			||||||
 | 
					    <Keyword>Win32Proj</Keyword>
 | 
				
			||||||
 | 
					    <RootNamespace>query_compile_time_config</RootNamespace>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
 | 
					    <PlatformToolset>Windows7.1SDK</PlatformToolset>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 | 
				
			||||||
 | 
					    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Label="UserMacros" />
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <LinkIncremental>true</LinkIncremental>
 | 
				
			||||||
 | 
					    <IntDir>$(Configuration)\$(TargetName)\</IntDir>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <LinkIncremental>true</LinkIncremental>
 | 
				
			||||||
 | 
					    <IntDir>$(Configuration)\$(TargetName)\</IntDir>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <LinkIncremental>false</LinkIncremental>
 | 
				
			||||||
 | 
					    <IntDir>$(Configuration)\$(TargetName)\</IntDir>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <LinkIncremental>false</LinkIncremental>
 | 
				
			||||||
 | 
					    <IntDir>$(Configuration)\$(TargetName)\</IntDir>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <PrecompiledHeader>
 | 
				
			||||||
 | 
					      </PrecompiledHeader>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <ShowProgress>NotSet</ShowProgress>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <AdditionalLibraryDirectories>Debug</AdditionalLibraryDirectories>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					    <ProjectReference>
 | 
				
			||||||
 | 
					      <LinkLibraryDependencies>false</LinkLibraryDependencies>
 | 
				
			||||||
 | 
					    </ProjectReference>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <PrecompiledHeader>
 | 
				
			||||||
 | 
					      </PrecompiledHeader>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <Optimization>Disabled</Optimization>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <ShowProgress>NotSet</ShowProgress>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					      <AdditionalLibraryDirectories>Debug</AdditionalLibraryDirectories>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					    <ProjectReference>
 | 
				
			||||||
 | 
					      <LinkLibraryDependencies>false</LinkLibraryDependencies>
 | 
				
			||||||
 | 
					    </ProjectReference>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <PrecompiledHeader>
 | 
				
			||||||
 | 
					      </PrecompiledHeader>
 | 
				
			||||||
 | 
					      <Optimization>MaxSpeed</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <AdditionalLibraryDirectories>Release</AdditionalLibraryDirectories>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 | 
				
			||||||
 | 
					    <ClCompile>
 | 
				
			||||||
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <PrecompiledHeader>
 | 
				
			||||||
 | 
					      </PrecompiledHeader>
 | 
				
			||||||
 | 
					      <Optimization>MaxSpeed</Optimization>
 | 
				
			||||||
 | 
					      <FunctionLevelLinking>true</FunctionLevelLinking>
 | 
				
			||||||
 | 
					      <IntrinsicFunctions>true</IntrinsicFunctions>
 | 
				
			||||||
 | 
					      <PreprocessorDefinitions>WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
 | 
					      <AdditionalIncludeDirectories>../../include</AdditionalIncludeDirectories>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <Link>
 | 
				
			||||||
 | 
					      <SubSystem>Console</SubSystem>
 | 
				
			||||||
 | 
					      <GenerateDebugInformation>true</GenerateDebugInformation>
 | 
				
			||||||
 | 
					      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 | 
				
			||||||
 | 
					      <OptimizeReferences>true</OptimizeReferences>
 | 
				
			||||||
 | 
					      <AdditionalLibraryDirectories>Release</AdditionalLibraryDirectories>
 | 
				
			||||||
 | 
					      <AdditionalDependencies>%(AdditionalDependencies);</AdditionalDependencies>
 | 
				
			||||||
 | 
					    </Link>
 | 
				
			||||||
 | 
					  </ItemDefinitionGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
 | 
					  </ImportGroup>
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
@ -20,6 +20,7 @@
 | 
				
			|||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ClCompile Include="..\..\programs\ssl\ssl_client2.c" />
 | 
					    <ClCompile Include="..\..\programs\ssl\ssl_client2.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\programs\ssl\query_config.c" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ProjectReference Include="mbedTLS.vcxproj">
 | 
					    <ProjectReference Include="mbedTLS.vcxproj">
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,7 @@
 | 
				
			|||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ClCompile Include="..\..\programs\ssl\ssl_server2.c" />
 | 
					    <ClCompile Include="..\..\programs\ssl\ssl_server2.c" />
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\programs\ssl\query_config.c" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ProjectReference Include="mbedTLS.vcxproj">
 | 
					    <ProjectReference Include="mbedTLS.vcxproj">
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user