From 9b11af42e2e6d8c18d2dbdb970c6a0933b1a81c5 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 12 Apr 2019 09:43:04 -0400 Subject: [PATCH] revert changes to generate_features.pl and generate_query_config.pl These script should depend solely on the external, mbedtls config --- library/version_features.c | 3 -- programs/ssl/query_config.c | 8 ---- scripts/generate_features.pl | 74 +++++++++++--------------------- scripts/generate_query_config.pl | 57 ++++++++---------------- 4 files changed, 43 insertions(+), 99 deletions(-) diff --git a/library/version_features.c b/library/version_features.c index 23b2a5a97..161788ca7 100644 --- a/library/version_features.c +++ b/library/version_features.c @@ -780,9 +780,6 @@ static const char *features[] = { #if defined(MBEDTLS_XTEA_C) "MBEDTLS_XTEA_C", #endif /* MBEDTLS_XTEA_C */ -#if defined(MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER) - "MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER", -#endif /* MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER */ #endif /* MBEDTLS_VERSION_FEATURES */ NULL }; diff --git a/programs/ssl/query_config.c b/programs/ssl/query_config.c index 41535ef4d..f2f7b46d6 100644 --- a/programs/ssl/query_config.c +++ b/programs/ssl/query_config.c @@ -2586,14 +2586,6 @@ int query_config( const char *config ) } #endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */ -#if defined(MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER) - if( strcmp( "MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER */ - /* If the symbol is not found, return an error */ return( 1 ); } diff --git a/scripts/generate_features.pl b/scripts/generate_features.pl index 10aadb63e..1bd82ca2a 100755 --- a/scripts/generate_features.pl +++ b/scripts/generate_features.pl @@ -3,24 +3,18 @@ use strict; -my ($include_dir, $data_dir, $feature_file, $include_crypto); -my $crypto_include_dir = "crypto/include/mbedtls"; +my ($include_dir, $data_dir, $feature_file); if( @ARGV ) { - die "Invalid number of arguments" if scalar @ARGV != 4; - ($include_dir, $data_dir, $feature_file, $include_crypto) = @ARGV; + die "Invalid number of arguments" if scalar @ARGV != 3; + ($include_dir, $data_dir, $feature_file) = @ARGV; -d $include_dir or die "No such directory: $include_dir\n"; -d $data_dir or die "No such directory: $data_dir\n"; - if( $include_crypto ) { - -d $crypto_include_dir or die "Crypto submodule not present\n"; - } } else { $include_dir = 'include/mbedtls'; $data_dir = 'scripts/data_files'; $feature_file = 'library/version_features.c'; - $include_crypto = 1; - -d $crypto_include_dir or die "Crypto submodule not present\n"; unless( -d $include_dir && -d $data_dir ) { chdir '..' or die; @@ -42,53 +36,37 @@ my $feature_format = ; close(FORMAT_FILE); $/ = $line_separator; -my %defines_seen; -my @files = ("$include_dir/config.h"); -if( $include_crypto ) { - push(@files, "$crypto_include_dir/config.h"); -} +open(CONFIG_H, "$include_dir/config.h") || die("Failure when opening config.h: $!"); my $feature_defines = ""; +my $in_section = 0; -foreach my $file (@files) { - open(FILE, "$file") or die "Opening config file failed: '$file': $!"; +while (my $line = ) +{ + next if ($in_section && $line !~ /#define/ && $line !~ /SECTION/); + next if (!$in_section && $line !~ /SECTION/); - my $in_section = 0; - - while (my $line = ) - { - next if ($in_section && $line !~ /#define/ && $line !~ /SECTION/); - next if (!$in_section && $line !~ /SECTION/); - - if ($in_section) { - if ($line =~ /SECTION/) { - $in_section = 0; - next; - } - - my ($define) = $line =~ /#define (\w+)/; - - # Skip if this define is already added - if( $defines_seen{$define}++ ) { - print "Skipping $define, already added. \n"; - next; - } - - $feature_defines .= "#if defined(${define})\n"; - $feature_defines .= " \"${define}\",\n"; - $feature_defines .= "#endif /* ${define} */\n"; + if ($in_section) { + if ($line =~ /SECTION/) { + $in_section = 0; + next; } - if (!$in_section) { - my ($section_name) = $line =~ /SECTION: ([\w ]+)/; - my $found_section = grep $_ eq $section_name, @sections; + my ($define) = $line =~ /#define (\w+)/; + $feature_defines .= "#if defined(${define})\n"; + $feature_defines .= " \"${define}\",\n"; + $feature_defines .= "#endif /* ${define} */\n"; + } + + if (!$in_section) { + my ($section_name) = $line =~ /SECTION: ([\w ]+)/; + my $found_section = grep $_ eq $section_name, @sections; + + $in_section = 1 if ($found_section); + } +}; - $in_section = 1 if ($found_section); - } - }; - close(FILE); -} $feature_format =~ s/FEATURE_DEFINES\n/$feature_defines/g; open(ERROR_FILE, ">$feature_file") or die "Opening destination file '$feature_file': $!"; diff --git a/scripts/generate_query_config.pl b/scripts/generate_query_config.pl index af3076be0..f15e03a35 100755 --- a/scripts/generate_query_config.pl +++ b/scripts/generate_query_config.pl @@ -14,13 +14,11 @@ # 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 include_crypto +# Usage: ./scripts/generate_query_config.pl without arguments use strict; -my $include_crypto = 1; my $config_file = "./include/mbedtls/config.h"; -my $crypto_config_file = "./crypto/include/mbedtls/config.h"; my $query_config_format_file = "./scripts/data_files/query_config.fmt"; my $query_config_file = "./programs/ssl/query_config.c"; @@ -35,52 +33,31 @@ 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 = ""; -my %defines_seen; -my @files = ($config_file); +while (my $line = ) { + if ($line =~ /^(\/\/)?\s*#\s*define\s+(MBEDTLS_\w+).*/) { + my $name = $2; -if( @ARGV ) { - die "Invalid number of arguments" if scalar @ARGV != 1; - ($include_crypto) = @ARGV; -} + # Skip over the macro that prevents multiple inclusion + next if "MBEDTLS_CONFIG_H" eq $name; -if( $include_crypto ) { - push(@files, $crypto_config_file); -} + # Skip over the macro if it is in the ecluded list + next if $name =~ /$excluded_re/; -foreach my $file (@files) { - open(FILE, "$file") or die "Opening config file failed: '$file': $!"; - while (my $line = ) { - 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 excluded list - next if $name =~ /$excluded_re/; - - # Skip if this define is already added - if( $defines_seen{$name}++ ) { - print "Skipping $name, already added. \n"; - next; - } - - $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"; - } + $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"; } - close(FILE); } # Read the full format file into a string