Merge pull request #5340 from gilles-peskine-arm/ssl_debug_helpers_generated.h-commit-header
Commit ssl_debug_helpers.h
This commit is contained in:
commit
cb4dc37a2a
8 changed files with 75 additions and 48 deletions
1
library/.gitignore
vendored
1
library/.gitignore
vendored
|
@ -7,4 +7,3 @@ libmbed*
|
|||
/error.c
|
||||
/version_features.c
|
||||
/ssl_debug_helpers_generated.c
|
||||
/ssl_debug_helpers_generated.h
|
||||
|
|
|
@ -147,7 +147,6 @@ if(GEN_FILES)
|
|||
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.c
|
||||
COMMAND
|
||||
${MBEDTLS_PYTHON_EXECUTABLE}
|
||||
|
@ -162,7 +161,6 @@ else()
|
|||
link_to_source(error.c)
|
||||
link_to_source(version_features.c)
|
||||
link_to_source(ssl_debug_helpers_generated.c)
|
||||
link_to_source(ssl_debug_helpers_generated.h)
|
||||
endif()
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
|
|
@ -290,7 +290,7 @@ libmbedcrypto.dll: $(OBJS_CRYPTO)
|
|||
.PHONY: generated_files
|
||||
GENERATED_FILES = \
|
||||
error.c version_features.c \
|
||||
ssl_debug_helpers_generated.c ssl_debug_helpers_generated.h
|
||||
ssl_debug_helpers_generated.c
|
||||
generated_files: $(GENERATED_FILES)
|
||||
|
||||
error.c: ../scripts/generate_errors.pl
|
||||
|
@ -300,10 +300,9 @@ error.c:
|
|||
echo " Gen $@"
|
||||
$(PERL) ../scripts/generate_errors.pl
|
||||
|
||||
ssl_debug_helpers_generated.c: | ssl_debug_helpers_generated.h
|
||||
ssl_debug_helpers_generated.h: ../scripts/generate_ssl_debug_helpers.py
|
||||
ssl_debug_helpers_generated.h: $(filter-out %config%,$(wildcard ../include/mbedtls/*.h))
|
||||
ssl_debug_helpers_generated.h:
|
||||
ssl_debug_helpers_generated.c: ../scripts/generate_ssl_debug_helpers.py
|
||||
ssl_debug_helpers_generated.c: $(filter-out %config%,$(wildcard ../include/mbedtls/*.h))
|
||||
ssl_debug_helpers_generated.c:
|
||||
echo " Gen $@"
|
||||
$(PYTHON) ../scripts/generate_ssl_debug_helpers.py --mbedtls-root .. .
|
||||
|
||||
|
|
44
library/ssl_debug_helpers.h
Normal file
44
library/ssl_debug_helpers.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
/**
|
||||
* \file ssl_debug_helpers.h
|
||||
*
|
||||
* \brief Automatically generated helper functions for debugging
|
||||
*/
|
||||
/*
|
||||
* Copyright The Mbed TLS Contributors
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef MBEDTLS_SSL_DEBUG_HELPERS_H
|
||||
#define MBEDTLS_SSL_DEBUG_HELPERS_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#if defined(MBEDTLS_DEBUG_C)
|
||||
|
||||
#include "mbedtls/ssl.h"
|
||||
#include "ssl_misc.h"
|
||||
|
||||
|
||||
const char *mbedtls_ssl_states_str( mbedtls_ssl_states in );
|
||||
|
||||
const char *mbedtls_tls_prf_types_str( mbedtls_tls_prf_types in );
|
||||
|
||||
const char *mbedtls_ssl_key_export_type_str( mbedtls_ssl_key_export_type in );
|
||||
|
||||
|
||||
|
||||
#endif /* MBEDTLS_DEBUG_C */
|
||||
|
||||
#endif /* SSL_DEBUG_HELPERS_H */
|
|
@ -34,7 +34,7 @@
|
|||
#include "ssl_misc.h"
|
||||
#include "ecdh_misc.h"
|
||||
#include "ssl_tls13_keys.h"
|
||||
#include "ssl_debug_helpers_generated.h"
|
||||
#include "ssl_debug_helpers.h"
|
||||
|
||||
/* Write extensions */
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "mbedtls/debug.h"
|
||||
|
||||
#include "ssl_misc.h"
|
||||
#include "ssl_debug_helpers_generated.h"
|
||||
#include "ssl_debug_helpers.h"
|
||||
|
||||
int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl )
|
||||
{
|
||||
|
|
|
@ -232,46 +232,43 @@ class EnumDefinition:
|
|||
body = body.format(translation_table='\n'.join(translation_table),
|
||||
name=self._name,
|
||||
prototype=self._prototype)
|
||||
prototype = 'const char *{name}_str( {prototype} in );\n'
|
||||
prototype = prototype.format(name=self._name,
|
||||
prototype=self._prototype)
|
||||
return body, prototype
|
||||
return body
|
||||
|
||||
|
||||
OUTPUT_C_TEMPLATE = '''\
|
||||
/* Automatically generated by generate_ssl_debug_helpers.py. DO NOT EDIT. */
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#if defined(MBEDTLS_DEBUG_C)
|
||||
|
||||
#include "ssl_debug_helpers_generated.h"
|
||||
|
||||
{functions}
|
||||
|
||||
#endif /* MBEDTLS_DEBUG_C */
|
||||
/* End of automatically generated file. */
|
||||
|
||||
'''
|
||||
|
||||
OUTPUT_H_TEMPLATE = '''\
|
||||
/* Automatically generated by generate_ssl_debug_helpers.py. DO NOT EDIT. */
|
||||
#ifndef MBEDTLS_SSL_DEBUG_HELPERS_H
|
||||
#define MBEDTLS_SSL_DEBUG_HELPERS_H
|
||||
/**
|
||||
* \file ssl_debug_helpers_generated.c
|
||||
*
|
||||
* \brief Automatically generated helper functions for debugging
|
||||
*/
|
||||
/*
|
||||
* Copyright The Mbed TLS Contributors
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#if defined(MBEDTLS_DEBUG_C)
|
||||
|
||||
#include "mbedtls/ssl.h"
|
||||
#include "ssl_misc.h"
|
||||
#include "ssl_debug_helpers.h"
|
||||
|
||||
{functions}
|
||||
|
||||
#endif /* MBEDTLS_DEBUG_C */
|
||||
|
||||
#endif /* SSL_DEBUG_HELPERS_H */
|
||||
|
||||
/* End of automatically generated file. */
|
||||
|
||||
'''
|
||||
|
@ -286,23 +283,17 @@ def generate_ssl_debug_helpers(output_directory, mbedtls_root):
|
|||
source_code = remove_c_comments(f.read())
|
||||
|
||||
definitions = dict()
|
||||
prototypes = dict()
|
||||
for start, instance in preprocess_c_source_code(source_code, EnumDefinition):
|
||||
if start in definitions:
|
||||
continue
|
||||
if isinstance(instance, EnumDefinition):
|
||||
definition, prototype = instance.generate_tranlation_function()
|
||||
definition = instance.generate_tranlation_function()
|
||||
else:
|
||||
definition = instance
|
||||
prototype = instance
|
||||
definitions[start] = definition
|
||||
prototypes[start] = prototype
|
||||
|
||||
function_definitions = [str(v) for _, v in sorted(definitions.items())]
|
||||
function_prototypes = [str(v) for _, v in sorted(prototypes.items())]
|
||||
if output_directory == sys.stdout:
|
||||
sys.stdout.write(OUTPUT_H_TEMPLATE.format(
|
||||
functions='\n'.join(function_prototypes)))
|
||||
sys.stdout.write(OUTPUT_C_TEMPLATE.format(
|
||||
functions='\n'.join(function_definitions)))
|
||||
else:
|
||||
|
@ -310,10 +301,6 @@ def generate_ssl_debug_helpers(output_directory, mbedtls_root):
|
|||
f.write(OUTPUT_C_TEMPLATE.format(
|
||||
functions='\n'.join(function_definitions)))
|
||||
|
||||
with open(os.path.join(output_directory, 'ssl_debug_helpers_generated.h'), 'w') as f:
|
||||
f.write(OUTPUT_H_TEMPLATE.format(
|
||||
functions='\n'.join(function_prototypes)))
|
||||
|
||||
|
||||
def main():
|
||||
"""
|
||||
|
|
|
@ -118,7 +118,7 @@ check()
|
|||
check scripts/generate_errors.pl library/error.c
|
||||
check scripts/generate_query_config.pl programs/test/query_config.c
|
||||
check scripts/generate_features.pl library/version_features.c
|
||||
check scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated.h library/ssl_debug_helpers_generated.c
|
||||
check scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated.c
|
||||
# generate_visualc_files enumerates source files (library/*.c). It doesn't
|
||||
# care about their content, but the files must exist. So it must run after
|
||||
# the step that creates or updates these files.
|
||||
|
|
Loading…
Reference in a new issue