MCUX CLNS
MCUX Crypto Library Normal Secure
Loading...
Searching...
No Matches
mcuxClHashModes_MemoryConsumption.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
36
37#ifndef MCUXCLHASHMODES_MEMORYCONSUMPTION_H_
38#define MCUXCLHASHMODES_MEMORYCONSUMPTION_H_
39
46
47/****************************************************************************/
48/* Definitions of workarea buffer sizes for the mcuxClHashModes functions. */
49/****************************************************************************/
50
51
52#define MCUXCLHASH_COMPUTE_CPU_WA_BUFFER_SIZE_SHA2_224 (64u)
53#define MCUXCLHASH_COMPUTE_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_224 (88u)
54#define MCUXCLHASH_PROCESS_CPU_WA_BUFFER_SIZE_SHA2_224 (4u)
55#define MCUXCLHASH_PROCESS_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_224 (20u)
56#define MCUXCLHASH_FINISH_CPU_WA_BUFFER_SIZE_SHA2_224 (4u)
57#define MCUXCLHASH_FINISH_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_224 (4u)
58
59#define MCUXCLHASH_COMPUTE_CPU_WA_BUFFER_SIZE_SHA2_256 (64u)
60#define MCUXCLHASH_COMPUTE_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_256 (88u)
61#define MCUXCLHASH_PROCESS_CPU_WA_BUFFER_SIZE_SHA2_256 (4u)
62#define MCUXCLHASH_PROCESS_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_256 (20u)
63#define MCUXCLHASH_FINISH_CPU_WA_BUFFER_SIZE_SHA2_256 (4u)
64#define MCUXCLHASH_FINISH_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_256 (4u)
65
66#define MCUXCLHASH_COMPUTE_CPU_WA_BUFFER_SIZE_SHA2_384 (128u)
67#define MCUXCLHASH_COMPUTE_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_384 (152u)
68#define MCUXCLHASH_PROCESS_CPU_WA_BUFFER_SIZE_SHA2_384 (4u)
69#define MCUXCLHASH_PROCESS_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_384 (20u)
70#define MCUXCLHASH_FINISH_CPU_WA_BUFFER_SIZE_SHA2_384 (4u)
71#define MCUXCLHASH_FINISH_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_384 (4u)
72
73#define MCUXCLHASH_COMPUTE_CPU_WA_BUFFER_SIZE_SHA2_512 (128u)
74#define MCUXCLHASH_COMPUTE_CPU_WA_BUFFER_SIZE_SHA2_512_224 (128u)
75#define MCUXCLHASH_COMPUTE_CPU_WA_BUFFER_SIZE_SHA2_512_256 (128u)
76#define MCUXCLHASH_COMPUTE_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512 (152u)
77#define MCUXCLHASH_COMPUTE_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512_224 (4u)
78#define MCUXCLHASH_COMPUTE_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512_256 (4u)
79#define MCUXCLHASH_PROCESS_CPU_WA_BUFFER_SIZE_SHA2_512 (4u)
80#define MCUXCLHASH_PROCESS_CPU_WA_BUFFER_SIZE_SHA2_512_224 (4u)
81#define MCUXCLHASH_PROCESS_CPU_WA_BUFFER_SIZE_SHA2_512_256 (4u)
82#define MCUXCLHASH_PROCESS_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512 (20u)
83#define MCUXCLHASH_PROCESS_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512_224 (4u)
84#define MCUXCLHASH_PROCESS_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512_256 (4u)
85#define MCUXCLHASH_FINISH_CPU_WA_BUFFER_SIZE_SHA2_512 (4u)
86#define MCUXCLHASH_FINISH_CPU_WA_BUFFER_SIZE_SHA2_512_224 (4u)
87#define MCUXCLHASH_FINISH_CPU_WA_BUFFER_SIZE_SHA2_512_256 (4u)
88#define MCUXCLHASH_FINISH_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512 (4u)
89#define MCUXCLHASH_FINISH_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512_224 (4u)
90#define MCUXCLHASH_FINISH_NONBLOCKING_CPU_WA_BUFFER_SIZE_SHA2_512_256 (4u)
91
92#if defined(MCUXCL_FEATURE_HASH_C_SHA3_SHAKE) || defined(MCUXCL_FEATURE_HASH_C_SHA3)
93#define MCUXCLHASH_COMPUTE_CPU_WA_BUFFER_SIZE_SHA3 (4u)
94#define MCUXCLHASH_PROCESS_CPU_WA_BUFFER_SIZE_SHA3 (4u)
95#define MCUXCLHASH_FINISH_CPU_WA_BUFFER_SIZE_SHA3 (4u)
96#endif /* defined(MCUXCL_FEATURE_HASH_C_SHA3_SHAKE) || defined(MCUXCL_FEATURE_HASH_C_SHA3) */
97
98
99
100
101
102
103
104
106
107
114
115/**************************************************************************************************************/
116/* Definitions of context sizes and state buffer sizes for mcuxClHash_export_state and mcuxClHash_import_state */
117/**************************************************************************************************************/
118
119
120#define MCUXCLHASH_CONTEXT_SIZE_SHA2_224_IN_WORDS (128u / sizeof(uint32_t))
121#define MCUXCLHASH_EXPORT_IMPORT_STATE_SIZE_SHA2_224 (40u)
122
123#define MCUXCLHASH_CONTEXT_SIZE_SHA2_256_IN_WORDS (128u / sizeof(uint32_t))
124#define MCUXCLHASH_EXPORT_IMPORT_STATE_SIZE_SHA2_256 (40u)
125
126#define MCUXCLHASH_CONTEXT_SIZE_SHA2_384_IN_WORDS (224u / sizeof(uint32_t))
127#define MCUXCLHASH_EXPORT_IMPORT_STATE_SIZE_SHA2_384 (80u)
128
129#define MCUXCLHASH_CONTEXT_SIZE_SHA2_512_IN_WORDS (224u / sizeof(uint32_t))
130#define MCUXCLHASH_EXPORT_IMPORT_STATE_SIZE_SHA2_512 (80u)
131
132
133
134#if defined(MCUXCL_FEATURE_HASH_C_SHA3_SHAKE) || defined(MCUXCL_FEATURE_HASH_C_SHA3)
135#define MCUXCLHASH_CONTEXT_SIZE_SHA3_224_IN_WORDS (4u / sizeof(uint32_t))
136#define MCUXCLHASH_CONTEXT_SIZE_SHA3_256_IN_WORDS (4u / sizeof(uint32_t))
137#define MCUXCLHASH_CONTEXT_SIZE_SHA3_384_IN_WORDS (4u / sizeof(uint32_t))
138#define MCUXCLHASH_CONTEXT_SIZE_SHA3_512_IN_WORDS (4u / sizeof(uint32_t))
139#define MCUXCLHASH_CONTEXT_SIZE_SHA3_SHAKE_128_IN_WORDS (4u / sizeof(uint32_t))
140#define MCUXCLHASH_CONTEXT_SIZE_SHA3_SHAKE_256_IN_WORDS (4u / sizeof(uint32_t))
141#define MCUXCLHASH_EXPORT_IMPORT_STATE_SIZE_SHA3 (216u)
142#endif /* defined(MCUXCL_FEATURE_HASH_C_SHA3_SHAKE) || defined(MCUXCL_FEATURE_HASH_C_SHA3) */
143
144
146
147#if defined(MCUXCL_FEATURE_HASH_C_SHA3_SHAKE)
148/* Algorithm descriptor sizes */
149#define MCUXCLHASH_CUSTOM_ALGORITHM_DESCRIPTOR_SIZE ($(mcuxClHash_AlgorithmDescriptor_size)u)
150#endif /* defined(MCUXCL_FEATURE_HASH_C_SHA3_SHAKE) */
151
152#endif /* MCUXCLHASHMODES_MEMORYCONSUMPTION_H_ */