MCUX CLNS
MCUX Crypto Library Normal Secure
Loading...
Searching...
No Matches
mcuxCsslFlowProtection.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------------*/
2/* Copyright 2020-2025 NXP */
3/* */
4/* NXP Confidential and Proprietary. This software is owned or controlled */
5/* by NXP and may only be used strictly in accordance with the applicable */
6/* license terms. By expressly accepting such terms or by downloading, */
7/* installing, activating and/or otherwise using the software, you are */
8/* agreeing that you have read, and that you agree to comply with and are */
9/* bound by, such license terms. If you do not agree to be bound by the */
10/* applicable license terms, then you may not retain, install, activate or */
11/* otherwise use the software. */
12/*--------------------------------------------------------------------------*/
13
18
19#ifndef MCUX_CSSL_FLOW_PROTECTION_H_
20#define MCUX_CSSL_FLOW_PROTECTION_H_
21
22#include <mcuxCsslAnalysis.h>
23/* Include the actual implementation of the flow protection mechanism. */
25
26MCUX_CSSL_ANALYSIS_START_PATTERN_URL_IN_COMMENTS()
71
72
73
80
81
95#define MCUX_CSSL_FP_COUNTER_STMT(statement) \
96 MCUX_CSSL_FP_COUNTER_STMT_IMPL(statement)
97
116
117
138#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType) \
139 MCUX_CSSL_FP_PROTECTED_TYPE_IMPL(resultType)
140
166#define MCUX_CSSL_FP_FUNCTION_DECL(...) \
167 MCUX_CSSL_FP_FUNCTION_DECL_IMPL(__VA_ARGS__)
168
200#define MCUX_CSSL_FP_FUNCTION_DEF(...) \
201 MCUX_CSSL_FP_FUNCTION_DEF_IMPL(__VA_ARGS__)
202
236#define MCUX_CSSL_FP_FUNCTION_POINTER(type, definition) \
237 MCUX_CSSL_FP_FUNCTION_POINTER_IMPL(type, definition)
238
285#define MCUX_CSSL_FP_FUNCTION_ENTRY(...) \
286 MCUX_CSSL_FP_FUNCTION_ENTRY_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
287
328#define MCUX_CSSL_FP_FUNCTION_EXIT(...) \
329 MCUX_CSSL_FP_FUNCTION_EXIT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
330
367#define MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK(...) \
368 MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
369
407#define MCUX_CSSL_FP_FUNCTION_EXIT_VOID(...) \
408 MCUX_CSSL_FP_FUNCTION_EXIT_VOID_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
409
422#define MCUX_CSSL_FP_RESULT(...) \
423 MCUX_CSSL_FP_RESULT_IMPL(__VA_ARGS__)
424
435#define MCUX_CSSL_FP_PROTECTION_TOKEN(return) \
436 MCUX_CSSL_FP_PROTECTION_TOKEN_IMPL(return)
437
474#define MCUX_CSSL_FP_FUNCTION_CALL(...) \
475 MCUX_CSSL_FP_FUNCTION_CALL_IMPL(__VA_ARGS__)
476
509#define MCUX_CSSL_FP_FUNCTION_CALL_VOID(...) \
510 MCUX_CSSL_FP_FUNCTION_CALL_VOID_IMPL(__VA_ARGS__)
511
547#define MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED(...) \
548 MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED_IMPL(__VA_ARGS__)
549
583#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED(...) \
584 MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED_IMPL(__VA_ARGS__)
585
623#define MCUX_CSSL_FP_FUNCTION_CALL_BEGIN(...) \
624 MCUX_CSSL_FP_FUNCTION_CALL_BEGIN_IMPL(__VA_ARGS__)
625
658#define MCUX_CSSL_FP_FUNCTION_CALL_END(...) \
659 MCUX_CSSL_FP_FUNCTION_CALL_END_IMPL(__VA_ARGS__)
660
694#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN(...) \
695 MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN_IMPL(__VA_ARGS__)
696
725#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_END(...) \
726 MCUX_CSSL_FP_FUNCTION_CALL_VOID_END_IMPL(__VA_ARGS__)
727
777#define MCUX_CSSL_FP_FUNCTION_CALLED(...) \
778 MCUX_CSSL_FP_FUNCTION_CALLED_IMPL(__VA_ARGS__)
779
780
812#define MCUX_CSSL_FP_FUNCTION_ENTERED(id) \
813 MCUX_CSSL_FP_FUNCTION_ENTERED_IMPL(id)
814
815
829
856#define MCUX_CSSL_FP_LOOP_DECL(id) \
857 MCUX_CSSL_FP_LOOP_DECL_IMPL(id)
858
884#define MCUX_CSSL_FP_LOOP_ITERATION(...) \
885 MCUX_CSSL_FP_LOOP_ITERATION_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
886
919#define MCUX_CSSL_FP_LOOP_ITERATIONS(id, count) \
920 MCUX_CSSL_FP_LOOP_ITERATIONS_IMPL(id, count)
921
922
923
949
981#define MCUX_CSSL_FP_BRANCH_DECL(id) \
982 MCUX_CSSL_FP_BRANCH_DECL_IMPL(id)
983
1021#define MCUX_CSSL_FP_BRANCH_POSITIVE(...) \
1022 MCUX_CSSL_FP_BRANCH_POSITIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1023
1045#define MCUX_CSSL_FP_BRANCH_NEGATIVE(...) \
1046 MCUX_CSSL_FP_BRANCH_NEGATIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1047
1089#define MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE(...) \
1090 MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE_IMPL(__VA_ARGS__)
1091
1117#define MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE(...) \
1118 MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE_IMPL(__VA_ARGS__)
1119
1120
1121
1135
1178#define MCUX_CSSL_FP_SWITCH_DECL(id) \
1179 MCUX_CSSL_FP_SWITCH_DECL_IMPL(id)
1180
1227#define MCUX_CSSL_FP_SWITCH_CASE(...) \
1228 MCUX_CSSL_FP_SWITCH_CASE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1229
1275#define MCUX_CSSL_FP_SWITCH_DEFAULT(...) \
1276 MCUX_CSSL_FP_SWITCH_DEFAULT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1277
1329#define MCUX_CSSL_FP_SWITCH_TAKEN(...) \
1330 MCUX_CSSL_FP_SWITCH_TAKEN_IMPL(__VA_ARGS__)
1331
1381#define MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT(...) \
1382 MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT_IMPL(__VA_ARGS__)
1383
1384
1385
1394
1420#define MCUX_CSSL_FP_EXPECT(...) \
1421 MCUX_CSSL_FP_EXPECT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1422
1443#define MCUX_CSSL_FP_CONDITIONAL(condition, ...) \
1444 MCUX_CSSL_FP_CONDITIONAL_IMPL((condition), __VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1445
1473#define MCUX_CSSL_FP_ASSERT(...) \
1474 MCUX_CSSL_FP_ASSERT_IMPL(__VA_ARGS__)
1475
1476MCUX_CSSL_ANALYSIS_STOP_PATTERN_URL_IN_COMMENTS()
1477
1478#endif /* MCUX_CSSL_FLOW_PROTECTION_H_ */
1479
Selection of the implementation for the flow protection mechanism.