ReactOS 0.4.15-dev-7918-g2a2556c
ssl_ciphersuites.c
Go to the documentation of this file.
1
49#if !defined(MBEDTLS_CONFIG_FILE)
50#include "mbedtls/config.h"
51#else
52#include MBEDTLS_CONFIG_FILE
53#endif
54
55#if defined(MBEDTLS_SSL_TLS_C)
56
57#if defined(MBEDTLS_PLATFORM_C)
58#include "mbedtls/platform.h"
59#else
60#include <stdlib.h>
61#endif
62
64#include "mbedtls/ssl.h"
65
66#include <string.h>
67
68/*
69 * Ordered from most preferred to least preferred in terms of security.
70 *
71 * Current rule (except RC4 and 3DES, weak and null which come last):
72 * 1. By key exchange:
73 * Forward-secure non-PSK > forward-secure PSK > ECJPAKE > other non-PSK > other PSK
74 * 2. By key length and cipher:
75 * ChaCha > AES-256 > Camellia-256 > ARIA-256 > AES-128 > Camellia-128 > ARIA-128
76 * 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
77 * 4. By hash function used when relevant
78 * 5. By key exchange/auth again: EC > non-EC
79 */
80static const int ciphersuite_preference[] =
81{
82#if defined(MBEDTLS_SSL_CIPHERSUITES)
83 MBEDTLS_SSL_CIPHERSUITES,
84#else
85 /* Chacha-Poly ephemeral suites */
89
90 /* All AES-256 ephemeral suites */
104
105 /* All CAMELLIA-256 ephemeral suites */
113
114 /* All ARIA-256 ephemeral suites */
121
122 /* All AES-128 ephemeral suites */
136
137 /* All CAMELLIA-128 ephemeral suites */
145
146 /* All ARIA-128 ephemeral suites */
153
154 /* The PSK ephemeral suites */
170
184
185 /* The ECJPAKE suite */
187
188 /* All AES-256 suites */
200
201 /* All CAMELLIA-256 suites */
209
210 /* All ARIA-256 suites */
217
218 /* All AES-128 suites */
230
231 /* All CAMELLIA-128 suites */
239
240 /* All ARIA-128 suites */
247
248 /* The RSA PSK suites */
257
265
266 /* The PSK suites */
277
287
288 /* 3DES suites */
299
300 /* RC4 suites */
311
312 /* Weak suites */
315
316 /* NULL suites */
325
337
338#endif /* MBEDTLS_SSL_CIPHERSUITES */
339 0
340};
341
342static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
343{
344#if defined(MBEDTLS_CHACHAPOLY_C) && \
345 defined(MBEDTLS_SHA256_C) && \
346 defined(MBEDTLS_SSL_PROTO_TLS1_2)
347#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
349 "TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
354 0 },
355#endif
356#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
358 "TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256",
363 0 },
364#endif
365#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
367 "TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
372 0 },
373#endif
374#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
376 "TLS-PSK-WITH-CHACHA20-POLY1305-SHA256",
381 0 },
382#endif
383#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
385 "TLS-ECDHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
390 0 },
391#endif
392#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
394 "TLS-DHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
399 0 },
400#endif
401#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
403 "TLS-RSA-PSK-WITH-CHACHA20-POLY1305-SHA256",
408 0 },
409#endif
410#endif /* MBEDTLS_CHACHAPOLY_C &&
411 MBEDTLS_SHA256_C &&
412 MBEDTLS_SSL_PROTO_TLS1_2 */
413#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
414#if defined(MBEDTLS_AES_C)
415#if defined(MBEDTLS_SHA1_C)
416#if defined(MBEDTLS_CIPHER_MODE_CBC)
417 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
421 0 },
422 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA",
426 0 },
427#endif /* MBEDTLS_CIPHER_MODE_CBC */
428#endif /* MBEDTLS_SHA1_C */
429#if defined(MBEDTLS_SHA256_C)
430#if defined(MBEDTLS_CIPHER_MODE_CBC)
431 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
435 0 },
436#endif /* MBEDTLS_CIPHER_MODE_CBC */
437#if defined(MBEDTLS_GCM_C)
438 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
442 0 },
443#endif /* MBEDTLS_GCM_C */
444#endif /* MBEDTLS_SHA256_C */
445#if defined(MBEDTLS_SHA512_C)
446#if defined(MBEDTLS_CIPHER_MODE_CBC)
447 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
451 0 },
452#endif /* MBEDTLS_CIPHER_MODE_CBC */
453#if defined(MBEDTLS_GCM_C)
454 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
458 0 },
459#endif /* MBEDTLS_GCM_C */
460#endif /* MBEDTLS_SHA512_C */
461#if defined(MBEDTLS_CCM_C)
462 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM",
466 0 },
467 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8",
472 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM",
476 0 },
477 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8",
482#endif /* MBEDTLS_CCM_C */
483#endif /* MBEDTLS_AES_C */
484
485#if defined(MBEDTLS_CAMELLIA_C)
486#if defined(MBEDTLS_CIPHER_MODE_CBC)
487#if defined(MBEDTLS_SHA256_C)
488 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
492 0 },
493#endif /* MBEDTLS_SHA256_C */
494#if defined(MBEDTLS_SHA512_C)
495 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
499 0 },
500#endif /* MBEDTLS_SHA512_C */
501#endif /* MBEDTLS_CIPHER_MODE_CBC */
502
503#if defined(MBEDTLS_GCM_C)
504#if defined(MBEDTLS_SHA256_C)
505 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
509 0 },
510#endif /* MBEDTLS_SHA256_C */
511#if defined(MBEDTLS_SHA512_C)
512 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
516 0 },
517#endif /* MBEDTLS_SHA512_C */
518#endif /* MBEDTLS_GCM_C */
519#endif /* MBEDTLS_CAMELLIA_C */
520
521#if defined(MBEDTLS_DES_C)
522#if defined(MBEDTLS_CIPHER_MODE_CBC)
523#if defined(MBEDTLS_SHA1_C)
524 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA",
528 0 },
529#endif /* MBEDTLS_SHA1_C */
530#endif /* MBEDTLS_CIPHER_MODE_CBC */
531#endif /* MBEDTLS_DES_C */
532
533#if defined(MBEDTLS_ARC4_C)
534#if defined(MBEDTLS_SHA1_C)
535 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, "TLS-ECDHE-ECDSA-WITH-RC4-128-SHA",
540#endif /* MBEDTLS_SHA1_C */
541#endif /* MBEDTLS_ARC4_C */
542
543#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
544#if defined(MBEDTLS_SHA1_C)
545 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA",
550#endif /* MBEDTLS_SHA1_C */
551#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
552#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
553
554#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
555#if defined(MBEDTLS_AES_C)
556#if defined(MBEDTLS_SHA1_C)
557#if defined(MBEDTLS_CIPHER_MODE_CBC)
558 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
562 0 },
563 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA",
567 0 },
568#endif /* MBEDTLS_CIPHER_MODE_CBC */
569#endif /* MBEDTLS_SHA1_C */
570#if defined(MBEDTLS_SHA256_C)
571#if defined(MBEDTLS_CIPHER_MODE_CBC)
572 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
576 0 },
577#endif /* MBEDTLS_CIPHER_MODE_CBC */
578#if defined(MBEDTLS_GCM_C)
579 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
583 0 },
584#endif /* MBEDTLS_GCM_C */
585#endif /* MBEDTLS_SHA256_C */
586#if defined(MBEDTLS_SHA512_C)
587#if defined(MBEDTLS_CIPHER_MODE_CBC)
588 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
592 0 },
593#endif /* MBEDTLS_CIPHER_MODE_CBC */
594#if defined(MBEDTLS_GCM_C)
595 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
599 0 },
600#endif /* MBEDTLS_GCM_C */
601#endif /* MBEDTLS_SHA512_C */
602#endif /* MBEDTLS_AES_C */
603
604#if defined(MBEDTLS_CAMELLIA_C)
605#if defined(MBEDTLS_CIPHER_MODE_CBC)
606#if defined(MBEDTLS_SHA256_C)
607 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
611 0 },
612#endif /* MBEDTLS_SHA256_C */
613#if defined(MBEDTLS_SHA512_C)
614 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384",
618 0 },
619#endif /* MBEDTLS_SHA512_C */
620#endif /* MBEDTLS_CIPHER_MODE_CBC */
621
622#if defined(MBEDTLS_GCM_C)
623#if defined(MBEDTLS_SHA256_C)
624 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
628 0 },
629#endif /* MBEDTLS_SHA256_C */
630#if defined(MBEDTLS_SHA512_C)
631 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
635 0 },
636#endif /* MBEDTLS_SHA512_C */
637#endif /* MBEDTLS_GCM_C */
638#endif /* MBEDTLS_CAMELLIA_C */
639
640#if defined(MBEDTLS_DES_C)
641#if defined(MBEDTLS_CIPHER_MODE_CBC)
642#if defined(MBEDTLS_SHA1_C)
643 { MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA",
647 0 },
648#endif /* MBEDTLS_SHA1_C */
649#endif /* MBEDTLS_CIPHER_MODE_CBC */
650#endif /* MBEDTLS_DES_C */
651
652#if defined(MBEDTLS_ARC4_C)
653#if defined(MBEDTLS_SHA1_C)
654 { MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA, "TLS-ECDHE-RSA-WITH-RC4-128-SHA",
659#endif /* MBEDTLS_SHA1_C */
660#endif /* MBEDTLS_ARC4_C */
661
662#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
663#if defined(MBEDTLS_SHA1_C)
664 { MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA",
669#endif /* MBEDTLS_SHA1_C */
670#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
671#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
672
673#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
674#if defined(MBEDTLS_AES_C)
675#if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C)
676 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
680 0 },
681#endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */
682
683#if defined(MBEDTLS_SHA256_C)
684#if defined(MBEDTLS_GCM_C)
685 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
689 0 },
690#endif /* MBEDTLS_GCM_C */
691
692#if defined(MBEDTLS_CIPHER_MODE_CBC)
693 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
697 0 },
698
699 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
703 0 },
704#endif /* MBEDTLS_CIPHER_MODE_CBC */
705#endif /* MBEDTLS_SHA256_C */
706
707#if defined(MBEDTLS_CIPHER_MODE_CBC)
708#if defined(MBEDTLS_SHA1_C)
709 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA",
713 0 },
714
715 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
719 0 },
720#endif /* MBEDTLS_SHA1_C */
721#endif /* MBEDTLS_CIPHER_MODE_CBC */
722#if defined(MBEDTLS_CCM_C)
723 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM",
727 0 },
728 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8",
733 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM",
737 0 },
738 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8",
743#endif /* MBEDTLS_CCM_C */
744#endif /* MBEDTLS_AES_C */
745
746#if defined(MBEDTLS_CAMELLIA_C)
747#if defined(MBEDTLS_CIPHER_MODE_CBC)
748#if defined(MBEDTLS_SHA256_C)
749 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
753 0 },
754
755 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256",
759 0 },
760#endif /* MBEDTLS_SHA256_C */
761
762#if defined(MBEDTLS_SHA1_C)
763 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA",
767 0 },
768
769 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA",
773 0 },
774#endif /* MBEDTLS_SHA1_C */
775#endif /* MBEDTLS_CIPHER_MODE_CBC */
776#if defined(MBEDTLS_GCM_C)
777#if defined(MBEDTLS_SHA256_C)
778 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
782 0 },
783#endif /* MBEDTLS_SHA256_C */
784
785#if defined(MBEDTLS_SHA512_C)
786 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
790 0 },
791#endif /* MBEDTLS_SHA512_C */
792#endif /* MBEDTLS_GCM_C */
793#endif /* MBEDTLS_CAMELLIA_C */
794
795#if defined(MBEDTLS_DES_C)
796#if defined(MBEDTLS_CIPHER_MODE_CBC)
797#if defined(MBEDTLS_SHA1_C)
798 { MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA",
802 0 },
803#endif /* MBEDTLS_SHA1_C */
804#endif /* MBEDTLS_CIPHER_MODE_CBC */
805#endif /* MBEDTLS_DES_C */
806#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
807
808#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
809#if defined(MBEDTLS_AES_C)
810#if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C)
811 { MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384",
815 0 },
816#endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */
817
818#if defined(MBEDTLS_SHA256_C)
819#if defined(MBEDTLS_GCM_C)
820 { MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256",
824 0 },
825#endif /* MBEDTLS_GCM_C */
826
827#if defined(MBEDTLS_CIPHER_MODE_CBC)
828 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256",
832 0 },
833
834 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256",
838 0 },
839#endif /* MBEDTLS_CIPHER_MODE_CBC */
840#endif /* MBEDTLS_SHA256_C */
841
842#if defined(MBEDTLS_SHA1_C)
843#if defined(MBEDTLS_CIPHER_MODE_CBC)
844 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA",
848 0 },
849
850 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA",
854 0 },
855#endif /* MBEDTLS_CIPHER_MODE_CBC */
856#endif /* MBEDTLS_SHA1_C */
857#if defined(MBEDTLS_CCM_C)
858 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM",
862 0 },
863 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8",
868 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM",
872 0 },
873 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8",
878#endif /* MBEDTLS_CCM_C */
879#endif /* MBEDTLS_AES_C */
880
881#if defined(MBEDTLS_CAMELLIA_C)
882#if defined(MBEDTLS_CIPHER_MODE_CBC)
883#if defined(MBEDTLS_SHA256_C)
884 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256",
888 0 },
889
890 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256",
894 0 },
895#endif /* MBEDTLS_SHA256_C */
896
897#if defined(MBEDTLS_SHA1_C)
898 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA",
902 0 },
903
904 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA",
908 0 },
909#endif /* MBEDTLS_SHA1_C */
910#endif /* MBEDTLS_CIPHER_MODE_CBC */
911
912#if defined(MBEDTLS_GCM_C)
913#if defined(MBEDTLS_SHA256_C)
914 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256",
918 0 },
919#endif /* MBEDTLS_SHA256_C */
920
921#if defined(MBEDTLS_SHA512_C)
922 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384",
926 0 },
927#endif /* MBEDTLS_SHA512_C */
928#endif /* MBEDTLS_GCM_C */
929#endif /* MBEDTLS_CAMELLIA_C */
930
931#if defined(MBEDTLS_DES_C)
932#if defined(MBEDTLS_CIPHER_MODE_CBC)
933#if defined(MBEDTLS_SHA1_C)
934 { MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-WITH-3DES-EDE-CBC-SHA",
938 0 },
939#endif /* MBEDTLS_SHA1_C */
940#endif /* MBEDTLS_CIPHER_MODE_CBC */
941#endif /* MBEDTLS_DES_C */
942
943#if defined(MBEDTLS_ARC4_C)
944#if defined(MBEDTLS_MD5_C)
945 { MBEDTLS_TLS_RSA_WITH_RC4_128_MD5, "TLS-RSA-WITH-RC4-128-MD5",
950#endif
951
952#if defined(MBEDTLS_SHA1_C)
953 { MBEDTLS_TLS_RSA_WITH_RC4_128_SHA, "TLS-RSA-WITH-RC4-128-SHA",
958#endif
959#endif /* MBEDTLS_ARC4_C */
960#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
961
962#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
963#if defined(MBEDTLS_AES_C)
964#if defined(MBEDTLS_SHA1_C)
965#if defined(MBEDTLS_CIPHER_MODE_CBC)
966 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA",
970 0 },
971 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA",
975 0 },
976#endif /* MBEDTLS_CIPHER_MODE_CBC */
977#endif /* MBEDTLS_SHA1_C */
978#if defined(MBEDTLS_SHA256_C)
979#if defined(MBEDTLS_CIPHER_MODE_CBC)
980 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256",
984 0 },
985#endif /* MBEDTLS_CIPHER_MODE_CBC */
986#if defined(MBEDTLS_GCM_C)
987 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256",
991 0 },
992#endif /* MBEDTLS_GCM_C */
993#endif /* MBEDTLS_SHA256_C */
994#if defined(MBEDTLS_SHA512_C)
995#if defined(MBEDTLS_CIPHER_MODE_CBC)
996 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384",
1000 0 },
1001#endif /* MBEDTLS_CIPHER_MODE_CBC */
1002#if defined(MBEDTLS_GCM_C)
1003 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384",
1007 0 },
1008#endif /* MBEDTLS_GCM_C */
1009#endif /* MBEDTLS_SHA512_C */
1010#endif /* MBEDTLS_AES_C */
1011
1012#if defined(MBEDTLS_CAMELLIA_C)
1013#if defined(MBEDTLS_CIPHER_MODE_CBC)
1014#if defined(MBEDTLS_SHA256_C)
1015 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256",
1019 0 },
1020#endif /* MBEDTLS_SHA256_C */
1021#if defined(MBEDTLS_SHA512_C)
1022 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384",
1026 0 },
1027#endif /* MBEDTLS_SHA512_C */
1028#endif /* MBEDTLS_CIPHER_MODE_CBC */
1029
1030#if defined(MBEDTLS_GCM_C)
1031#if defined(MBEDTLS_SHA256_C)
1032 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256",
1036 0 },
1037#endif /* MBEDTLS_SHA256_C */
1038#if defined(MBEDTLS_SHA512_C)
1039 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384",
1043 0 },
1044#endif /* MBEDTLS_SHA512_C */
1045#endif /* MBEDTLS_GCM_C */
1046#endif /* MBEDTLS_CAMELLIA_C */
1047
1048#if defined(MBEDTLS_DES_C)
1049#if defined(MBEDTLS_CIPHER_MODE_CBC)
1050#if defined(MBEDTLS_SHA1_C)
1051 { MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA",
1055 0 },
1056#endif /* MBEDTLS_SHA1_C */
1057#endif /* MBEDTLS_CIPHER_MODE_CBC */
1058#endif /* MBEDTLS_DES_C */
1059
1060#if defined(MBEDTLS_ARC4_C)
1061#if defined(MBEDTLS_SHA1_C)
1062 { MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA, "TLS-ECDH-RSA-WITH-RC4-128-SHA",
1067#endif /* MBEDTLS_SHA1_C */
1068#endif /* MBEDTLS_ARC4_C */
1069
1070#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1071#if defined(MBEDTLS_SHA1_C)
1072 { MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA",
1077#endif /* MBEDTLS_SHA1_C */
1078#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1079#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
1080
1081#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
1082#if defined(MBEDTLS_AES_C)
1083#if defined(MBEDTLS_SHA1_C)
1084#if defined(MBEDTLS_CIPHER_MODE_CBC)
1085 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA",
1089 0 },
1090 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA",
1094 0 },
1095#endif /* MBEDTLS_CIPHER_MODE_CBC */
1096#endif /* MBEDTLS_SHA1_C */
1097#if defined(MBEDTLS_SHA256_C)
1098#if defined(MBEDTLS_CIPHER_MODE_CBC)
1099 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256",
1103 0 },
1104#endif /* MBEDTLS_CIPHER_MODE_CBC */
1105#if defined(MBEDTLS_GCM_C)
1106 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256",
1110 0 },
1111#endif /* MBEDTLS_GCM_C */
1112#endif /* MBEDTLS_SHA256_C */
1113#if defined(MBEDTLS_SHA512_C)
1114#if defined(MBEDTLS_CIPHER_MODE_CBC)
1115 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384",
1119 0 },
1120#endif /* MBEDTLS_CIPHER_MODE_CBC */
1121#if defined(MBEDTLS_GCM_C)
1122 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384",
1126 0 },
1127#endif /* MBEDTLS_GCM_C */
1128#endif /* MBEDTLS_SHA512_C */
1129#endif /* MBEDTLS_AES_C */
1130
1131#if defined(MBEDTLS_CAMELLIA_C)
1132#if defined(MBEDTLS_CIPHER_MODE_CBC)
1133#if defined(MBEDTLS_SHA256_C)
1134 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
1138 0 },
1139#endif /* MBEDTLS_SHA256_C */
1140#if defined(MBEDTLS_SHA512_C)
1141 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
1145 0 },
1146#endif /* MBEDTLS_SHA512_C */
1147#endif /* MBEDTLS_CIPHER_MODE_CBC */
1148
1149#if defined(MBEDTLS_GCM_C)
1150#if defined(MBEDTLS_SHA256_C)
1151 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
1155 0 },
1156#endif /* MBEDTLS_SHA256_C */
1157#if defined(MBEDTLS_SHA512_C)
1158 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
1162 0 },
1163#endif /* MBEDTLS_SHA512_C */
1164#endif /* MBEDTLS_GCM_C */
1165#endif /* MBEDTLS_CAMELLIA_C */
1166
1167#if defined(MBEDTLS_DES_C)
1168#if defined(MBEDTLS_CIPHER_MODE_CBC)
1169#if defined(MBEDTLS_SHA1_C)
1170 { MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA",
1174 0 },
1175#endif /* MBEDTLS_SHA1_C */
1176#endif /* MBEDTLS_CIPHER_MODE_CBC */
1177#endif /* MBEDTLS_DES_C */
1178
1179#if defined(MBEDTLS_ARC4_C)
1180#if defined(MBEDTLS_SHA1_C)
1181 { MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA, "TLS-ECDH-ECDSA-WITH-RC4-128-SHA",
1186#endif /* MBEDTLS_SHA1_C */
1187#endif /* MBEDTLS_ARC4_C */
1188
1189#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1190#if defined(MBEDTLS_SHA1_C)
1191 { MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA",
1196#endif /* MBEDTLS_SHA1_C */
1197#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1198#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
1199
1200#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1201#if defined(MBEDTLS_AES_C)
1202#if defined(MBEDTLS_GCM_C)
1203#if defined(MBEDTLS_SHA256_C)
1204 { MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256",
1208 0 },
1209#endif /* MBEDTLS_SHA256_C */
1210
1211#if defined(MBEDTLS_SHA512_C)
1212 { MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384",
1216 0 },
1217#endif /* MBEDTLS_SHA512_C */
1218#endif /* MBEDTLS_GCM_C */
1219
1220#if defined(MBEDTLS_CIPHER_MODE_CBC)
1221#if defined(MBEDTLS_SHA256_C)
1222 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256",
1226 0 },
1227#endif /* MBEDTLS_SHA256_C */
1228
1229#if defined(MBEDTLS_SHA512_C)
1230 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384",
1234 0 },
1235#endif /* MBEDTLS_SHA512_C */
1236
1237#if defined(MBEDTLS_SHA1_C)
1238 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA",
1242 0 },
1243
1244 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA",
1248 0 },
1249#endif /* MBEDTLS_SHA1_C */
1250#endif /* MBEDTLS_CIPHER_MODE_CBC */
1251#if defined(MBEDTLS_CCM_C)
1252 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM",
1256 0 },
1257 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, "TLS-PSK-WITH-AES-256-CCM-8",
1262 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM, "TLS-PSK-WITH-AES-128-CCM",
1266 0 },
1267 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, "TLS-PSK-WITH-AES-128-CCM-8",
1272#endif /* MBEDTLS_CCM_C */
1273#endif /* MBEDTLS_AES_C */
1274
1275#if defined(MBEDTLS_CAMELLIA_C)
1276#if defined(MBEDTLS_CIPHER_MODE_CBC)
1277#if defined(MBEDTLS_SHA256_C)
1278 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1282 0 },
1283#endif /* MBEDTLS_SHA256_C */
1284
1285#if defined(MBEDTLS_SHA512_C)
1286 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1290 0 },
1291#endif /* MBEDTLS_SHA512_C */
1292#endif /* MBEDTLS_CIPHER_MODE_CBC */
1293
1294#if defined(MBEDTLS_GCM_C)
1295#if defined(MBEDTLS_SHA256_C)
1296 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1300 0 },
1301#endif /* MBEDTLS_SHA256_C */
1302
1303#if defined(MBEDTLS_SHA512_C)
1304 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1308 0 },
1309#endif /* MBEDTLS_SHA512_C */
1310#endif /* MBEDTLS_GCM_C */
1311#endif /* MBEDTLS_CAMELLIA_C */
1312
1313#if defined(MBEDTLS_DES_C)
1314#if defined(MBEDTLS_CIPHER_MODE_CBC)
1315#if defined(MBEDTLS_SHA1_C)
1316 { MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-PSK-WITH-3DES-EDE-CBC-SHA",
1320 0 },
1321#endif /* MBEDTLS_SHA1_C */
1322#endif /* MBEDTLS_CIPHER_MODE_CBC */
1323#endif /* MBEDTLS_DES_C */
1324
1325#if defined(MBEDTLS_ARC4_C)
1326#if defined(MBEDTLS_SHA1_C)
1327 { MBEDTLS_TLS_PSK_WITH_RC4_128_SHA, "TLS-PSK-WITH-RC4-128-SHA",
1332#endif /* MBEDTLS_SHA1_C */
1333#endif /* MBEDTLS_ARC4_C */
1334#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1335
1336#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1337#if defined(MBEDTLS_AES_C)
1338#if defined(MBEDTLS_GCM_C)
1339#if defined(MBEDTLS_SHA256_C)
1340 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256",
1344 0 },
1345#endif /* MBEDTLS_SHA256_C */
1346
1347#if defined(MBEDTLS_SHA512_C)
1348 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384",
1352 0 },
1353#endif /* MBEDTLS_SHA512_C */
1354#endif /* MBEDTLS_GCM_C */
1355
1356#if defined(MBEDTLS_CIPHER_MODE_CBC)
1357#if defined(MBEDTLS_SHA256_C)
1358 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256",
1362 0 },
1363#endif /* MBEDTLS_SHA256_C */
1364
1365#if defined(MBEDTLS_SHA512_C)
1366 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384",
1370 0 },
1371#endif /* MBEDTLS_SHA512_C */
1372
1373#if defined(MBEDTLS_SHA1_C)
1374 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA",
1378 0 },
1379
1380 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA",
1384 0 },
1385#endif /* MBEDTLS_SHA1_C */
1386#endif /* MBEDTLS_CIPHER_MODE_CBC */
1387#if defined(MBEDTLS_CCM_C)
1388 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM",
1392 0 },
1393 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8",
1398 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM",
1402 0 },
1403 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8",
1408#endif /* MBEDTLS_CCM_C */
1409#endif /* MBEDTLS_AES_C */
1410
1411#if defined(MBEDTLS_CAMELLIA_C)
1412#if defined(MBEDTLS_CIPHER_MODE_CBC)
1413#if defined(MBEDTLS_SHA256_C)
1414 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1418 0 },
1419#endif /* MBEDTLS_SHA256_C */
1420
1421#if defined(MBEDTLS_SHA512_C)
1422 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1426 0 },
1427#endif /* MBEDTLS_SHA512_C */
1428#endif /* MBEDTLS_CIPHER_MODE_CBC */
1429
1430#if defined(MBEDTLS_GCM_C)
1431#if defined(MBEDTLS_SHA256_C)
1432 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1436 0 },
1437#endif /* MBEDTLS_SHA256_C */
1438
1439#if defined(MBEDTLS_SHA512_C)
1440 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1444 0 },
1445#endif /* MBEDTLS_SHA512_C */
1446#endif /* MBEDTLS_GCM_C */
1447#endif /* MBEDTLS_CAMELLIA_C */
1448
1449#if defined(MBEDTLS_DES_C)
1450#if defined(MBEDTLS_CIPHER_MODE_CBC)
1451#if defined(MBEDTLS_SHA1_C)
1452 { MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA",
1456 0 },
1457#endif /* MBEDTLS_SHA1_C */
1458#endif /* MBEDTLS_CIPHER_MODE_CBC */
1459#endif /* MBEDTLS_DES_C */
1460
1461#if defined(MBEDTLS_ARC4_C)
1462#if defined(MBEDTLS_SHA1_C)
1463 { MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA, "TLS-DHE-PSK-WITH-RC4-128-SHA",
1468#endif /* MBEDTLS_SHA1_C */
1469#endif /* MBEDTLS_ARC4_C */
1470#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1471
1472#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1473#if defined(MBEDTLS_AES_C)
1474
1475#if defined(MBEDTLS_CIPHER_MODE_CBC)
1476#if defined(MBEDTLS_SHA256_C)
1477 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256",
1481 0 },
1482#endif /* MBEDTLS_SHA256_C */
1483
1484#if defined(MBEDTLS_SHA512_C)
1485 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384",
1489 0 },
1490#endif /* MBEDTLS_SHA512_C */
1491
1492#if defined(MBEDTLS_SHA1_C)
1493 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA",
1497 0 },
1498
1499 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA",
1503 0 },
1504#endif /* MBEDTLS_SHA1_C */
1505#endif /* MBEDTLS_CIPHER_MODE_CBC */
1506#endif /* MBEDTLS_AES_C */
1507
1508#if defined(MBEDTLS_CAMELLIA_C)
1509#if defined(MBEDTLS_CIPHER_MODE_CBC)
1510#if defined(MBEDTLS_SHA256_C)
1511 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1515 0 },
1516#endif /* MBEDTLS_SHA256_C */
1517
1518#if defined(MBEDTLS_SHA512_C)
1519 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1523 0 },
1524#endif /* MBEDTLS_SHA512_C */
1525#endif /* MBEDTLS_CIPHER_MODE_CBC */
1526#endif /* MBEDTLS_CAMELLIA_C */
1527
1528#if defined(MBEDTLS_DES_C)
1529#if defined(MBEDTLS_CIPHER_MODE_CBC)
1530#if defined(MBEDTLS_SHA1_C)
1531 { MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-PSK-WITH-3DES-EDE-CBC-SHA",
1535 0 },
1536#endif /* MBEDTLS_SHA1_C */
1537#endif /* MBEDTLS_CIPHER_MODE_CBC */
1538#endif /* MBEDTLS_DES_C */
1539
1540#if defined(MBEDTLS_ARC4_C)
1541#if defined(MBEDTLS_SHA1_C)
1542 { MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA, "TLS-ECDHE-PSK-WITH-RC4-128-SHA",
1547#endif /* MBEDTLS_SHA1_C */
1548#endif /* MBEDTLS_ARC4_C */
1549#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1550
1551#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1552#if defined(MBEDTLS_AES_C)
1553#if defined(MBEDTLS_GCM_C)
1554#if defined(MBEDTLS_SHA256_C)
1555 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256",
1559 0 },
1560#endif /* MBEDTLS_SHA256_C */
1561
1562#if defined(MBEDTLS_SHA512_C)
1563 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384",
1567 0 },
1568#endif /* MBEDTLS_SHA512_C */
1569#endif /* MBEDTLS_GCM_C */
1570
1571#if defined(MBEDTLS_CIPHER_MODE_CBC)
1572#if defined(MBEDTLS_SHA256_C)
1573 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256",
1577 0 },
1578#endif /* MBEDTLS_SHA256_C */
1579
1580#if defined(MBEDTLS_SHA512_C)
1581 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384",
1585 0 },
1586#endif /* MBEDTLS_SHA512_C */
1587
1588#if defined(MBEDTLS_SHA1_C)
1589 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA",
1593 0 },
1594
1595 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA",
1599 0 },
1600#endif /* MBEDTLS_SHA1_C */
1601#endif /* MBEDTLS_CIPHER_MODE_CBC */
1602#endif /* MBEDTLS_AES_C */
1603
1604#if defined(MBEDTLS_CAMELLIA_C)
1605#if defined(MBEDTLS_CIPHER_MODE_CBC)
1606#if defined(MBEDTLS_SHA256_C)
1607 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1611 0 },
1612#endif /* MBEDTLS_SHA256_C */
1613
1614#if defined(MBEDTLS_SHA512_C)
1615 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1619 0 },
1620#endif /* MBEDTLS_SHA512_C */
1621#endif /* MBEDTLS_CIPHER_MODE_CBC */
1622
1623#if defined(MBEDTLS_GCM_C)
1624#if defined(MBEDTLS_SHA256_C)
1625 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1629 0 },
1630#endif /* MBEDTLS_SHA256_C */
1631
1632#if defined(MBEDTLS_SHA512_C)
1633 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1637 0 },
1638#endif /* MBEDTLS_SHA512_C */
1639#endif /* MBEDTLS_GCM_C */
1640#endif /* MBEDTLS_CAMELLIA_C */
1641
1642#if defined(MBEDTLS_DES_C)
1643#if defined(MBEDTLS_CIPHER_MODE_CBC)
1644#if defined(MBEDTLS_SHA1_C)
1645 { MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-PSK-WITH-3DES-EDE-CBC-SHA",
1649 0 },
1650#endif /* MBEDTLS_SHA1_C */
1651#endif /* MBEDTLS_CIPHER_MODE_CBC */
1652#endif /* MBEDTLS_DES_C */
1653
1654#if defined(MBEDTLS_ARC4_C)
1655#if defined(MBEDTLS_SHA1_C)
1656 { MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA, "TLS-RSA-PSK-WITH-RC4-128-SHA",
1661#endif /* MBEDTLS_SHA1_C */
1662#endif /* MBEDTLS_ARC4_C */
1663#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1664
1665#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
1666#if defined(MBEDTLS_AES_C)
1667#if defined(MBEDTLS_CCM_C)
1668 { MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, "TLS-ECJPAKE-WITH-AES-128-CCM-8",
1673#endif /* MBEDTLS_CCM_C */
1674#endif /* MBEDTLS_AES_C */
1675#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
1676
1677#if defined(MBEDTLS_ENABLE_WEAK_CIPHERSUITES)
1678#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1679#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1680#if defined(MBEDTLS_MD5_C)
1681 { MBEDTLS_TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5",
1686#endif
1687
1688#if defined(MBEDTLS_SHA1_C)
1689 { MBEDTLS_TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA",
1694#endif
1695
1696#if defined(MBEDTLS_SHA256_C)
1697 { MBEDTLS_TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256",
1702#endif
1703#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1704
1705#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1706#if defined(MBEDTLS_SHA1_C)
1707 { MBEDTLS_TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA",
1712#endif /* MBEDTLS_SHA1_C */
1713
1714#if defined(MBEDTLS_SHA256_C)
1715 { MBEDTLS_TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256",
1720#endif
1721
1722#if defined(MBEDTLS_SHA512_C)
1723 { MBEDTLS_TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384",
1728#endif
1729#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1730
1731#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1732#if defined(MBEDTLS_SHA1_C)
1733 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA",
1738#endif /* MBEDTLS_SHA1_C */
1739
1740#if defined(MBEDTLS_SHA256_C)
1741 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256",
1746#endif
1747
1748#if defined(MBEDTLS_SHA512_C)
1749 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384",
1754#endif
1755#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1756
1757#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1758#if defined(MBEDTLS_SHA1_C)
1759 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA",
1764#endif /* MBEDTLS_SHA1_C */
1765
1766#if defined(MBEDTLS_SHA256_C)
1767 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256",
1772#endif
1773
1774#if defined(MBEDTLS_SHA512_C)
1775 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384",
1780#endif
1781#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1782
1783#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1784#if defined(MBEDTLS_SHA1_C)
1785 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA",
1790#endif /* MBEDTLS_SHA1_C */
1791
1792#if defined(MBEDTLS_SHA256_C)
1793 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256",
1798#endif
1799
1800#if defined(MBEDTLS_SHA512_C)
1801 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384",
1806#endif
1807#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1808#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1809
1810#if defined(MBEDTLS_DES_C)
1811#if defined(MBEDTLS_CIPHER_MODE_CBC)
1812#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
1813#if defined(MBEDTLS_SHA1_C)
1814 { MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA, "TLS-DHE-RSA-WITH-DES-CBC-SHA",
1819#endif /* MBEDTLS_SHA1_C */
1820#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
1821
1822#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1823#if defined(MBEDTLS_SHA1_C)
1824 { MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA, "TLS-RSA-WITH-DES-CBC-SHA",
1829#endif /* MBEDTLS_SHA1_C */
1830#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1831#endif /* MBEDTLS_CIPHER_MODE_CBC */
1832#endif /* MBEDTLS_DES_C */
1833#endif /* MBEDTLS_ENABLE_WEAK_CIPHERSUITES */
1834
1835#if defined(MBEDTLS_ARIA_C)
1836
1837#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1838
1839#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
1841 "TLS-RSA-WITH-ARIA-256-GCM-SHA384",
1845 0 },
1846#endif
1847#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
1849 "TLS-RSA-WITH-ARIA-256-CBC-SHA384",
1853 0 },
1854#endif
1855#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
1857 "TLS-RSA-WITH-ARIA-128-GCM-SHA256",
1861 0 },
1862#endif
1863#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
1865 "TLS-RSA-WITH-ARIA-128-CBC-SHA256",
1869 0 },
1870#endif
1871
1872#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1873
1874#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1875
1876#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
1878 "TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384",
1882 0 },
1883#endif
1884#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
1886 "TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384",
1890 0 },
1891#endif
1892#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
1894 "TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256",
1898 0 },
1899#endif
1900#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
1902 "TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256",
1906 0 },
1907#endif
1908
1909#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1910
1911#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1912
1913#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
1915 "TLS-PSK-WITH-ARIA-256-GCM-SHA384",
1919 0 },
1920#endif
1921#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
1923 "TLS-PSK-WITH-ARIA-256-CBC-SHA384",
1927 0 },
1928#endif
1929#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
1931 "TLS-PSK-WITH-ARIA-128-GCM-SHA256",
1935 0 },
1936#endif
1937#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
1939 "TLS-PSK-WITH-ARIA-128-CBC-SHA256",
1943 0 },
1944#endif
1945
1946#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1947
1948#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
1949
1950#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
1952 "TLS-ECDH-RSA-WITH-ARIA-256-GCM-SHA384",
1956 0 },
1957#endif
1958#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
1960 "TLS-ECDH-RSA-WITH-ARIA-256-CBC-SHA384",
1964 0 },
1965#endif
1966#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
1968 "TLS-ECDH-RSA-WITH-ARIA-128-GCM-SHA256",
1972 0 },
1973#endif
1974#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
1976 "TLS-ECDH-RSA-WITH-ARIA-128-CBC-SHA256",
1980 0 },
1981#endif
1982
1983#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
1984
1985#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
1986
1987#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
1989 "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384",
1993 0 },
1994#endif
1995#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
1997 "TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384",
2001 0 },
2002#endif
2003#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
2005 "TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256",
2009 0 },
2010#endif
2011#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
2013 "TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256",
2017 0 },
2018#endif
2019
2020#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
2021
2022#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
2023
2024#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
2026 "TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384",
2030 0 },
2031#endif
2032#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
2034 "TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256",
2038 0 },
2039#endif
2040
2041#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
2042
2043#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
2044
2045#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
2047 "TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384",
2051 0 },
2052#endif
2053#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
2055 "TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384",
2059 0 },
2060#endif
2061#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
2063 "TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256",
2067 0 },
2068#endif
2069#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
2071 "TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256",
2075 0 },
2076#endif
2077
2078#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
2079
2080#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
2081
2082#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
2084 "TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384",
2088 0 },
2089#endif
2090#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
2092 "TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384",
2096 0 },
2097#endif
2098#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
2100 "TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256",
2104 0 },
2105#endif
2106#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
2108 "TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256",
2112 0 },
2113#endif
2114
2115#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
2116
2117#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
2118
2119#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
2121 "TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384",
2125 0 },
2126#endif
2127#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
2129 "TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384",
2133 0 },
2134#endif
2135#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
2137 "TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256",
2141 0 },
2142#endif
2143#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
2145 "TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256",
2149 0 },
2150#endif
2151
2152#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
2153
2154#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
2155
2156#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
2158 "TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384",
2162 0 },
2163#endif
2164#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
2166 "TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384",
2170 0 },
2171#endif
2172#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
2174 "TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256",
2178 0 },
2179#endif
2180#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
2182 "TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256",
2186 0 },
2187#endif
2188
2189#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
2190
2191#endif /* MBEDTLS_ARIA_C */
2192
2193
2194 { 0, "",
2196 0, 0, 0, 0, 0 }
2197};
2198
2199#if defined(MBEDTLS_SSL_CIPHERSUITES)
2200const int *mbedtls_ssl_list_ciphersuites( void )
2201{
2202 return( ciphersuite_preference );
2203}
2204#else
2205#define MAX_CIPHERSUITES sizeof( ciphersuite_definitions ) / \
2206 sizeof( ciphersuite_definitions[0] )
2207static int supported_ciphersuites[MAX_CIPHERSUITES];
2208static int supported_init = 0;
2209
2210static int ciphersuite_is_removed( const mbedtls_ssl_ciphersuite_t *cs_info )
2211{
2212 (void)cs_info;
2213
2214#if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
2215 if( cs_info->cipher == MBEDTLS_CIPHER_ARC4_128 )
2216 return( 1 );
2217#endif /* MBEDTLS_REMOVE_ARC4_CIPHERSUITES */
2218
2219#if defined(MBEDTLS_REMOVE_3DES_CIPHERSUITES)
2220 if( cs_info->cipher == MBEDTLS_CIPHER_DES_EDE3_ECB ||
2222 {
2223 return( 1 );
2224 }
2225#endif /* MBEDTLS_REMOVE_3DES_CIPHERSUITES */
2226
2227 return( 0 );
2228}
2229
2230const int *mbedtls_ssl_list_ciphersuites( void )
2231{
2232 /*
2233 * On initial call filter out all ciphersuites not supported by current
2234 * build based on presence in the ciphersuite_definitions.
2235 */
2236 if( supported_init == 0 )
2237 {
2238 const int *p;
2239 int *q;
2240
2241 for( p = ciphersuite_preference, q = supported_ciphersuites;
2242 *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
2243 p++ )
2244 {
2245 const mbedtls_ssl_ciphersuite_t *cs_info;
2246 if( ( cs_info = mbedtls_ssl_ciphersuite_from_id( *p ) ) != NULL &&
2247 !ciphersuite_is_removed( cs_info ) )
2248 {
2249 *(q++) = *p;
2250 }
2251 }
2252 *q = 0;
2253
2254 supported_init = 1;
2255 }
2256
2257 return( supported_ciphersuites );
2258}
2259#endif /* MBEDTLS_SSL_CIPHERSUITES */
2260
2262 const char *ciphersuite_name )
2263{
2264 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
2265
2266 if( NULL == ciphersuite_name )
2267 return( NULL );
2268
2269 while( cur->id != 0 )
2270 {
2271 if( 0 == strcmp( cur->name, ciphersuite_name ) )
2272 return( cur );
2273
2274 cur++;
2275 }
2276
2277 return( NULL );
2278}
2279
2281{
2282 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
2283
2284 while( cur->id != 0 )
2285 {
2286 if( cur->id == ciphersuite )
2287 return( cur );
2288
2289 cur++;
2290 }
2291
2292 return( NULL );
2293}
2294
2295const char *mbedtls_ssl_get_ciphersuite_name( const int ciphersuite_id )
2296{
2298
2299 cur = mbedtls_ssl_ciphersuite_from_id( ciphersuite_id );
2300
2301 if( cur == NULL )
2302 return( "unknown" );
2303
2304 return( cur->name );
2305}
2306
2307int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name )
2308{
2310
2311 cur = mbedtls_ssl_ciphersuite_from_string( ciphersuite_name );
2312
2313 if( cur == NULL )
2314 return( 0 );
2315
2316 return( cur->id );
2317}
2318
2319#if defined(MBEDTLS_PK_C)
2321{
2322 switch( info->key_exchange )
2323 {
2328 return( MBEDTLS_PK_RSA );
2329
2331 return( MBEDTLS_PK_ECDSA );
2332
2335 return( MBEDTLS_PK_ECKEY );
2336
2337 default:
2338 return( MBEDTLS_PK_NONE );
2339 }
2340}
2341
2343{
2344 switch( info->key_exchange )
2345 {
2349 return( MBEDTLS_PK_RSA );
2350
2352 return( MBEDTLS_PK_ECDSA );
2353
2354 default:
2355 return( MBEDTLS_PK_NONE );
2356 }
2357}
2358
2359#endif /* MBEDTLS_PK_C */
2360
2361#if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \
2362 defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
2364{
2365 switch( info->key_exchange )
2366 {
2373 return( 1 );
2374
2375 default:
2376 return( 0 );
2377 }
2378}
2379#endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED*/
2380
2381#if defined(MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED)
2383{
2384 switch( info->key_exchange )
2385 {
2390 return( 1 );
2391
2392 default:
2393 return( 0 );
2394 }
2395}
2396#endif /* MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED */
2397
2398#endif /* MBEDTLS_SSL_TLS_C */
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
@ MBEDTLS_CIPHER_CAMELLIA_128_GCM
Definition: cipher.h:159
@ MBEDTLS_CIPHER_DES_EDE3_CBC
Definition: cipher.h:167
@ MBEDTLS_CIPHER_ARIA_128_GCM
Definition: cipher.h:191
@ MBEDTLS_CIPHER_AES_128_CBC
Definition: cipher.h:135
@ MBEDTLS_CIPHER_CAMELLIA_256_GCM
Definition: cipher.h:161
@ MBEDTLS_CIPHER_AES_256_GCM
Definition: cipher.h:146
@ MBEDTLS_CIPHER_DES_CBC
Definition: cipher.h:163
@ MBEDTLS_CIPHER_CAMELLIA_128_CBC
Definition: cipher.h:150
@ MBEDTLS_CIPHER_AES_256_CCM
Definition: cipher.h:175
@ MBEDTLS_CIPHER_AES_128_GCM
Definition: cipher.h:144
@ MBEDTLS_CIPHER_NONE
Definition: cipher.h:130
@ MBEDTLS_CIPHER_CHACHA20_POLY1305
Definition: cipher.h:203
@ MBEDTLS_CIPHER_AES_128_CCM
Definition: cipher.h:173
@ MBEDTLS_CIPHER_NULL
Definition: cipher.h:131
@ MBEDTLS_CIPHER_ARIA_256_CBC
Definition: cipher.h:184
@ MBEDTLS_CIPHER_AES_256_CBC
Definition: cipher.h:137
@ MBEDTLS_CIPHER_ARC4_128
Definition: cipher.h:172
@ MBEDTLS_CIPHER_ARIA_256_GCM
Definition: cipher.h:193
@ MBEDTLS_CIPHER_DES_EDE3_ECB
Definition: cipher.h:166
@ MBEDTLS_CIPHER_ARIA_128_CBC
Definition: cipher.h:182
@ MBEDTLS_CIPHER_CAMELLIA_256_CBC
Definition: cipher.h:152
#define NULL
Definition: types.h:112
FxCollectionEntry * cur
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
GLfloat GLfloat p
Definition: glext.h:8902
@ MBEDTLS_MD_MD5
Definition: md.h:87
@ MBEDTLS_MD_SHA384
Definition: md.h:91
@ MBEDTLS_MD_NONE
Definition: md.h:84
@ MBEDTLS_MD_SHA256
Definition: md.h:90
@ MBEDTLS_MD_SHA1
Definition: md.h:88
mbedtls_pk_type_t
Public key types.
Definition: pk.h:103
@ MBEDTLS_PK_NONE
Definition: pk.h:104
@ MBEDTLS_PK_ECDSA
Definition: pk.h:108
@ MBEDTLS_PK_RSA
Definition: pk.h:105
@ MBEDTLS_PK_ECKEY
Definition: pk.h:106
#define mbedtls_ssl_get_ciphersuite_id
#define mbedtls_ssl_ciphersuite_from_id
Configuration options (set of defines)
This file contains the definitions and functions of the Mbed TLS platform abstraction layer.
SSL/TLS functions.
#define MBEDTLS_SSL_MINOR_VERSION_0
Definition: ssl.h:157
#define MBEDTLS_SSL_MINOR_VERSION_1
Definition: ssl.h:158
#define MBEDTLS_SSL_MINOR_VERSION_3
Definition: ssl.h:160
#define MBEDTLS_SSL_MAJOR_VERSION_3
Definition: ssl.h:156
const char * mbedtls_ssl_get_ciphersuite_name(const int ciphersuite_id)
Return the name of the ciphersuite associated with the given ID.
SSL Ciphersuites for mbed TLS.
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
#define MBEDTLS_TLS_PSK_WITH_NULL_SHA256
int mbedtls_ssl_ciphersuite_uses_psk(const mbedtls_ssl_ciphersuite_t *info)
#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8
#define MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM
#define MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384
#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_CIPHERSUITE_WEAK
#define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
int mbedtls_ssl_ciphersuite_uses_ec(const mbedtls_ssl_ciphersuite_t *info)
#define MBEDTLS_TLS_RSA_WITH_NULL_SHA
#define MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA
#define MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
#define MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA
#define MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256
#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM
#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA
#define MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8
#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
#define MBEDTLS_TLS_PSK_WITH_NULL_SHA
#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
const int * mbedtls_ssl_list_ciphersuites(void)
#define MBEDTLS_TLS_RSA_WITH_RC4_128_MD5
#define MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8
#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg(const mbedtls_ssl_ciphersuite_t *info)
#define MBEDTLS_TLS_RSA_WITH_RC4_128_SHA
#define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg(const mbedtls_ssl_ciphersuite_t *info)
#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA
#define MBEDTLS_TLS_PSK_WITH_NULL_SHA384
#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
#define MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256
#define MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
#define MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA
const mbedtls_ssl_ciphersuite_t * mbedtls_ssl_ciphersuite_from_string(const char *ciphersuite_name)
#define MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
#define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA
#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_RSA_WITH_NULL_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_RSA_WITH_AES_256_CCM
#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM
#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA
#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8
#define MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384
#define MBEDTLS_CIPHERSUITE_NODTLS
#define MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
#define MBEDTLS_CIPHERSUITE_SHORT_TAG
#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8
#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
#define MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256
#define MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA
#define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8
#define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_PSK_WITH_RC4_128_SHA
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8
#define MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_PSK_WITH_AES_128_CCM
#define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
#define MBEDTLS_TLS_PSK_WITH_AES_256_CCM
#define MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8
#define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM
#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
#define MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256
#define MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
@ MBEDTLS_KEY_EXCHANGE_PSK
@ MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA
@ MBEDTLS_KEY_EXCHANGE_DHE_PSK
@ MBEDTLS_KEY_EXCHANGE_DHE_RSA
@ MBEDTLS_KEY_EXCHANGE_ECDH_RSA
@ MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA
@ MBEDTLS_KEY_EXCHANGE_RSA
@ MBEDTLS_KEY_EXCHANGE_ECJPAKE
@ MBEDTLS_KEY_EXCHANGE_RSA_PSK
@ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK
@ MBEDTLS_KEY_EXCHANGE_ECDHE_RSA
@ MBEDTLS_KEY_EXCHANGE_NONE
#define MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
#define MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384
#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384
#define MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA
#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
#define MBEDTLS_TLS_RSA_WITH_NULL_MD5
#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
#define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256
#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
#define MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
#define MBEDTLS_TLS_RSA_WITH_AES_128_CCM
#define MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8
#define MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
This structure is used for storing ciphersuite information.
mbedtls_cipher_type_t cipher