SharkSSL™ Embedded SSL/TLS Stack
SharkSSL_cfg.h
1
/*
2
* ____ _________ __ _
3
* / __ \___ ____ _/ /_ __(_)___ ___ ___ / / ____ ____ _(_)____
4
* / /_/ / _ \/ __ `/ / / / / / __ `__ \/ _ \/ / / __ \/ __ `/ / ___/
5
* / _, _/ __/ /_/ / / / / / / / / / / / __/ /___/ /_/ / /_/ / / /__
6
* /_/ |_|\___/\__,_/_/ /_/ /_/_/ /_/ /_/\___/_____/\____/\__, /_/\___/
7
* /____/
8
*
9
* SharkSSL Embedded SSL/TLS Stack
10
****************************************************************************
11
* PROGRAM MODULE
12
*
13
* $Id: SharkSSL_cfg.h 6407 2026-10-12 21:41:24Z gianluca $
14
*
15
* COPYRIGHT: Real Time Logic LLC, 2010 - 2026
16
*
17
* This software is copyrighted by and is the sole property of Real
18
* Time Logic LLC. All rights, title, ownership, or other interests in
19
* the software remain the property of Real Time Logic LLC. This
20
* software may only be used in accordance with the terms and
21
* conditions stipulated in the corresponding license agreement under
22
* which the software has been supplied. Any unauthorized use,
23
* duplication, transmission, distribution, or disclosure of this
24
* software is expressly forbidden.
25
*
26
* This Copyright notice may not be removed or modified without prior
27
* written consent of Real Time Logic LLC.
28
*
29
* Real Time Logic LLC. reserves the right to modify this software
30
* without notice.
31
*
32
* http://www.realtimelogic.com
33
* http://www.sharkssl.com
34
****************************************************************************
35
36
Do not directly edit the options in this file. Instead, add your
37
custom options in SharkSSL_opts.h
38
39
*/
40
#ifndef _SharkSsl_cfg_h
41
#define _SharkSsl_cfg_h
42
43
#include "SharkSSL_opts.h"
44
45
55
#ifndef SHARKSSL_TLS_1_3
56
#define SHARKSSL_TLS_1_3 1
57
#endif
58
63
#ifndef SHARKSSL_TLS_1_2
64
#define SHARKSSL_TLS_1_2 1
65
#endif
66
75
#ifndef SHARKSSL_PSA_CONSUMER
76
#define SHARKSSL_PSA_CONSUMER 0
77
#endif
78
86
#ifndef SHARKSSL_PSA_CONSUMER_SECRET_HANDLES
87
#define SHARKSSL_PSA_CONSUMER_SECRET_HANDLES 0
88
#endif
89
/* end group SharkSslCfgPsa */
91
97
#ifndef SHARKSSL_RFC_9846_CONFORMANCE_PROFILE
98
#define SHARKSSL_RFC_9846_CONFORMANCE_PROFILE 0
99
#endif
100
104
#ifndef SHARKSSL_USE_AES_256
105
#define SHARKSSL_USE_AES_256 1
106
#endif
107
111
#ifndef SHARKSSL_USE_AES_128
112
#define SHARKSSL_USE_AES_128 1
113
#endif
114
119
#ifndef SHARKSSL_USE_AES_192
120
#define SHARKSSL_USE_AES_192 0
121
#endif
122
127
#ifndef SHARKSSL_ENABLE_AES_GCM
128
#define SHARKSSL_ENABLE_AES_GCM 1
129
#endif
130
135
#ifndef SHARKSSL_ENABLE_AES_CCM
136
#define SHARKSSL_ENABLE_AES_CCM 0
137
#endif
138
144
#ifndef SHARKSSL_ENABLE_AES_CBC
145
#define SHARKSSL_ENABLE_AES_CBC 0
146
#endif
147
153
#ifndef SHARKSSL_USE_CHACHA20
154
#define SHARKSSL_USE_CHACHA20 1
155
#endif
156
157
169
#ifndef SHARKSSL_USE_SHA_256
170
#define SHARKSSL_USE_SHA_256 1
171
#endif
172
177
#ifndef SHARKSSL_USE_SHA_384
178
#define SHARKSSL_USE_SHA_384 1
179
#endif
180
185
#ifndef SHARKSSL_USE_SHA_512
186
#define SHARKSSL_USE_SHA_512 0
187
#endif
188
194
#ifndef SHARKSSL_USE_SHA1
195
#define SHARKSSL_USE_SHA1 0
196
#endif
197
201
#ifndef SHARKSSL_USE_MD5
202
#define SHARKSSL_USE_MD5 0
203
#endif
204
210
#ifndef SHARKSSL_USE_POLY1305
211
#define SHARKSSL_USE_POLY1305 1
212
#endif
213
214
/* end group SharkSslCfgHash */
216
217
221
#ifndef SHARKSSL_SSL_SERVER_CODE
222
#define SHARKSSL_SSL_SERVER_CODE 1
223
#endif
224
228
#ifndef SHARKSSL_ENABLE_CLIENT_AUTH
229
#define SHARKSSL_ENABLE_CLIENT_AUTH 1
230
#endif
231
240
#ifndef SHARKSSL_ENABLE_POST_HANDSHAKE_AUTH
241
#define SHARKSSL_ENABLE_POST_HANDSHAKE_AUTH 0
242
#endif
243
252
#ifndef SHARKSSL_MAX_HANDSHAKE_LENGTH
253
#define SHARKSSL_MAX_HANDSHAKE_LENGTH 0x00004000UL
254
#endif
255
261
#ifndef SHARKSSL_ENABLE_HELLO_RETRY_REQUEST
262
#define SHARKSSL_ENABLE_HELLO_RETRY_REQUEST SHARKSSL_TLS_1_3
263
#endif
264
270
#ifndef SHARKSSL_TLS_1_3_INITIAL_KEY_SHARE_X25519_ONLY
271
#define SHARKSSL_TLS_1_3_INITIAL_KEY_SHARE_X25519_ONLY 0
272
#endif
273
283
#ifndef SHARKSSL_ENABLE_KEY_UPDATE
284
#define SHARKSSL_ENABLE_KEY_UPDATE SHARKSSL_TLS_1_3
285
#endif
286
296
#ifndef SHARKSSL_TLS_1_3_AES_GCM_KEY_UPDATE_THRESHOLD
297
#define SHARKSSL_TLS_1_3_AES_GCM_KEY_UPDATE_THRESHOLD 0x00800000UL
298
#endif
299
303
#ifndef SHARKSSL_SSL_CLIENT_CODE
304
#define SHARKSSL_SSL_CLIENT_CODE 1
305
#endif
306
310
#ifndef SHARKSSL_RANDOMIZE_EXTENSIONS
311
#define SHARKSSL_RANDOMIZE_EXTENSIONS 1
312
#endif
313
317
#ifndef SHARKSSL_ENABLE_SNI
318
#define SHARKSSL_ENABLE_SNI 1
319
#endif
320
326
#ifndef SHARKSSL_ENABLE_CA_EXTENSION
327
#define SHARKSSL_ENABLE_CA_EXTENSION 1
328
#endif
329
333
#ifndef SHARKSSL_ENABLE_RSA
334
#define SHARKSSL_ENABLE_RSA 1
335
#endif
336
340
#ifndef SHARKSSL_ENABLE_SESSION_CACHE
341
#define SHARKSSL_ENABLE_SESSION_CACHE 1
342
#endif
343
351
#ifndef SHARKSSL_ENABLE_SECURE_RENEGOTIATION
352
#define SHARKSSL_ENABLE_SECURE_RENEGOTIATION SHARKSSL_TLS_1_2
353
#endif
354
360
#ifndef SHARKSSL_ENABLE_DHE_RSA
361
#define SHARKSSL_ENABLE_DHE_RSA 0
362
#endif
363
368
#undef SHARKSSL_USE_SHA_256
369
#define SHARKSSL_USE_SHA_256 1
370
374
#ifndef SHARKSSL_ENABLE_SELECT_CIPHERSUITE
375
#define SHARKSSL_ENABLE_SELECT_CIPHERSUITE 1
376
#endif
377
383
#ifndef SHARKSSL_SELECT_CIPHERSUITE_LIST_DEPTH
384
#define SHARKSSL_SELECT_CIPHERSUITE_LIST_DEPTH 8
385
#endif
386
390
#ifndef SHARKSSL_ENABLE_ALPN_EXTENSION
391
#define SHARKSSL_ENABLE_ALPN_EXTENSION 1
392
#endif
393
399
#ifndef SHARKSSL_ENABLE_RSA_API
400
#define SHARKSSL_ENABLE_RSA_API 1
401
#endif
402
406
#ifndef SHARKSSL_ENABLE_RSAKEY_CREATE
407
#define SHARKSSL_ENABLE_RSAKEY_CREATE 0
408
#endif
409
415
#ifndef SHARKSSL_ENABLE_RSA_PKCS1
416
#define SHARKSSL_ENABLE_RSA_PKCS1 1
417
#endif
418
427
#ifndef SHARKSSL_ENABLE_RSASSA_PSS
428
#define SHARKSSL_ENABLE_RSASSA_PSS 1
429
#endif
430
435
#ifndef SHARKSSL_ENABLE_RSA_OAEP
436
#define SHARKSSL_ENABLE_RSA_OAEP 0
437
#endif
438
443
#ifndef SHARKSSL_ENABLE_ECDSA_API
444
#define SHARKSSL_ENABLE_ECDSA_API 1
445
#endif
446
454
#ifndef SHARKSSL_ECDSA_ONLY_VERIFY
455
#define SHARKSSL_ECDSA_ONLY_VERIFY 0
456
#endif
457
465
#ifndef SHARKSSL_ENABLE_PEM_API
466
#define SHARKSSL_ENABLE_PEM_API 1
467
#endif
468
474
#ifndef SHARKSSL_ENABLE_ENCRYPTED_PKCS8_SUPPORT
475
#define SHARKSSL_ENABLE_ENCRYPTED_PKCS8_SUPPORT 0
476
#endif
477
481
#ifndef SHARKSSL_ENABLE_INFO_API
482
#define SHARKSSL_ENABLE_INFO_API 1
483
#endif
484
488
#ifndef SHARKSSL_ENABLE_CERT_CHAIN
489
#define SHARKSSL_ENABLE_CERT_CHAIN 1
490
#endif
491
496
#ifndef SHARKSSL_ENABLE_CA_LIST
497
#define SHARKSSL_ENABLE_CA_LIST 1
498
#endif
499
503
#ifndef SHARKSSL_ENABLE_CERTSTORE_API
504
#define SHARKSSL_ENABLE_CERTSTORE_API 1
505
#endif
506
511
#ifndef SHARKSSL_ENABLE_CERTINFO_PARSE_API
512
#define SHARKSSL_ENABLE_CERTINFO_PARSE_API 0
513
#endif
514
518
#ifdef SHARKSSL_ENABLE_CLONE_CERTINFO
519
#if (!SHARKSSL_ENABLE_CLONE_CERTINFO)
520
#error SHARKSSL_ENABLE_CLONE_CERTINFO is now enabled by default - please remove its #define
521
#endif
522
#endif
523
528
#ifndef SHARKSSL_ENABLE_CERT_KEYUSAGE
529
#define SHARKSSL_ENABLE_CERT_KEYUSAGE 0
530
#endif
531
539
#ifndef SHARKSSL_MD5_SMALL_FOOTPRINT
540
#define SHARKSSL_MD5_SMALL_FOOTPRINT 0
541
#endif
542
543
#ifndef SHARKSSL_SHA1_SMALL_FOOTPRINT
544
#define SHARKSSL_SHA1_SMALL_FOOTPRINT 0
545
#endif
546
550
#ifndef SHARKSSL_SHA256_SMALL_FOOTPRINT
551
#define SHARKSSL_SHA256_SMALL_FOOTPRINT 0
552
#endif
553
557
#ifndef SHARKSSL_BIGINT_EXP_SLIDING_WINDOW_K
558
#define SHARKSSL_BIGINT_EXP_SLIDING_WINDOW_K 4
559
#endif
560
564
#ifndef SHARKSSL_BIGINT_MULT_LOOP_UNROLL
565
#define SHARKSSL_BIGINT_MULT_LOOP_UNROLL 1
566
#endif
567
571
#ifndef SHARKSSL_ENABLE_AES_CTR_MODE
572
#define SHARKSSL_ENABLE_AES_CTR_MODE 1
573
#endif
574
578
#ifndef SHARKSSL_AES_CIPHER_LOOP_UNROLL
579
#define SHARKSSL_AES_CIPHER_LOOP_UNROLL 1
580
#endif
581
586
#ifndef SHARKSSL_UNALIGNED_ACCESS
587
#ifdef UNALIGNED_ACCESS
588
#define SHARKSSL_UNALIGNED_ACCESS 1
589
#else
590
#define SHARKSSL_UNALIGNED_ACCESS 0
591
#endif
592
#endif
593
597
#ifndef SHARKSSL_BIGINT_WORDSIZE
598
#define SHARKSSL_BIGINT_WORDSIZE 32
599
#endif
600
604
#ifndef SHARKSSL_USE_ECC
605
#define SHARKSSL_USE_ECC 1
606
#endif
607
612
#ifndef SHARKSSL_ENABLE_ECDSA
613
#define SHARKSSL_ENABLE_ECDSA 1
614
#endif
615
622
#ifndef SHARKSSL_ECC_VERIFY_POINT
623
#define SHARKSSL_ECC_VERIFY_POINT 1
624
#endif
625
630
#ifndef SHARKSSL_ENABLE_EDDSA
631
#define SHARKSSL_ENABLE_EDDSA 0
632
#endif
633
638
#ifndef SHARKSSL_ECC_TIMING_RESISTANT
639
#define SHARKSSL_ECC_TIMING_RESISTANT 1
640
#endif
641
647
#ifndef SHARKSSL_BIGINT_TIMING_RESISTANT
648
#define SHARKSSL_BIGINT_TIMING_RESISTANT 1
649
#endif
650
654
#ifndef SHARKSSL_ECC_USE_SECP256R1
655
#define SHARKSSL_ECC_USE_SECP256R1 1
656
#endif
657
661
#ifndef SHARKSSL_ECC_USE_SECP384R1
662
#define SHARKSSL_ECC_USE_SECP384R1 1
663
#endif
664
668
#ifndef SHARKSSL_ECC_USE_SECP521R1
669
#define SHARKSSL_ECC_USE_SECP521R1 1
670
#endif
671
675
#ifndef SHARKSSL_ECC_USE_BRAINPOOLP256R1
676
#define SHARKSSL_ECC_USE_BRAINPOOLP256R1 1
677
#endif
678
682
#ifndef SHARKSSL_ECC_USE_BRAINPOOLP384R1
683
#define SHARKSSL_ECC_USE_BRAINPOOLP384R1 1
684
#endif
685
689
#ifndef SHARKSSL_ECC_USE_BRAINPOOLP512R1
690
#define SHARKSSL_ECC_USE_BRAINPOOLP512R1 1
691
#endif
692
696
#ifndef SHARKSSL_ECC_USE_CURVE25519
697
#define SHARKSSL_ECC_USE_CURVE25519 1
698
#endif
699
704
#ifndef SHARKSSL_ENABLE_X25519_API
705
#define SHARKSSL_ENABLE_X25519_API 1
706
#endif
707
718
#ifndef SHARKSSL_X25519_DEDICATED
719
#define SHARKSSL_X25519_DEDICATED 1
720
#endif
721
725
#ifndef SHARKSSL_ECC_USE_CURVE448
726
#define SHARKSSL_ECC_USE_CURVE448 0
727
#endif
728
734
#ifndef SHARKSSL_ENABLE_ECDHE_RSA
735
#define SHARKSSL_ENABLE_ECDHE_RSA 1
736
#endif
737
743
#ifndef SHARKSSL_ENABLE_ECDHE_ECDSA
744
#define SHARKSSL_ENABLE_ECDHE_ECDSA 1
745
#endif
746
750
#ifndef SHARKSSL_OPTIMIZED_BIGINT_ASM
751
#define SHARKSSL_OPTIMIZED_BIGINT_ASM 0
752
#endif
753
757
#ifndef SHARKSSL_OPTIMIZED_CHACHA_ASM
758
#define SHARKSSL_OPTIMIZED_CHACHA_ASM 0
759
#endif
760
764
#ifndef SHARKSSL_OPTIMIZED_POLY1305_ASM
765
#define SHARKSSL_OPTIMIZED_POLY1305_ASM 0
766
#endif
767
771
#ifndef SHARKSSL_OPTIMIZED_GHASH_ASM
772
#define SHARKSSL_OPTIMIZED_GHASH_ASM 0
773
#endif
774
779
#ifndef SHARKSSL_OPTIMIZED_GCM_ASM
780
#define SHARKSSL_OPTIMIZED_GCM_ASM 0
781
#endif
782
788
#ifndef SHARKSSL_OPTIMIZED_GCM_VAES_ASM
789
#define SHARKSSL_OPTIMIZED_GCM_VAES_ASM 0
790
#endif
791
800
#ifndef SHARKSSL_USE_RNG_TINYMT
801
#define SHARKSSL_USE_RNG_TINYMT 0
802
#endif
803
812
#ifndef SHARKSSL_USE_RNG_FORTUNA
813
#define SHARKSSL_USE_RNG_FORTUNA 0
814
#endif
815
822
#ifndef SHARKSSL_RNG_MULTITHREADED
823
#define SHARKSSL_RNG_MULTITHREADED 1
824
#endif
825
829
#ifndef SHARKSSL_NOPACK
830
#define SHARKSSL_NOPACK 0
831
#endif
832
839
#ifdef __DOXYGEN__
840
#define SHARKSSL_CHECK_DATE 0
841
#endif
842
#ifndef SHARKSSL_CHECK_DATE
843
#ifdef SHARKSSL_BA
/* if SharkSSL embedded in BAS */
844
#define SHARKSSL_CHECK_DATE 1
845
#else
846
#define SHARKSSL_CHECK_DATE 0
847
#endif
848
#endif
849
850
/* end group SharkSslCfg */
852
853
857
#if ((SHARKSSL_MAX_HANDSHAKE_LENGTH == 0) || (SHARKSSL_MAX_HANDSHAKE_LENGTH > 0x00FFFFFFUL))
858
#error SHARKSSL_MAX_HANDSHAKE_LENGTH must be in the range 1..0x00FFFFFF
859
#endif
860
861
#if SHARKSSL_ECC_TIMING_RESISTANT
862
#undef SHARKSSL_BIGINT_TIMING_RESISTANT
863
#define SHARKSSL_BIGINT_TIMING_RESISTANT 1
864
#endif
865
869
#if SHARKSSL_ENABLE_KEY_UPDATE
870
#if (!SHARKSSL_TLS_1_3)
871
#undef SHARKSSL_ENABLE_KEY_UPDATE
872
#define SHARKSSL_ENABLE_KEY_UPDATE 0
873
#elif SHARKSSL_ENABLE_AES_GCM
874
#if ((SHARKSSL_TLS_1_3_AES_GCM_KEY_UPDATE_THRESHOLD == 0) || (SHARKSSL_TLS_1_3_AES_GCM_KEY_UPDATE_THRESHOLD > 0x00800000UL))
875
#error SHARKSSL_TLS_1_3_AES_GCM_KEY_UPDATE_THRESHOLD must be in the range 1..2^23
876
#endif
877
#endif
878
#endif
/* SHARKSSL_ENABLE_KEY_UPDATE */
879
880
#if SHARKSSL_TLS_1_3
881
#if SHARKSSL_ENABLE_RSA
882
#undef SHARKSSL_ENABLE_RSASSA_PSS
883
#define SHARKSSL_ENABLE_RSASSA_PSS 1
884
#endif
885
#if (!SHARKSSL_TLS_1_2)
886
#if SHARKSSL_ENABLE_SECURE_RENEGOTIATION
887
#undef SHARKSSL_ENABLE_SECURE_RENEGOTIATION
888
#define SHARKSSL_ENABLE_SECURE_RENEGOTIATION 0
889
#endif
890
#if SHARKSSL_ENABLE_DHE_RSA
891
#undef SHARKSSL_ENABLE_DHE_RSA
892
#define SHARKSSL_ENABLE_DHE_RSA 0
893
#endif
894
#endif
895
#if (0 == SHARKSSL_ECC_USE_SECP256R1)
896
#error TLS 1.3 requires NIST curve secp256r1
897
#endif
898
#if (0 == SHARKSSL_USE_AES_128)
899
#error TLS 1.3 requires AES 128
900
#endif
901
#if (0 == SHARKSSL_USE_SHA_256)
902
#error TLS 1.3 requires SHA 256
903
#endif
904
#endif
/* SHARKSSL_TLS_1_3 */
905
906
#if SHARKSSL_RFC_9846_CONFORMANCE_PROFILE
907
#if (!SHARKSSL_TLS_1_3)
908
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires SHARKSSL_TLS_1_3
909
#endif
910
#if ((!SHARKSSL_SSL_CLIENT_CODE) && (!SHARKSSL_SSL_SERVER_CODE))
911
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires a TLS client or server role
912
#endif
913
#if ((!SHARKSSL_USE_AES_128) || (!SHARKSSL_ENABLE_AES_GCM) || (!SHARKSSL_USE_SHA_256))
914
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires TLS_AES_128_GCM_SHA256
915
#endif
916
#if ((!SHARKSSL_ENABLE_RSA) || (!SHARKSSL_ENABLE_RSA_PKCS1) || (!SHARKSSL_ENABLE_RSASSA_PSS))
917
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires RSA PKCS1 and RSASSA-PSS SHA-256 signatures
918
#endif
919
#if ((!SHARKSSL_USE_ECC) || (!SHARKSSL_ENABLE_ECDSA) || (!SHARKSSL_ECC_USE_SECP256R1))
920
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires ECDSA and ECDHE with secp256r1
921
#endif
922
#if (!SHARKSSL_ENABLE_SNI)
923
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires Server Name Indication
924
#endif
925
#if (!SHARKSSL_ENABLE_HELLO_RETRY_REQUEST)
926
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires HelloRetryRequest
927
#endif
928
#if (!SHARKSSL_ENABLE_KEY_UPDATE)
929
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires TLS 1.3 KeyUpdate
930
#endif
931
#if SHARKSSL_USE_RNG_TINYMT
932
#error SHARKSSL_RFC_9846_CONFORMANCE_PROFILE requires a cryptographically secure RNG
933
#endif
934
#endif
/* SHARKSSL_RFC_9846_CONFORMANCE_PROFILE */
935
936
/* Check the selected PSA consumer profile after all TLS options are resolved. */
937
#if (SHARKSSL_PSA_CONSUMER_SECRET_HANDLES && ((!SHARKSSL_PSA_CONSUMER) || (!SHARKSSL_TLS_1_3)))
938
#error SHARKSSL_PSA_CONSUMER_SECRET_HANDLES requires the TLS 1.3 PSA consumer
939
#endif
940
941
#if SHARKSSL_PSA_CONSUMER
942
#if ((!SHARKSSL_TLS_1_2) && (!SHARKSSL_TLS_1_3))
943
#error SHARKSSL_PSA_CONSUMER requires TLS 1.2 or TLS 1.3
944
#endif
945
#if ((!SHARKSSL_SSL_CLIENT_CODE) && (!SHARKSSL_SSL_SERVER_CODE))
946
#error SHARKSSL_PSA_CONSUMER requires a TLS client or server role
947
#endif
948
#if ((!SHARKSSL_USE_AES_128) || (!SHARKSSL_ENABLE_AES_GCM) || (!SHARKSSL_USE_SHA_256))
949
#error SHARKSSL_PSA_CONSUMER requires AES-128-GCM and SHA-256
950
#endif
951
#if (SHARKSSL_USE_AES_192 || SHARKSSL_ENABLE_AES_CCM || \
952
SHARKSSL_ENABLE_AES_CBC || SHARKSSL_ENABLE_AES_CTR_MODE)
953
#error SHARKSSL_PSA_CONSUMER supports only AES-GCM and ChaCha20-Poly1305 records
954
#endif
955
#if (SHARKSSL_USE_CHACHA20 != SHARKSSL_USE_POLY1305)
956
#error SHARKSSL_PSA_CONSUMER requires ChaCha20 and Poly1305 together
957
#endif
958
#if (SHARKSSL_USE_SHA1 || SHARKSSL_USE_SHA_512 || SHARKSSL_USE_MD5)
959
#error SHARKSSL_PSA_CONSUMER supports only SHA-256/384
960
#endif
961
#if ((!SHARKSSL_USE_ECC) || (!SHARKSSL_ECC_USE_SECP256R1) || \
962
(!SHARKSSL_ENABLE_ECDSA) || (!SHARKSSL_ENABLE_ECDHE_ECDSA))
963
#error SHARKSSL_PSA_CONSUMER requires ECDHE-ECDSA with P-256
964
#endif
965
#if (SHARKSSL_TLS_1_3 && ((!SHARKSSL_ECC_USE_CURVE25519) || (!SHARKSSL_ENABLE_HELLO_RETRY_REQUEST) || \
966
(!SHARKSSL_TLS_1_3_INITIAL_KEY_SHARE_X25519_ONLY)))
967
#error SHARKSSL_PSA_CONSUMER requires X25519 with an initial single key share and HelloRetryRequest
968
#endif
969
#if (SHARKSSL_ECC_USE_SECP521R1 || \
970
SHARKSSL_ECC_USE_CURVE448 || \
971
SHARKSSL_ECC_USE_BRAINPOOLP256R1 || SHARKSSL_ECC_USE_BRAINPOOLP384R1 || \
972
SHARKSSL_ECC_USE_BRAINPOOLP512R1)
973
#error SHARKSSL_PSA_CONSUMER supports only P-256, P-384 and X25519
974
#endif
975
#if (SHARKSSL_ENABLE_RSA_API || SHARKSSL_ENABLE_RSA_OAEP || \
976
SHARKSSL_ENABLE_ECDHE_RSA || SHARKSSL_ENABLE_DHE_RSA)
977
#error SHARKSSL_PSA_CONSUMER excludes RSA encryption and TLS 1.2 RSA suites
978
#endif
979
#if (SHARKSSL_ENABLE_RSA && ((!SHARKSSL_ENABLE_RSA_PKCS1) || (!SHARKSSL_ENABLE_RSASSA_PSS)))
980
#error SHARKSSL_PSA_CONSUMER RSA requires PKCS1 certificate signatures and RSA-PSS
981
#endif
982
#if (SHARKSSL_ENABLE_PEM_API || SHARKSSL_ENABLE_ECDSA_API)
983
#error SHARKSSL_PSA_CONSUMER excludes PEM and standalone ECDSA
984
#endif
985
#if (SHARKSSL_ENABLE_POST_HANDSHAKE_AUTH && \
986
((!SHARKSSL_ENABLE_CLIENT_AUTH) || (!SHARKSSL_SSL_SERVER_CODE)))
987
#error SHARKSSL_PSA_CONSUMER post-handshake auth requires client auth and server code
988
#endif
989
#if (SHARKSSL_USE_RNG_TINYMT || SHARKSSL_USE_RNG_FORTUNA)
990
#error SHARKSSL_PSA_CONSUMER uses the provider RNG
991
#endif
992
#endif
/* SHARKSSL_PSA_CONSUMER */
993
994
#endif
inc
SharkSSL_cfg.h
SharkSSL
documentation generated on Tue Oct 13 2026 10:34:57. Copyright Real Time Logic LLC.