MCUX CLNS
MCUX Crypto Library Normal Secure
 
Loading...
Searching...
No Matches
mcuxCsslFlowProtection.h
Go to the documentation of this file.
1/*--------------------------------------------------------------------------*/
2/* Copyright 2020-2023 NXP */
3/* */
4/* NXP Confidential. This software is owned or controlled by NXP and may */
5/* only be used strictly in accordance with the applicable license terms. */
6/* By expressly accepting such terms or by downloading, installing, */
7/* activating and/or otherwise using the software, you are agreeing that */
8/* you have read, and that you agree to comply with and are bound by, such */
9/* license terms. If you do not agree to be bound by the applicable license */
10/* terms, then you may not retain, install, activate or otherwise use the */
11/* software. */
12/*--------------------------------------------------------------------------*/
13
19#ifndef MCUX_CSSL_FLOW_PROTECTION_H_
20#define MCUX_CSSL_FLOW_PROTECTION_H_
21
22#include <mcuxCsslAnalysis.h>
23
24/* Include the actual implementation of the flow protection mechanism. */
26
60MCUX_CSSL_ANALYSIS_START_SUPPRESS_TEXT_IN_COMMENTS("Comments outline example sequences. For more readability, additional inner comments might be added.")
81#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType) \
82 MCUX_CSSL_FP_PROTECTED_TYPE_IMPL(resultType)
83
96#define MCUX_CSSL_FP_COUNTER_STMT(statement) \
97 MCUX_CSSL_FP_COUNTER_STMT_IMPL(statement)
98
99
125#define MCUX_CSSL_FP_FUNCTION_DECL(...) \
126 MCUX_CSSL_FP_FUNCTION_DECL_IMPL(__VA_ARGS__)
127
159#define MCUX_CSSL_FP_FUNCTION_DEF(...) \
160 MCUX_CSSL_FP_FUNCTION_DEF_IMPL(__VA_ARGS__)
161
195#define MCUX_CSSL_FP_FUNCTION_POINTER(type, definition) \
196 MCUX_CSSL_FP_FUNCTION_POINTER_IMPL(type, definition)
197
244#define MCUX_CSSL_FP_FUNCTION_ENTRY(...) \
245 MCUX_CSSL_FP_FUNCTION_ENTRY_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
246
286#define MCUX_CSSL_FP_FUNCTION_EXIT(...) \
287 MCUX_CSSL_FP_FUNCTION_EXIT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
288
325#define MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK(...) \
326 MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
327
365#define MCUX_CSSL_FP_FUNCTION_EXIT_VOID(...) \
366 MCUX_CSSL_FP_FUNCTION_EXIT_VOID_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
367
380#define MCUX_CSSL_FP_RESULT(...) \
381 MCUX_CSSL_FP_RESULT_IMPL(__VA_ARGS__)
382
393#define MCUX_CSSL_FP_PROTECTION_TOKEN(return) \
394 MCUX_CSSL_FP_PROTECTION_TOKEN_IMPL(return)
395
432#define MCUX_CSSL_FP_FUNCTION_CALL(...) \
433 MCUX_CSSL_FP_FUNCTION_CALL_IMPL(__VA_ARGS__)
434
467#define MCUX_CSSL_FP_FUNCTION_CALL_VOID(...) \
468 MCUX_CSSL_FP_FUNCTION_CALL_VOID_IMPL(__VA_ARGS__)
469
505#define MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED(...) \
506 MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED_IMPL(__VA_ARGS__)
507
541#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED(...) \
542 MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED_IMPL(__VA_ARGS__)
543
581#define MCUX_CSSL_FP_FUNCTION_CALL_BEGIN(...) \
582 MCUX_CSSL_FP_FUNCTION_CALL_BEGIN_IMPL(__VA_ARGS__)
583
616#define MCUX_CSSL_FP_FUNCTION_CALL_END(...) \
617 MCUX_CSSL_FP_FUNCTION_CALL_END_IMPL(__VA_ARGS__)
618
652#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN(...) \
653 MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN_IMPL(__VA_ARGS__)
654
683#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_END(...) \
684 MCUX_CSSL_FP_FUNCTION_CALL_VOID_END_IMPL(__VA_ARGS__)
685
735#define MCUX_CSSL_FP_FUNCTION_CALLED(...) \
736 MCUX_CSSL_FP_FUNCTION_CALLED_IMPL(__VA_ARGS__)
737
738
770#define MCUX_CSSL_FP_FUNCTION_ENTERED(id) \
771 MCUX_CSSL_FP_FUNCTION_ENTERED_IMPL(id)
772
773
810#define MCUX_CSSL_FP_LOOP_DECL(id) \
811 MCUX_CSSL_FP_LOOP_DECL_IMPL(id)
812
838#define MCUX_CSSL_FP_LOOP_ITERATION(...) \
839 MCUX_CSSL_FP_LOOP_ITERATION_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
840
873#define MCUX_CSSL_FP_LOOP_ITERATIONS(id, count) \
874 MCUX_CSSL_FP_LOOP_ITERATIONS_IMPL(id, count)
875
876
877
919#define MCUX_CSSL_FP_BRANCH_DECL(id) \
920 MCUX_CSSL_FP_BRANCH_DECL_IMPL(id)
921
958#define MCUX_CSSL_FP_BRANCH_POSITIVE(...) \
959 MCUX_CSSL_FP_BRANCH_POSITIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
960
997#define MCUX_CSSL_FP_BRANCH_NEGATIVE(...) \
998 MCUX_CSSL_FP_BRANCH_NEGATIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
999
1040#define MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE(...) \
1041 MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE_IMPL(__VA_ARGS__)
1042
1085#define MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE(...) \
1086 MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE_IMPL(__VA_ARGS__)
1087
1088
1089
1142#define MCUX_CSSL_FP_SWITCH_DECL(id) \
1143 MCUX_CSSL_FP_SWITCH_DECL_IMPL(id)
1144
1191#define MCUX_CSSL_FP_SWITCH_CASE(...) \
1192 MCUX_CSSL_FP_SWITCH_CASE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1193
1239#define MCUX_CSSL_FP_SWITCH_DEFAULT(...) \
1240 MCUX_CSSL_FP_SWITCH_DEFAULT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1241
1293#define MCUX_CSSL_FP_SWITCH_TAKEN(...) \
1294 MCUX_CSSL_FP_SWITCH_TAKEN_IMPL(__VA_ARGS__)
1295
1345#define MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT(...) \
1346 MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT_IMPL(__VA_ARGS__)
1347
1348
1349
1382#define MCUX_CSSL_FP_EXPECT(...) \
1383 MCUX_CSSL_FP_EXPECT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1384
1405#define MCUX_CSSL_FP_CONDITIONAL(condition, ...) \
1406 MCUX_CSSL_FP_CONDITIONAL_IMPL((condition), __VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1407
1408MCUX_CSSL_ANALYSIS_STOP_SUPPRESS_TEXT_IN_COMMENTS()
1409
1410
1435#define MCUX_CSSL_FP_ASSERT(...) \
1436 MCUX_CSSL_FP_ASSERT_IMPL(__VA_ARGS__)
1437
1438#endif /* MCUX_CSSL_FLOW_PROTECTION_H_ */
1439
Selection of the implementation for the flow protection mechanism.