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/* SPDX-License-Identifier: BSD-3-Clause */
5/* */
6/* Redistribution and use in source and binary forms, with or without */
7/* modification, are permitted provided that the following conditions are */
8/* met: */
9/* */
10/* 1. Redistributions of source code must retain the above copyright */
11/* notice, this list of conditions and the following disclaimer. */
12/* */
13/* 2. Redistributions in binary form must reproduce the above copyright */
14/* notice, this list of conditions and the following disclaimer in the */
15/* documentation and/or other materials provided with the distribution. */
16/* */
17/* 3. Neither the name of the copyright holder nor the names of its */
18/* contributors may be used to endorse or promote products derived from */
19/* this software without specific prior written permission. */
20/* */
21/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS */
22/* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */
23/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */
24/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
25/* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
26/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
27/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR */
28/* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
29/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
30/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
31/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
32/*--------------------------------------------------------------------------*/
33
38
39#ifndef MCUX_CSSL_FLOW_PROTECTION_H_
40#define MCUX_CSSL_FLOW_PROTECTION_H_
41
42#include <mcuxCsslAnalysis.h>
43/* Include the actual implementation of the flow protection mechanism. */
45
46MCUX_CSSL_ANALYSIS_START_PATTERN_URL_IN_COMMENTS()
91
92
93
100
101
115#define MCUX_CSSL_FP_COUNTER_STMT(statement) \
116 MCUX_CSSL_FP_COUNTER_STMT_IMPL(statement)
117
136
137
158#define MCUX_CSSL_FP_PROTECTED_TYPE(resultType) \
159 MCUX_CSSL_FP_PROTECTED_TYPE_IMPL(resultType)
160
186#define MCUX_CSSL_FP_FUNCTION_DECL(...) \
187 MCUX_CSSL_FP_FUNCTION_DECL_IMPL(__VA_ARGS__)
188
220#define MCUX_CSSL_FP_FUNCTION_DEF(...) \
221 MCUX_CSSL_FP_FUNCTION_DEF_IMPL(__VA_ARGS__)
222
256#define MCUX_CSSL_FP_FUNCTION_POINTER(type, definition) \
257 MCUX_CSSL_FP_FUNCTION_POINTER_IMPL(type, definition)
258
305#define MCUX_CSSL_FP_FUNCTION_ENTRY(...) \
306 MCUX_CSSL_FP_FUNCTION_ENTRY_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
307
348#define MCUX_CSSL_FP_FUNCTION_EXIT(...) \
349 MCUX_CSSL_FP_FUNCTION_EXIT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
350
387#define MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK(...) \
388 MCUX_CSSL_FP_FUNCTION_EXIT_WITH_CHECK_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
389
427#define MCUX_CSSL_FP_FUNCTION_EXIT_VOID(...) \
428 MCUX_CSSL_FP_FUNCTION_EXIT_VOID_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
429
442#define MCUX_CSSL_FP_RESULT(...) \
443 MCUX_CSSL_FP_RESULT_IMPL(__VA_ARGS__)
444
455#define MCUX_CSSL_FP_PROTECTION_TOKEN(return) \
456 MCUX_CSSL_FP_PROTECTION_TOKEN_IMPL(return)
457
494#define MCUX_CSSL_FP_FUNCTION_CALL(...) \
495 MCUX_CSSL_FP_FUNCTION_CALL_IMPL(__VA_ARGS__)
496
529#define MCUX_CSSL_FP_FUNCTION_CALL_VOID(...) \
530 MCUX_CSSL_FP_FUNCTION_CALL_VOID_IMPL(__VA_ARGS__)
531
567#define MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED(...) \
568 MCUX_CSSL_FP_FUNCTION_CALL_PROTECTED_IMPL(__VA_ARGS__)
569
603#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED(...) \
604 MCUX_CSSL_FP_FUNCTION_CALL_VOID_PROTECTED_IMPL(__VA_ARGS__)
605
643#define MCUX_CSSL_FP_FUNCTION_CALL_BEGIN(...) \
644 MCUX_CSSL_FP_FUNCTION_CALL_BEGIN_IMPL(__VA_ARGS__)
645
678#define MCUX_CSSL_FP_FUNCTION_CALL_END(...) \
679 MCUX_CSSL_FP_FUNCTION_CALL_END_IMPL(__VA_ARGS__)
680
714#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN(...) \
715 MCUX_CSSL_FP_FUNCTION_CALL_VOID_BEGIN_IMPL(__VA_ARGS__)
716
745#define MCUX_CSSL_FP_FUNCTION_CALL_VOID_END(...) \
746 MCUX_CSSL_FP_FUNCTION_CALL_VOID_END_IMPL(__VA_ARGS__)
747
797#define MCUX_CSSL_FP_FUNCTION_CALLED(...) \
798 MCUX_CSSL_FP_FUNCTION_CALLED_IMPL(__VA_ARGS__)
799
800
832#define MCUX_CSSL_FP_FUNCTION_ENTERED(id) \
833 MCUX_CSSL_FP_FUNCTION_ENTERED_IMPL(id)
834
835
849
876#define MCUX_CSSL_FP_LOOP_DECL(id) \
877 MCUX_CSSL_FP_LOOP_DECL_IMPL(id)
878
904#define MCUX_CSSL_FP_LOOP_ITERATION(...) \
905 MCUX_CSSL_FP_LOOP_ITERATION_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
906
939#define MCUX_CSSL_FP_LOOP_ITERATIONS(id, count) \
940 MCUX_CSSL_FP_LOOP_ITERATIONS_IMPL(id, count)
941
942
943
969
1001#define MCUX_CSSL_FP_BRANCH_DECL(id) \
1002 MCUX_CSSL_FP_BRANCH_DECL_IMPL(id)
1003
1041#define MCUX_CSSL_FP_BRANCH_POSITIVE(...) \
1042 MCUX_CSSL_FP_BRANCH_POSITIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1043
1065#define MCUX_CSSL_FP_BRANCH_NEGATIVE(...) \
1066 MCUX_CSSL_FP_BRANCH_NEGATIVE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1067
1109#define MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE(...) \
1110 MCUX_CSSL_FP_BRANCH_TAKEN_POSITIVE_IMPL(__VA_ARGS__)
1111
1137#define MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE(...) \
1138 MCUX_CSSL_FP_BRANCH_TAKEN_NEGATIVE_IMPL(__VA_ARGS__)
1139
1140
1141
1155
1198#define MCUX_CSSL_FP_SWITCH_DECL(id) \
1199 MCUX_CSSL_FP_SWITCH_DECL_IMPL(id)
1200
1247#define MCUX_CSSL_FP_SWITCH_CASE(...) \
1248 MCUX_CSSL_FP_SWITCH_CASE_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1249
1295#define MCUX_CSSL_FP_SWITCH_DEFAULT(...) \
1296 MCUX_CSSL_FP_SWITCH_DEFAULT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1297
1349#define MCUX_CSSL_FP_SWITCH_TAKEN(...) \
1350 MCUX_CSSL_FP_SWITCH_TAKEN_IMPL(__VA_ARGS__)
1351
1401#define MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT(...) \
1402 MCUX_CSSL_FP_SWITCH_TAKEN_DEFAULT_IMPL(__VA_ARGS__)
1403
1404
1405
1414
1440#define MCUX_CSSL_FP_EXPECT(...) \
1441 MCUX_CSSL_FP_EXPECT_IMPL(__VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1442
1463#define MCUX_CSSL_FP_CONDITIONAL(condition, ...) \
1464 MCUX_CSSL_FP_CONDITIONAL_IMPL((condition), __VA_ARGS__, MCUX_CSSL_FP_VOID_EXPECTATION_IMPL())
1465
1493#define MCUX_CSSL_FP_ASSERT(...) \
1494 MCUX_CSSL_FP_ASSERT_IMPL(__VA_ARGS__)
1495
1496MCUX_CSSL_ANALYSIS_STOP_PATTERN_URL_IN_COMMENTS()
1497
1498#endif /* MCUX_CSSL_FLOW_PROTECTION_H_ */
1499
Selection of the implementation for the flow protection mechanism.