mirror of
				https://github.com/Mbed-TLS/mbedtls.git
				synced 2025-11-03 20:33:16 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
"""Generate C preprocessor code to check for bad configurations.
 | 
						|
"""
 | 
						|
 | 
						|
from typing import Iterator
 | 
						|
 | 
						|
import framework_scripts_path # pylint: disable=unused-import
 | 
						|
from mbedtls_framework.config_checks_generator import * \
 | 
						|
    #pylint: disable=wildcard-import,unused-wildcard-import
 | 
						|
from mbedtls_framework import config_history
 | 
						|
 | 
						|
class CryptoInternal(SubprojectInternal):
 | 
						|
    SUBPROJECT = 'TF-PSA-Crypto'
 | 
						|
 | 
						|
class CryptoOption(SubprojectOption):
 | 
						|
    SUBPROJECT = 'psa/crypto_config.h'
 | 
						|
 | 
						|
ALWAYS_ENABLED_SINCE_4_0 = frozenset([
 | 
						|
    'MBEDTLS_PSA_CRYPTO_CONFIG',
 | 
						|
    'MBEDTLS_USE_PSA_CRYPTO',
 | 
						|
])
 | 
						|
 | 
						|
def checkers_for_removed_options() -> Iterator[Checker]:
 | 
						|
    """Discover removed options. Yield corresponding checkers."""
 | 
						|
    history = config_history.ConfigHistory()
 | 
						|
    old_public = history.options('mbedtls', '3.6')
 | 
						|
    new_public = history.options('mbedtls', '4.0')
 | 
						|
    crypto_public = history.options('tfpsacrypto', '1.0')
 | 
						|
    crypto_internal = history.internal('tfpsacrypto', '1.0')
 | 
						|
    for option in sorted(old_public - new_public):
 | 
						|
        if option in ALWAYS_ENABLED_SINCE_4_0:
 | 
						|
            continue
 | 
						|
        if option in crypto_public:
 | 
						|
            yield CryptoOption(option)
 | 
						|
        elif option in crypto_internal:
 | 
						|
            yield CryptoInternal(option)
 | 
						|
        else:
 | 
						|
            yield Removed(option, 'Mbed TLS 4.0')
 | 
						|
 | 
						|
def all_checkers() -> Iterator[Checker]:
 | 
						|
    """Yield all checkers."""
 | 
						|
    yield from checkers_for_removed_options()
 | 
						|
 | 
						|
MBEDTLS_CHECKS = BranchData(
 | 
						|
    header_directory='library',
 | 
						|
    header_prefix='mbedtls_',
 | 
						|
    project_cpp_prefix='MBEDTLS',
 | 
						|
    checkers=list(all_checkers()),
 | 
						|
)
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    main(MBEDTLS_CHECKS)
 |