@@ -133,7 +133,18 @@ WOLFSSL_API int wolfSSL_GetAllocators(wolfSSL_Malloc_cb* mf,
133133
134134 #ifndef LARGEST_MEM_BUCKET
135135 #ifndef SESSION_CERTS
136- #define LARGEST_MEM_BUCKET 16128
136+ #ifdef HAVE_DILITHIUM
137+ #if defined(WOLFSSL_DILITHIUM_VERIFY_SMALL_MEM ) && \
138+ defined(WOLFSSL_DILITHIUM_SIGN_SMALL_MEM ) && \
139+ defined(WOLFSSL_DILITHIUM_MAKE_KEY_SMALL_MEM ) && \
140+ defined(WOLFSSL_DILITHIUM_VERIFY_ONLY )
141+ #define LARGEST_MEM_BUCKET 14000 /* Dilithium low mem */
142+ #else
143+ #define LARGEST_MEM_BUCKET 131072 /* Dilithium full mem */
144+ #endif
145+ #else
146+ #define LARGEST_MEM_BUCKET 16128
147+ #endif
137148 #elif defined(OPENSSL_EXTRA )
138149 #ifdef WOLFSSL_TLS13
139150 #define LARGEST_MEM_BUCKET 30400
@@ -151,9 +162,24 @@ WOLFSSL_API int wolfSSL_GetAllocators(wolfSSL_Malloc_cb* mf,
151162
152163 #ifndef WOLFMEM_BUCKETS
153164 #ifndef SESSION_CERTS
154- /* default size of chunks of memory to separate into */
155- #define WOLFMEM_BUCKETS 64,128,256,512,1024,2432,3456,4544,\
156- LARGEST_MEM_BUCKET
165+ #ifdef HAVE_DILITHIUM
166+ #if defined(WOLFSSL_DILITHIUM_VERIFY_SMALL_MEM ) && \
167+ defined(WOLFSSL_DILITHIUM_SIGN_SMALL_MEM ) && \
168+ defined(WOLFSSL_DILITHIUM_MAKE_KEY_SMALL_MEM ) && \
169+ defined(WOLFSSL_DILITHIUM_VERIFY_ONLY )
170+ /* default size of chunks of memory to separate into */
171+ #define WOLFMEM_BUCKETS 64,128,256,512,1024,2048,4096,\
172+ 8192,LARGEST_MEM_BUCKET
173+ #else
174+ /* default size of chunks of memory to separate into */
175+ #define WOLFMEM_BUCKETS 64,128,256,512,1024,8192,32768,\
176+ 65536,LARGEST_MEM_BUCKET
177+ #endif
178+ #else
179+ /* default size of chunks of memory to separate into */
180+ #define WOLFMEM_BUCKETS 64,128,256,512,1024,2432,3456,4544,\
181+ LARGEST_MEM_BUCKET
182+ #endif
157183 #elif defined(OPENSSL_EXTRA )
158184 /* extra storage in structs for multiple attributes and order */
159185 #define WOLFMEM_BUCKETS 64,128,256,512,1024,2432,3360,4480,\
@@ -168,7 +194,16 @@ WOLFSSL_API int wolfSSL_GetAllocators(wolfSSL_Malloc_cb* mf,
168194 #endif
169195
170196 #ifndef WOLFMEM_DIST
171- #ifndef WOLFSSL_STATIC_MEMORY_SMALL
197+ #ifdef HAVE_DILITHIUM
198+ #if defined(WOLFSSL_DILITHIUM_VERIFY_SMALL_MEM ) && \
199+ defined(WOLFSSL_DILITHIUM_SIGN_SMALL_MEM ) && \
200+ defined(WOLFSSL_DILITHIUM_MAKE_KEY_SMALL_MEM ) && \
201+ defined(WOLFSSL_DILITHIUM_VERIFY_ONLY )
202+ #define WOLFMEM_DIST 20,8,6,10,8,6,4,2,1
203+ #else
204+ #define WOLFMEM_DIST 30,10,8,15,8,10,8,5,1
205+ #endif
206+ #elif !defined(WOLFSSL_STATIC_MEMORY_SMALL )
172207 #define WOLFMEM_DIST 49,10,6,14,5,6,9,1,1
173208 #else
174209 /* Low resource and not RSA */
0 commit comments