blob: 912af072eb35f763ed42e159aff4e503d4e440d6 [file] [log] [blame]
Paul Bakker68884e32013-01-07 18:20:04 +01001/**
2 * \file ssl_ciphersuites.c
3 *
Manuel Pégourié-Gonnardb4fe3cb2015-01-22 16:11:05 +00004 * \brief SSL ciphersuites for mbed TLS
Paul Bakker68884e32013-01-07 18:20:04 +01005 *
Paul Bakker9af723c2014-05-01 13:03:14 +02006 * Copyright (C) 2006-2014, Brainspark B.V.
Paul Bakker68884e32013-01-07 18:20:04 +01007 *
Manuel Pégourié-Gonnard967a2a52015-01-22 14:28:16 +00008 * This file is part of mbed TLS (http://www.polarssl.org)
Paul Bakker68884e32013-01-07 18:20:04 +01009 * Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
10 *
11 * All rights reserved.
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 2 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License along
24 * with this program; if not, write to the Free Software Foundation, Inc.,
25 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26 */
27
Manuel Pégourié-Gonnardcef4ad22014-04-29 12:39:06 +020028#if !defined(POLARSSL_CONFIG_FILE)
Paul Bakker68884e32013-01-07 18:20:04 +010029#include "polarssl/config.h"
Manuel Pégourié-Gonnardcef4ad22014-04-29 12:39:06 +020030#else
31#include POLARSSL_CONFIG_FILE
32#endif
Paul Bakker68884e32013-01-07 18:20:04 +010033
34#if defined(POLARSSL_SSL_TLS_C)
35
36#include "polarssl/ssl_ciphersuites.h"
37#include "polarssl/ssl.h"
38
39#include <stdlib.h>
40
Paul Bakker6edcd412013-10-29 15:22:54 +010041#if defined(_MSC_VER) && !defined strcasecmp && !defined(EFIX64) && \
42 !defined(EFI32)
Manuel Pégourié-Gonnard9654fb12013-10-03 11:53:05 +020043#define strcasecmp _stricmp
44#endif
45
Paul Bakker41c83d32013-03-20 14:39:14 +010046/*
47 * Ordered from most preferred to least preferred in terms of security.
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +020048 *
Manuel Pégourié-Gonnardc16f4e12014-04-29 18:23:07 +020049 * Current rule (except rc4, weak and null which come last):
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +020050 * 1. By key exchange:
51 * Forward-secure non-PSK > forward-secure PSK > other non-PSK > other PSK
52 * 2. By key length and cipher:
Manuel Pégourié-Gonnardc16f4e12014-04-29 18:23:07 +020053 * AES-256 > Camellia-256 > AES-128 > Camellia-128 > 3DES
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +020054 * 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +020055 * 4. By hash function used when relevant
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +020056 * 5. By key exchange/auth again: EC > non-EC
Paul Bakker41c83d32013-03-20 14:39:14 +010057 */
58static const int ciphersuite_preference[] =
Paul Bakker68884e32013-01-07 18:20:04 +010059{
Manuel Pégourié-Gonnarddfc7df02014-06-30 17:59:55 +020060#if defined(SSL_CIPHERSUITES)
61 SSL_CIPHERSUITES,
62#else
Paul Bakker27714b12013-04-07 23:07:12 +020063 /* All AES-256 ephemeral suites */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +020064 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
Paul Bakkera54e4932013-03-20 15:31:54 +010065 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
Paul Bakker68884e32013-01-07 18:20:04 +010066 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +020067 TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
68 TLS_DHE_RSA_WITH_AES_256_CCM,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +020069 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
70 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
71 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +020072 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
Paul Bakker41c83d32013-03-20 14:39:14 +010073 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
Paul Bakker68884e32013-01-07 18:20:04 +010074 TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +020075 TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
76 TLS_DHE_RSA_WITH_AES_256_CCM_8,
Paul Bakker27714b12013-04-07 23:07:12 +020077
78 /* All CAMELLIA-256 ephemeral suites */
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +020079 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
80 TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
81 TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +020082 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
Paul Bakker27714b12013-04-07 23:07:12 +020083 TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
Paul Bakker68884e32013-01-07 18:20:04 +010084 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
Paul Bakker68884e32013-01-07 18:20:04 +010085 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
Paul Bakker27714b12013-04-07 23:07:12 +020086
87 /* All AES-128 ephemeral suites */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +020088 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
Paul Bakkera54e4932013-03-20 15:31:54 +010089 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
Paul Bakker41c83d32013-03-20 14:39:14 +010090 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +020091 TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
92 TLS_DHE_RSA_WITH_AES_128_CCM,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +020093 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
94 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
95 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +020096 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
Paul Bakker41c83d32013-03-20 14:39:14 +010097 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
98 TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +020099 TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
100 TLS_DHE_RSA_WITH_AES_128_CCM_8,
Paul Bakker27714b12013-04-07 23:07:12 +0200101
102 /* All CAMELLIA-128 ephemeral suites */
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200103 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
104 TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
105 TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200106 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
Paul Bakker27714b12013-04-07 23:07:12 +0200107 TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
Paul Bakker68884e32013-01-07 18:20:04 +0100108 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
Paul Bakker68884e32013-01-07 18:20:04 +0100109 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
Paul Bakker27714b12013-04-07 23:07:12 +0200110
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +0200111 /* All remaining >= 128-bit ephemeral suites */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200112 TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
Paul Bakker41c83d32013-03-20 14:39:14 +0100113 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
Paul Bakker68884e32013-01-07 18:20:04 +0100114 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
Paul Bakker27714b12013-04-07 23:07:12 +0200115
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200116 /* The PSK ephemeral suites */
Paul Bakker40afb4b2013-04-19 22:03:30 +0200117 TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +0200118 TLS_DHE_PSK_WITH_AES_256_CCM,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200119 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
120 TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
121 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
122 TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200123 TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200124 TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +0200125 TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200126 TLS_DHE_PSK_WITH_AES_256_CCM_8,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200127
Paul Bakker40afb4b2013-04-19 22:03:30 +0200128 TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +0200129 TLS_DHE_PSK_WITH_AES_128_CCM,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200130 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
131 TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
132 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
133 TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200134 TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +0200135 TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200136 TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200137 TLS_DHE_PSK_WITH_AES_128_CCM_8,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200138
139 TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200140 TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200141
Paul Bakker27714b12013-04-07 23:07:12 +0200142 /* All AES-256 suites */
Paul Bakker68884e32013-01-07 18:20:04 +0100143 TLS_RSA_WITH_AES_256_GCM_SHA384,
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +0200144 TLS_RSA_WITH_AES_256_CCM,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200145 TLS_RSA_WITH_AES_256_CBC_SHA256,
Paul Bakker68884e32013-01-07 18:20:04 +0100146 TLS_RSA_WITH_AES_256_CBC_SHA,
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +0100147 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
148 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
149 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
150 TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
151 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
152 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200153 TLS_RSA_WITH_AES_256_CCM_8,
Paul Bakker27714b12013-04-07 23:07:12 +0200154
155 /* All CAMELLIA-256 suites */
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200156 TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
Paul Bakker68884e32013-01-07 18:20:04 +0100157 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
Paul Bakker68884e32013-01-07 18:20:04 +0100158 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +0100159 TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
160 TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
161 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
162 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
Paul Bakker27714b12013-04-07 23:07:12 +0200163
164 /* All AES-128 suites */
Paul Bakker68884e32013-01-07 18:20:04 +0100165 TLS_RSA_WITH_AES_128_GCM_SHA256,
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +0200166 TLS_RSA_WITH_AES_128_CCM,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200167 TLS_RSA_WITH_AES_128_CBC_SHA256,
Paul Bakker68884e32013-01-07 18:20:04 +0100168 TLS_RSA_WITH_AES_128_CBC_SHA,
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +0100169 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
170 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
171 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
172 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
173 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
174 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200175 TLS_RSA_WITH_AES_128_CCM_8,
Paul Bakker27714b12013-04-07 23:07:12 +0200176
177 /* All CAMELLIA-128 suites */
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200178 TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
Paul Bakker68884e32013-01-07 18:20:04 +0100179 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
Paul Bakker68884e32013-01-07 18:20:04 +0100180 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +0100181 TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
182 TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
183 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
184 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
Paul Bakker27714b12013-04-07 23:07:12 +0200185
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +0200186 /* All remaining >= 128-bit suites */
Paul Bakker68884e32013-01-07 18:20:04 +0100187 TLS_RSA_WITH_3DES_EDE_CBC_SHA,
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +0100188 TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +0100189 TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
Paul Bakker27714b12013-04-07 23:07:12 +0200190
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200191 /* The RSA PSK suites */
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200192 TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
Paul Bakker40afb4b2013-04-19 22:03:30 +0200193 TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200194 TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200195 TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +0200196 TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200197
198 TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
Paul Bakker40afb4b2013-04-19 22:03:30 +0200199 TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200200 TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200201 TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +0200202 TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200203
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200204 TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200205
206 /* The PSK suites */
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200207 TLS_PSK_WITH_AES_256_GCM_SHA384,
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +0200208 TLS_PSK_WITH_AES_256_CCM,
Paul Bakker40afb4b2013-04-19 22:03:30 +0200209 TLS_PSK_WITH_AES_256_CBC_SHA384,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200210 TLS_PSK_WITH_AES_256_CBC_SHA,
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200211 TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +0200212 TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200213 TLS_PSK_WITH_AES_256_CCM_8,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200214
215 TLS_PSK_WITH_AES_128_GCM_SHA256,
Manuel Pégourié-Gonnard42b53742014-06-19 16:18:26 +0200216 TLS_PSK_WITH_AES_128_CCM,
Paul Bakker40afb4b2013-04-19 22:03:30 +0200217 TLS_PSK_WITH_AES_128_CBC_SHA256,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200218 TLS_PSK_WITH_AES_128_CBC_SHA,
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200219 TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +0200220 TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200221 TLS_PSK_WITH_AES_128_CCM_8,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200222
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200223 TLS_PSK_WITH_3DES_EDE_CBC_SHA,
Manuel Pégourié-Gonnardc16f4e12014-04-29 18:23:07 +0200224
225 /* RC4 suites */
226 TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
227 TLS_ECDHE_RSA_WITH_RC4_128_SHA,
228 TLS_ECDHE_PSK_WITH_RC4_128_SHA,
229 TLS_DHE_PSK_WITH_RC4_128_SHA,
230 TLS_RSA_WITH_RC4_128_SHA,
231 TLS_RSA_WITH_RC4_128_MD5,
232 TLS_ECDH_RSA_WITH_RC4_128_SHA,
233 TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
234 TLS_RSA_PSK_WITH_RC4_128_SHA,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200235 TLS_PSK_WITH_RC4_128_SHA,
236
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +0200237 /* Weak suites */
Paul Bakker68884e32013-01-07 18:20:04 +0100238 TLS_DHE_RSA_WITH_DES_CBC_SHA,
Paul Bakker68884e32013-01-07 18:20:04 +0100239 TLS_RSA_WITH_DES_CBC_SHA,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +0200240
241 /* NULL suites */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200242 TLS_ECDHE_ECDSA_WITH_NULL_SHA,
Paul Bakker41c83d32013-03-20 14:39:14 +0100243 TLS_ECDHE_RSA_WITH_NULL_SHA,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +0200244 TLS_ECDHE_PSK_WITH_NULL_SHA384,
245 TLS_ECDHE_PSK_WITH_NULL_SHA256,
246 TLS_ECDHE_PSK_WITH_NULL_SHA,
Paul Bakker40afb4b2013-04-19 22:03:30 +0200247 TLS_DHE_PSK_WITH_NULL_SHA384,
248 TLS_DHE_PSK_WITH_NULL_SHA256,
Paul Bakkera1bf92d2013-04-19 19:48:45 +0200249 TLS_DHE_PSK_WITH_NULL_SHA,
Manuel Pégourié-Gonnard6fb0f742013-10-25 17:08:15 +0200250
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +0200251 TLS_RSA_WITH_NULL_SHA256,
252 TLS_RSA_WITH_NULL_SHA,
253 TLS_RSA_WITH_NULL_MD5,
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +0100254 TLS_ECDH_RSA_WITH_NULL_SHA,
255 TLS_ECDH_ECDSA_WITH_NULL_SHA,
Paul Bakker40afb4b2013-04-19 22:03:30 +0200256 TLS_RSA_PSK_WITH_NULL_SHA384,
257 TLS_RSA_PSK_WITH_NULL_SHA256,
Paul Bakkera1bf92d2013-04-19 19:48:45 +0200258 TLS_RSA_PSK_WITH_NULL_SHA,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +0200259 TLS_PSK_WITH_NULL_SHA384,
260 TLS_PSK_WITH_NULL_SHA256,
261 TLS_PSK_WITH_NULL_SHA,
Paul Bakker27714b12013-04-07 23:07:12 +0200262
Paul Bakker82788fb2014-10-20 13:59:19 +0200263#endif /* SSL_CIPHERSUITES */
Paul Bakker68884e32013-01-07 18:20:04 +0100264 0
265};
266
267static const ssl_ciphersuite_t ciphersuite_definitions[] =
268{
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200269#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
270#if defined(POLARSSL_AES_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200271#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200272#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200273 { TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
274 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
275 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
276 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200277 0 },
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200278 { TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA",
279 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
280 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
281 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200282 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200283#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200284#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200285#if defined(POLARSSL_SHA256_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200286#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200287 { TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
288 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
289 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
290 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200291 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200292#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200293#if defined(POLARSSL_GCM_C)
294 { TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
295 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
296 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
297 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200298 0 },
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200299#endif /* POLARSSL_GCM_C */
300#endif /* POLARSSL_SHA256_C */
301#if defined(POLARSSL_SHA512_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200302#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200303 { TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
304 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
305 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
306 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200307 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200308#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200309#if defined(POLARSSL_GCM_C)
310 { TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
311 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
312 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
313 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200314 0 },
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200315#endif /* POLARSSL_GCM_C */
316#endif /* POLARSSL_SHA512_C */
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200317#if defined(POLARSSL_CCM_C)
318 { TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM",
319 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
320 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
321 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
322 0 },
323 { TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8",
324 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
325 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
326 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
327 POLARSSL_CIPHERSUITE_SHORT_TAG },
328 { TLS_ECDHE_ECDSA_WITH_AES_128_CCM, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM",
329 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
330 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
331 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
332 0 },
333 { TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8",
334 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
335 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
336 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
337 POLARSSL_CIPHERSUITE_SHORT_TAG },
338#endif /* POLARSSL_CCM_C */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200339#endif /* POLARSSL_AES_C */
340
341#if defined(POLARSSL_CAMELLIA_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200342#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200343#if defined(POLARSSL_SHA256_C)
344 { TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
345 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +0100346 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200347 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200348 0 },
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200349#endif /* POLARSSL_SHA256_C */
350#if defined(POLARSSL_SHA512_C)
351 { TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
352 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +0100353 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200354 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200355 0 },
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200356#endif /* POLARSSL_SHA512_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200357#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200358
359#if defined(POLARSSL_GCM_C)
360#if defined(POLARSSL_SHA256_C)
361 { TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
362 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
363 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
364 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
365 0 },
366#endif /* POLARSSL_SHA256_C */
367#if defined(POLARSSL_SHA512_C)
368 { TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
369 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
370 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
371 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
372 0 },
373#endif /* POLARSSL_SHA512_C */
374#endif /* POLARSSL_GCM_C */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200375#endif /* POLARSSL_CAMELLIA_C */
376
377#if defined(POLARSSL_DES_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200378#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200379#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200380 { TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA",
381 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
382 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
383 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200384 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200385#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200386#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200387#endif /* POLARSSL_DES_C */
388
389#if defined(POLARSSL_ARC4_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200390#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200391 { TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, "TLS-ECDHE-ECDSA-WITH-RC4-128-SHA",
392 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
393 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
394 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200395 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200396#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200397#endif /* POLARSSL_ARC4_C */
398
399#if defined(POLARSSL_CIPHER_NULL_CIPHER)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200400#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200401 { TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA",
402 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA,
403 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
404 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200405 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200406#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +0200407#endif /* POLARSSL_CIPHER_NULL_CIPHER */
408#endif /* POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
409
Paul Bakkere07f41d2013-04-19 09:08:57 +0200410#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
Paul Bakker41c83d32013-03-20 14:39:14 +0100411#if defined(POLARSSL_AES_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200412#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200413#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker41c83d32013-03-20 14:39:14 +0100414 { TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
415 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
416 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
417 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200418 0 },
Paul Bakker41c83d32013-03-20 14:39:14 +0100419 { TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA",
420 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
421 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
422 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200423 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200424#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200425#endif /* POLARSSL_SHA1_C */
Paul Bakker9e36f042013-06-30 14:34:05 +0200426#if defined(POLARSSL_SHA256_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200427#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakkera54e4932013-03-20 15:31:54 +0100428 { TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
429 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
430 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
431 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200432 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200433#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakkera54e4932013-03-20 15:31:54 +0100434#if defined(POLARSSL_GCM_C)
435 { TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
436 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
437 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
438 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200439 0 },
Paul Bakkera54e4932013-03-20 15:31:54 +0100440#endif /* POLARSSL_GCM_C */
Paul Bakker9e36f042013-06-30 14:34:05 +0200441#endif /* POLARSSL_SHA256_C */
442#if defined(POLARSSL_SHA512_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200443#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakkera54e4932013-03-20 15:31:54 +0100444 { TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
445 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
446 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
447 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200448 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200449#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakkera54e4932013-03-20 15:31:54 +0100450#if defined(POLARSSL_GCM_C)
451 { TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
452 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
453 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
454 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200455 0 },
Paul Bakkera54e4932013-03-20 15:31:54 +0100456#endif /* POLARSSL_GCM_C */
Paul Bakker9e36f042013-06-30 14:34:05 +0200457#endif /* POLARSSL_SHA512_C */
Paul Bakkera54e4932013-03-20 15:31:54 +0100458#endif /* POLARSSL_AES_C */
Paul Bakker27714b12013-04-07 23:07:12 +0200459
460#if defined(POLARSSL_CAMELLIA_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200461#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker9e36f042013-06-30 14:34:05 +0200462#if defined(POLARSSL_SHA256_C)
Paul Bakker27714b12013-04-07 23:07:12 +0200463 { TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
464 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +0100465 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker27714b12013-04-07 23:07:12 +0200466 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200467 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +0200468#endif /* POLARSSL_SHA256_C */
469#if defined(POLARSSL_SHA512_C)
Paul Bakker27714b12013-04-07 23:07:12 +0200470 { TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384",
471 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +0100472 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker27714b12013-04-07 23:07:12 +0200473 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200474 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +0200475#endif /* POLARSSL_SHA512_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200476#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200477
478#if defined(POLARSSL_GCM_C)
479#if defined(POLARSSL_SHA256_C)
480 { TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
481 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
482 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
483 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
484 0 },
485#endif /* POLARSSL_SHA256_C */
486#if defined(POLARSSL_SHA512_C)
487 { TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
488 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
489 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
490 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
491 0 },
492#endif /* POLARSSL_SHA512_C */
493#endif /* POLARSSL_GCM_C */
Paul Bakker27714b12013-04-07 23:07:12 +0200494#endif /* POLARSSL_CAMELLIA_C */
495
Paul Bakker41c83d32013-03-20 14:39:14 +0100496#if defined(POLARSSL_DES_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200497#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200498#if defined(POLARSSL_SHA1_C)
Paul Bakker41c83d32013-03-20 14:39:14 +0100499 { TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA",
500 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
501 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
502 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200503 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200504#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200505#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakker41c83d32013-03-20 14:39:14 +0100506#endif /* POLARSSL_DES_C */
Paul Bakker27714b12013-04-07 23:07:12 +0200507
Paul Bakker41c83d32013-03-20 14:39:14 +0100508#if defined(POLARSSL_ARC4_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200509#if defined(POLARSSL_SHA1_C)
Paul Bakker41c83d32013-03-20 14:39:14 +0100510 { TLS_ECDHE_RSA_WITH_RC4_128_SHA, "TLS-ECDHE-RSA-WITH-RC4-128-SHA",
511 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
512 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
513 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200514 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200515#endif /* POLARSSL_SHA1_C */
Paul Bakkered27a042013-04-18 22:46:23 +0200516#endif /* POLARSSL_ARC4_C */
Paul Bakker27714b12013-04-07 23:07:12 +0200517
Paul Bakker41c83d32013-03-20 14:39:14 +0100518#if defined(POLARSSL_CIPHER_NULL_CIPHER)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200519#if defined(POLARSSL_SHA1_C)
Paul Bakker41c83d32013-03-20 14:39:14 +0100520 { TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA",
521 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA,
522 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
523 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +0200524 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200525#endif /* POLARSSL_SHA1_C */
Paul Bakkered27a042013-04-18 22:46:23 +0200526#endif /* POLARSSL_CIPHER_NULL_CIPHER */
Paul Bakkere07f41d2013-04-19 09:08:57 +0200527#endif /* POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
Paul Bakker41c83d32013-03-20 14:39:14 +0100528
Paul Bakkere07f41d2013-04-19 09:08:57 +0200529#if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED)
Paul Bakker68884e32013-01-07 18:20:04 +0100530#if defined(POLARSSL_AES_C)
Paul Bakker9e36f042013-06-30 14:34:05 +0200531#if defined(POLARSSL_SHA512_C) && defined(POLARSSL_GCM_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100532 { TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
533 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_RSA,
534 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
535 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
536 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +0200537#endif /* POLARSSL_SHA512_C && POLARSSL_GCM_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100538
Paul Bakker9e36f042013-06-30 14:34:05 +0200539#if defined(POLARSSL_SHA256_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100540#if defined(POLARSSL_GCM_C)
541 { TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
542 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
543 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
544 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
545 0 },
546#endif /* POLARSSL_GCM_C */
547
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200548#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker68884e32013-01-07 18:20:04 +0100549 { TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
550 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
551 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
552 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
553 0 },
554
555 { TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
556 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
557 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
558 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
559 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200560#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakker9e36f042013-06-30 14:34:05 +0200561#endif /* POLARSSL_SHA256_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100562
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200563#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200564#if defined(POLARSSL_SHA1_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100565 { TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA",
566 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA,
567 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
568 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
569 0 },
570
571 { TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
572 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA,
573 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
574 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
575 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200576#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200577#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200578#if defined(POLARSSL_CCM_C)
579 { TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM",
580 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
581 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
582 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
583 0 },
584 { TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8",
585 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
586 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
587 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
588 POLARSSL_CIPHERSUITE_SHORT_TAG },
589 { TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM",
590 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
591 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
592 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
593 0 },
594 { TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8",
595 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
596 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
597 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
598 POLARSSL_CIPHERSUITE_SHORT_TAG },
599#endif /* POLARSSL_CCM_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100600#endif /* POLARSSL_AES_C */
601
602#if defined(POLARSSL_CAMELLIA_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200603#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker9e36f042013-06-30 14:34:05 +0200604#if defined(POLARSSL_SHA256_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100605 { TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
606 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
607 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
608 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
609 0 },
610
611 { TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256",
612 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
613 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
614 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
615 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +0200616#endif /* POLARSSL_SHA256_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100617
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200618#if defined(POLARSSL_SHA1_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100619 { TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA",
620 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA,
621 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
622 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
623 0 },
624
625 { TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA",
626 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA,
627 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
628 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
629 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200630#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200631#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200632#if defined(POLARSSL_GCM_C)
633#if defined(POLARSSL_SHA256_C)
634 { TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
635 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA,
636 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
637 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
638 0 },
639#endif /* POLARSSL_SHA256_C */
640
641#if defined(POLARSSL_SHA512_C)
642 { TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
643 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_RSA,
644 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
645 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
646 0 },
647#endif /* POLARSSL_SHA512_C */
648#endif /* POLARSSL_GCM_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100649#endif /* POLARSSL_CAMELLIA_C */
650
651#if defined(POLARSSL_DES_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200652#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200653#if defined(POLARSSL_SHA1_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100654 { TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA",
655 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA,
656 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
657 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
658 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200659#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200660#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakker68884e32013-01-07 18:20:04 +0100661#endif /* POLARSSL_DES_C */
Paul Bakkere07f41d2013-04-19 09:08:57 +0200662#endif /* POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED */
Paul Bakker68884e32013-01-07 18:20:04 +0100663
Paul Bakkere07f41d2013-04-19 09:08:57 +0200664#if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED)
Paul Bakker68884e32013-01-07 18:20:04 +0100665#if defined(POLARSSL_AES_C)
Paul Bakker9e36f042013-06-30 14:34:05 +0200666#if defined(POLARSSL_SHA512_C) && defined(POLARSSL_GCM_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100667 { TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384",
668 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA,
669 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
670 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
671 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +0200672#endif /* POLARSSL_SHA512_C && POLARSSL_GCM_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100673
Paul Bakker9e36f042013-06-30 14:34:05 +0200674#if defined(POLARSSL_SHA256_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100675#if defined(POLARSSL_GCM_C)
676 { TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256",
677 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
678 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
679 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
680 0 },
681#endif /* POLARSSL_GCM_C */
682
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200683#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker68884e32013-01-07 18:20:04 +0100684 { TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256",
685 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
686 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
687 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
688 0 },
689
690 { TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256",
691 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
692 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
693 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
694 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200695#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakker9e36f042013-06-30 14:34:05 +0200696#endif /* POLARSSL_SHA256_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100697
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200698#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200699#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker68884e32013-01-07 18:20:04 +0100700 { TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA",
701 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA,
702 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
703 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
704 0 },
705
706 { TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA",
707 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA,
708 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
709 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
710 0 },
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200711#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200712#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +0200713#if defined(POLARSSL_CCM_C)
714 { TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM",
715 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
716 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
717 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
718 0 },
719 { TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8",
720 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
721 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
722 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
723 POLARSSL_CIPHERSUITE_SHORT_TAG },
724 { TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM",
725 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
726 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
727 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
728 0 },
729 { TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8",
730 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
731 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
732 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
733 POLARSSL_CIPHERSUITE_SHORT_TAG },
734#endif /* POLARSSL_CCM_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100735#endif /* POLARSSL_AES_C */
736
737#if defined(POLARSSL_CAMELLIA_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200738#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker9e36f042013-06-30 14:34:05 +0200739#if defined(POLARSSL_SHA256_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100740 { TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256",
741 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
742 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
743 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
744 0 },
745
746 { TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256",
747 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
748 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
749 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
750 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +0200751#endif /* POLARSSL_SHA256_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100752
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200753#if defined(POLARSSL_SHA1_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100754 { TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA",
755 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA,
756 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
757 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
758 0 },
759
760 { TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA",
761 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA,
762 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
763 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
764 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200765#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200766#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +0200767
768#if defined(POLARSSL_GCM_C)
769#if defined(POLARSSL_SHA256_C)
770 { TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256",
771 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
772 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
773 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
774 0 },
775#endif /* POLARSSL_SHA256_C */
776
777#if defined(POLARSSL_SHA1_C)
778 { TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384",
779 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA,
780 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
781 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
782 0 },
783#endif /* POLARSSL_SHA1_C */
784#endif /* POLARSSL_GCM_C */
Paul Bakker68884e32013-01-07 18:20:04 +0100785#endif /* POLARSSL_CAMELLIA_C */
786
787#if defined(POLARSSL_DES_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200788#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200789#if defined(POLARSSL_SHA1_C)
Paul Bakker68884e32013-01-07 18:20:04 +0100790 { TLS_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-WITH-3DES-EDE-CBC-SHA",
791 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA,
792 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
793 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
794 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200795#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +0200796#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakker68884e32013-01-07 18:20:04 +0100797#endif /* POLARSSL_DES_C */
Paul Bakkere07f41d2013-04-19 09:08:57 +0200798
799#if defined(POLARSSL_ARC4_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200800#if defined(POLARSSL_MD5_C)
Paul Bakkere07f41d2013-04-19 09:08:57 +0200801 { TLS_RSA_WITH_RC4_128_MD5, "TLS-RSA-WITH-RC4-128-MD5",
802 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_MD5, POLARSSL_KEY_EXCHANGE_RSA,
803 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
804 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
805 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200806#endif
Paul Bakkere07f41d2013-04-19 09:08:57 +0200807
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200808#if defined(POLARSSL_SHA1_C)
Paul Bakkere07f41d2013-04-19 09:08:57 +0200809 { TLS_RSA_WITH_RC4_128_SHA, "TLS-RSA-WITH-RC4-128-SHA",
810 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA,
811 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
812 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
813 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +0200814#endif
Paul Bakkere07f41d2013-04-19 09:08:57 +0200815#endif /* POLARSSL_ARC4_C */
816#endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */
Paul Bakker68884e32013-01-07 18:20:04 +0100817
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +0100818#if defined(POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED)
819#if defined(POLARSSL_AES_C)
820#if defined(POLARSSL_SHA1_C)
821#if defined(POLARSSL_CIPHER_MODE_CBC)
822 { TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA",
823 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
824 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
825 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
826 0 },
827 { TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA",
828 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
829 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
830 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
831 0 },
832#endif /* POLARSSL_CIPHER_MODE_CBC */
833#endif /* POLARSSL_SHA1_C */
834#if defined(POLARSSL_SHA256_C)
835#if defined(POLARSSL_CIPHER_MODE_CBC)
836 { TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256",
837 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
838 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
839 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
840 0 },
841#endif /* POLARSSL_CIPHER_MODE_CBC */
842#if defined(POLARSSL_GCM_C)
843 { TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256",
844 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
845 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
846 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
847 0 },
848#endif /* POLARSSL_GCM_C */
849#endif /* POLARSSL_SHA256_C */
850#if defined(POLARSSL_SHA512_C)
851#if defined(POLARSSL_CIPHER_MODE_CBC)
852 { TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384",
853 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
854 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
855 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
856 0 },
857#endif /* POLARSSL_CIPHER_MODE_CBC */
858#if defined(POLARSSL_GCM_C)
859 { TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384",
860 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
861 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
862 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
863 0 },
864#endif /* POLARSSL_GCM_C */
865#endif /* POLARSSL_SHA512_C */
866#endif /* POLARSSL_AES_C */
867
868#if defined(POLARSSL_CAMELLIA_C)
869#if defined(POLARSSL_CIPHER_MODE_CBC)
870#if defined(POLARSSL_SHA256_C)
871 { TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256",
872 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
873 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
874 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
875 0 },
876#endif /* POLARSSL_SHA256_C */
877#if defined(POLARSSL_SHA512_C)
878 { TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384",
879 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
880 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
881 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
882 0 },
883#endif /* POLARSSL_SHA512_C */
884#endif /* POLARSSL_CIPHER_MODE_CBC */
885
886#if defined(POLARSSL_GCM_C)
887#if defined(POLARSSL_SHA256_C)
888 { TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256",
889 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
890 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
891 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
892 0 },
893#endif /* POLARSSL_SHA256_C */
894#if defined(POLARSSL_SHA512_C)
895 { TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384",
896 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
897 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
898 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
899 0 },
900#endif /* POLARSSL_SHA512_C */
901#endif /* POLARSSL_GCM_C */
902#endif /* POLARSSL_CAMELLIA_C */
903
904#if defined(POLARSSL_DES_C)
905#if defined(POLARSSL_CIPHER_MODE_CBC)
906#if defined(POLARSSL_SHA1_C)
907 { TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA",
908 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
909 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
910 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
911 0 },
912#endif /* POLARSSL_SHA1_C */
913#endif /* POLARSSL_CIPHER_MODE_CBC */
914#endif /* POLARSSL_DES_C */
915
916#if defined(POLARSSL_ARC4_C)
917#if defined(POLARSSL_SHA1_C)
918 { TLS_ECDH_RSA_WITH_RC4_128_SHA, "TLS-ECDH-RSA-WITH-RC4-128-SHA",
919 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
920 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
921 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
922 0 },
923#endif /* POLARSSL_SHA1_C */
924#endif /* POLARSSL_ARC4_C */
925
926#if defined(POLARSSL_CIPHER_NULL_CIPHER)
927#if defined(POLARSSL_SHA1_C)
928 { TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA",
929 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA,
930 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
931 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
932 POLARSSL_CIPHERSUITE_WEAK },
933#endif /* POLARSSL_SHA1_C */
934#endif /* POLARSSL_CIPHER_NULL_CIPHER */
935#endif /* POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED */
936
937#if defined(POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
938#if defined(POLARSSL_AES_C)
939#if defined(POLARSSL_SHA1_C)
940#if defined(POLARSSL_CIPHER_MODE_CBC)
941 { TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA",
942 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
943 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
944 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
945 0 },
946 { TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA",
947 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
948 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
949 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
950 0 },
951#endif /* POLARSSL_CIPHER_MODE_CBC */
952#endif /* POLARSSL_SHA1_C */
953#if defined(POLARSSL_SHA256_C)
954#if defined(POLARSSL_CIPHER_MODE_CBC)
955 { TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256",
956 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
957 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
958 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
959 0 },
960#endif /* POLARSSL_CIPHER_MODE_CBC */
961#if defined(POLARSSL_GCM_C)
962 { TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256",
963 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
964 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
965 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
966 0 },
967#endif /* POLARSSL_GCM_C */
968#endif /* POLARSSL_SHA256_C */
969#if defined(POLARSSL_SHA512_C)
970#if defined(POLARSSL_CIPHER_MODE_CBC)
971 { TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384",
972 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
973 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
974 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
975 0 },
976#endif /* POLARSSL_CIPHER_MODE_CBC */
977#if defined(POLARSSL_GCM_C)
978 { TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384",
979 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
980 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
981 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
982 0 },
983#endif /* POLARSSL_GCM_C */
984#endif /* POLARSSL_SHA512_C */
985#endif /* POLARSSL_AES_C */
986
987#if defined(POLARSSL_CAMELLIA_C)
988#if defined(POLARSSL_CIPHER_MODE_CBC)
989#if defined(POLARSSL_SHA256_C)
990 { TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
991 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
992 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
993 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
994 0 },
995#endif /* POLARSSL_SHA256_C */
996#if defined(POLARSSL_SHA512_C)
997 { TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
998 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
999 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
1000 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1001 0 },
1002#endif /* POLARSSL_SHA512_C */
1003#endif /* POLARSSL_CIPHER_MODE_CBC */
1004
1005#if defined(POLARSSL_GCM_C)
1006#if defined(POLARSSL_SHA256_C)
1007 { TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
1008 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
1009 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1010 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1011 0 },
1012#endif /* POLARSSL_SHA256_C */
1013#if defined(POLARSSL_SHA512_C)
1014 { TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
1015 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
1016 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1017 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1018 0 },
1019#endif /* POLARSSL_SHA512_C */
1020#endif /* POLARSSL_GCM_C */
1021#endif /* POLARSSL_CAMELLIA_C */
1022
1023#if defined(POLARSSL_DES_C)
1024#if defined(POLARSSL_CIPHER_MODE_CBC)
1025#if defined(POLARSSL_SHA1_C)
1026 { TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA",
1027 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
1028 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
1029 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1030 0 },
1031#endif /* POLARSSL_SHA1_C */
1032#endif /* POLARSSL_CIPHER_MODE_CBC */
1033#endif /* POLARSSL_DES_C */
1034
1035#if defined(POLARSSL_ARC4_C)
1036#if defined(POLARSSL_SHA1_C)
1037 { TLS_ECDH_ECDSA_WITH_RC4_128_SHA, "TLS-ECDH-ECDSA-WITH-RC4-128-SHA",
1038 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
1039 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
1040 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1041 0 },
1042#endif /* POLARSSL_SHA1_C */
1043#endif /* POLARSSL_ARC4_C */
1044
1045#if defined(POLARSSL_CIPHER_NULL_CIPHER)
1046#if defined(POLARSSL_SHA1_C)
1047 { TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA",
1048 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA,
1049 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
1050 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1051 POLARSSL_CIPHERSUITE_WEAK },
1052#endif /* POLARSSL_SHA1_C */
1053#endif /* POLARSSL_CIPHER_NULL_CIPHER */
1054#endif /* POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
1055
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001056#if defined(POLARSSL_KEY_EXCHANGE_PSK_ENABLED)
1057#if defined(POLARSSL_AES_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001058#if defined(POLARSSL_GCM_C)
Paul Bakker9e36f042013-06-30 14:34:05 +02001059#if defined(POLARSSL_SHA256_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001060 { TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256",
1061 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
1062 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1063 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1064 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001065#endif /* POLARSSL_SHA256_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001066
Paul Bakker9e36f042013-06-30 14:34:05 +02001067#if defined(POLARSSL_SHA512_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001068 { TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384",
1069 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK,
1070 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1071 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1072 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001073#endif /* POLARSSL_SHA512_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001074#endif /* POLARSSL_GCM_C */
1075
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001076#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker9e36f042013-06-30 14:34:05 +02001077#if defined(POLARSSL_SHA256_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001078 { TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256",
1079 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001080 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker40afb4b2013-04-19 22:03:30 +02001081 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1082 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001083#endif /* POLARSSL_SHA256_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001084
Paul Bakker9e36f042013-06-30 14:34:05 +02001085#if defined(POLARSSL_SHA512_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001086 { TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384",
1087 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001088 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker40afb4b2013-04-19 22:03:30 +02001089 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1090 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001091#endif /* POLARSSL_SHA512_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001092
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001093#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001094 { TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA",
1095 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK,
1096 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1097 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1098 0 },
1099
1100 { TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA",
1101 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK,
1102 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1103 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1104 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001105#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001106#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001107#if defined(POLARSSL_CCM_C)
Manuel Pégourié-Gonnardac2ccf82014-06-24 15:48:01 +02001108 { TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM",
1109 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001110 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1111 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1112 0 },
Manuel Pégourié-Gonnardac2ccf82014-06-24 15:48:01 +02001113 { TLS_PSK_WITH_AES_256_CCM_8, "TLS-PSK-WITH-AES-256-CCM-8",
1114 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001115 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1116 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1117 POLARSSL_CIPHERSUITE_SHORT_TAG },
Manuel Pégourié-Gonnardac2ccf82014-06-24 15:48:01 +02001118 { TLS_PSK_WITH_AES_128_CCM, "TLS-PSK-WITH-AES-128-CCM",
1119 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001120 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1121 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1122 0 },
Manuel Pégourié-Gonnardac2ccf82014-06-24 15:48:01 +02001123 { TLS_PSK_WITH_AES_128_CCM_8, "TLS-PSK-WITH-AES-128-CCM-8",
1124 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001125 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1126 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1127 POLARSSL_CIPHERSUITE_SHORT_TAG },
1128#endif /* POLARSSL_CCM_C */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001129#endif /* POLARSSL_AES_C */
1130
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001131#if defined(POLARSSL_CAMELLIA_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001132#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001133#if defined(POLARSSL_SHA256_C)
1134 { TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1135 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001136 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001137 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1138 0 },
1139#endif /* POLARSSL_SHA256_C */
1140
1141#if defined(POLARSSL_SHA512_C)
1142 { TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1143 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001144 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001145 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1146 0 },
1147#endif /* POLARSSL_SHA512_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001148#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +02001149
1150#if defined(POLARSSL_GCM_C)
1151#if defined(POLARSSL_SHA256_C)
1152 { TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1153 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
1154 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1155 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1156 0 },
1157#endif /* POLARSSL_SHA256_C */
1158
1159#if defined(POLARSSL_SHA512_C)
1160 { TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1161 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK,
1162 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1163 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1164 0 },
1165#endif /* POLARSSL_SHA512_C */
1166#endif /* POLARSSL_GCM_C */
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001167#endif /* POLARSSL_CAMELLIA_C */
1168
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001169#if defined(POLARSSL_DES_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001170#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001171#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001172 { TLS_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-PSK-WITH-3DES-EDE-CBC-SHA",
1173 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK,
1174 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1175 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1176 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001177#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001178#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001179#endif /* POLARSSL_DES_C */
1180
1181#if defined(POLARSSL_ARC4_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001182#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001183 { TLS_PSK_WITH_RC4_128_SHA, "TLS-PSK-WITH-RC4-128-SHA",
1184 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK,
1185 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1186 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1187 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001188#endif /* POLARSSL_SHA1_C */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001189#endif /* POLARSSL_ARC4_C */
Paul Bakkere07f41d2013-04-19 09:08:57 +02001190#endif /* POLARSSL_KEY_EXCHANGE_PSK_ENABLED */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001191
Paul Bakkere07f41d2013-04-19 09:08:57 +02001192#if defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001193#if defined(POLARSSL_AES_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001194#if defined(POLARSSL_GCM_C)
Paul Bakker9e36f042013-06-30 14:34:05 +02001195#if defined(POLARSSL_SHA256_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001196 { TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256",
1197 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1198 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1199 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1200 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001201#endif /* POLARSSL_SHA256_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001202
Paul Bakker9e36f042013-06-30 14:34:05 +02001203#if defined(POLARSSL_SHA512_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001204 { TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384",
1205 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1206 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1207 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1208 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001209#endif /* POLARSSL_SHA512_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001210#endif /* POLARSSL_GCM_C */
1211
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001212#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker9e36f042013-06-30 14:34:05 +02001213#if defined(POLARSSL_SHA256_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001214 { TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256",
1215 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001216 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker40afb4b2013-04-19 22:03:30 +02001217 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1218 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001219#endif /* POLARSSL_SHA256_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001220
Paul Bakker9e36f042013-06-30 14:34:05 +02001221#if defined(POLARSSL_SHA512_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001222 { TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384",
1223 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001224 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker40afb4b2013-04-19 22:03:30 +02001225 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1226 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001227#endif /* POLARSSL_SHA512_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001228
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001229#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001230 { TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA",
1231 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1232 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1233 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1234 0 },
1235
1236 { TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA",
1237 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1238 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1239 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1240 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001241#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001242#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001243#if defined(POLARSSL_CCM_C)
Manuel Pégourié-Gonnardac2ccf82014-06-24 15:48:01 +02001244 { TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM",
1245 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001246 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1247 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1248 0 },
Manuel Pégourié-Gonnardac2ccf82014-06-24 15:48:01 +02001249 { TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8",
1250 POLARSSL_CIPHER_AES_256_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001251 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1252 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1253 POLARSSL_CIPHERSUITE_SHORT_TAG },
Manuel Pégourié-Gonnardac2ccf82014-06-24 15:48:01 +02001254 { TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM",
1255 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001256 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1257 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1258 0 },
Manuel Pégourié-Gonnardac2ccf82014-06-24 15:48:01 +02001259 { TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8",
1260 POLARSSL_CIPHER_AES_128_CCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard6768da92014-05-14 12:26:51 +02001261 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1262 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1263 POLARSSL_CIPHERSUITE_SHORT_TAG },
1264#endif /* POLARSSL_CCM_C */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001265#endif /* POLARSSL_AES_C */
1266
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001267#if defined(POLARSSL_CAMELLIA_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001268#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001269#if defined(POLARSSL_SHA256_C)
1270 { TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1271 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001272 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001273 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1274 0 },
1275#endif /* POLARSSL_SHA256_C */
1276
1277#if defined(POLARSSL_SHA512_C)
1278 { TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1279 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001280 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001281 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1282 0 },
1283#endif /* POLARSSL_SHA512_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001284#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +02001285
1286#if defined(POLARSSL_GCM_C)
1287#if defined(POLARSSL_SHA256_C)
1288 { TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1289 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1290 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1291 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1292 0 },
1293#endif /* POLARSSL_SHA256_C */
1294
1295#if defined(POLARSSL_SHA512_C)
1296 { TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1297 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1298 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1299 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1300 0 },
1301#endif /* POLARSSL_SHA512_C */
1302#endif /* POLARSSL_GCM_C */
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001303#endif /* POLARSSL_CAMELLIA_C */
1304
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001305#if defined(POLARSSL_DES_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001306#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001307#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001308 { TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA",
1309 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1310 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1311 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1312 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001313#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001314#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001315#endif /* POLARSSL_DES_C */
1316
1317#if defined(POLARSSL_ARC4_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001318#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001319 { TLS_DHE_PSK_WITH_RC4_128_SHA, "TLS-DHE-PSK-WITH-RC4-128-SHA",
1320 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1321 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1322 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1323 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001324#endif /* POLARSSL_SHA1_C */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001325#endif /* POLARSSL_ARC4_C */
Paul Bakkere07f41d2013-04-19 09:08:57 +02001326#endif /* POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001327
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001328#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1329#if defined(POLARSSL_AES_C)
1330
1331#if defined(POLARSSL_CIPHER_MODE_CBC)
1332#if defined(POLARSSL_SHA256_C)
1333 { TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256",
1334 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +01001335 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001336 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1337 0 },
1338#endif /* POLARSSL_SHA256_C */
1339
1340#if defined(POLARSSL_SHA512_C)
1341 { TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384",
1342 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +01001343 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001344 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1345 0 },
1346#endif /* POLARSSL_SHA512_C */
1347
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001348#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001349 { TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA",
1350 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnard20b9af72013-11-26 14:31:44 +01001351 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001352 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1353 0 },
1354
1355 { TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA",
1356 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnard20b9af72013-11-26 14:31:44 +01001357 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001358 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1359 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001360#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001361#endif /* POLARSSL_CIPHER_MODE_CBC */
1362#endif /* POLARSSL_AES_C */
1363
1364#if defined(POLARSSL_CAMELLIA_C)
1365#if defined(POLARSSL_CIPHER_MODE_CBC)
1366#if defined(POLARSSL_SHA256_C)
1367 { TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1368 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +01001369 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001370 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1371 0 },
1372#endif /* POLARSSL_SHA256_C */
1373
1374#if defined(POLARSSL_SHA512_C)
1375 { TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1376 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +01001377 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001378 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1379 0 },
1380#endif /* POLARSSL_SHA512_C */
1381#endif /* POLARSSL_CIPHER_MODE_CBC */
1382#endif /* POLARSSL_CAMELLIA_C */
1383
1384#if defined(POLARSSL_DES_C)
1385#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001386#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001387 { TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-PSK-WITH-3DES-EDE-CBC-SHA",
1388 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnard20b9af72013-11-26 14:31:44 +01001389 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001390 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1391 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001392#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001393#endif /* POLARSSL_CIPHER_MODE_CBC */
1394#endif /* POLARSSL_DES_C */
1395
1396#if defined(POLARSSL_ARC4_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001397#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001398 { TLS_ECDHE_PSK_WITH_RC4_128_SHA, "TLS-ECDHE-PSK-WITH-RC4-128-SHA",
1399 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnard20b9af72013-11-26 14:31:44 +01001400 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001401 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1402 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001403#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001404#endif /* POLARSSL_ARC4_C */
1405#endif /* POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1406
Paul Bakkere07f41d2013-04-19 09:08:57 +02001407#if defined(POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001408#if defined(POLARSSL_AES_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001409#if defined(POLARSSL_GCM_C)
Paul Bakker9e36f042013-06-30 14:34:05 +02001410#if defined(POLARSSL_SHA256_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001411 { TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256",
1412 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK,
1413 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1414 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1415 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001416#endif /* POLARSSL_SHA256_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001417
Paul Bakker9e36f042013-06-30 14:34:05 +02001418#if defined(POLARSSL_SHA512_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001419 { TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384",
1420 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK,
1421 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1422 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1423 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001424#endif /* POLARSSL_SHA512_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001425#endif /* POLARSSL_GCM_C */
1426
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001427#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker9e36f042013-06-30 14:34:05 +02001428#if defined(POLARSSL_SHA256_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001429 { TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256",
1430 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001431 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker40afb4b2013-04-19 22:03:30 +02001432 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1433 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001434#endif /* POLARSSL_SHA256_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001435
Paul Bakker9e36f042013-06-30 14:34:05 +02001436#if defined(POLARSSL_SHA512_C)
Paul Bakker40afb4b2013-04-19 22:03:30 +02001437 { TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384",
1438 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001439 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker40afb4b2013-04-19 22:03:30 +02001440 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1441 0 },
Paul Bakker9e36f042013-06-30 14:34:05 +02001442#endif /* POLARSSL_SHA512_C */
Paul Bakker40afb4b2013-04-19 22:03:30 +02001443
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001444#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001445 { TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA",
1446 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnarda04fa4f2014-07-13 16:16:44 +02001447 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001448 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1449 0 },
1450
1451 { TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA",
1452 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnarda04fa4f2014-07-13 16:16:44 +02001453 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001454 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1455 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001456#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001457#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001458#endif /* POLARSSL_AES_C */
1459
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001460#if defined(POLARSSL_CAMELLIA_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001461#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001462#if defined(POLARSSL_SHA256_C)
1463 { TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1464 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001465 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001466 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1467 0 },
1468#endif /* POLARSSL_SHA256_C */
1469
1470#if defined(POLARSSL_SHA512_C)
1471 { TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1472 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001473 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001474 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1475 0 },
1476#endif /* POLARSSL_SHA512_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001477#endif /* POLARSSL_CIPHER_MODE_CBC */
Manuel Pégourié-Gonnard8d01eea2013-10-24 19:49:07 +02001478
1479#if defined(POLARSSL_GCM_C)
1480#if defined(POLARSSL_SHA256_C)
1481 { TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1482 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK,
1483 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1484 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1485 0 },
1486#endif /* POLARSSL_SHA256_C */
1487
1488#if defined(POLARSSL_SHA512_C)
1489 { TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1490 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK,
1491 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1492 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1493 0 },
1494#endif /* POLARSSL_SHA512_C */
1495#endif /* POLARSSL_GCM_C */
Paul Bakker0f2f0bf2013-07-26 15:03:31 +02001496#endif /* POLARSSL_CAMELLIA_C */
1497
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001498#if defined(POLARSSL_DES_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001499#if defined(POLARSSL_CIPHER_MODE_CBC)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001500#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001501 { TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-PSK-WITH-3DES-EDE-CBC-SHA",
1502 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnarda04fa4f2014-07-13 16:16:44 +02001503 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001504 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1505 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001506#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001507#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001508#endif /* POLARSSL_DES_C */
1509
1510#if defined(POLARSSL_ARC4_C)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001511#if defined(POLARSSL_SHA1_C)
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001512 { TLS_RSA_PSK_WITH_RC4_128_SHA, "TLS-RSA-PSK-WITH-RC4-128-SHA",
1513 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnarda04fa4f2014-07-13 16:16:44 +02001514 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001515 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1516 0 },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001517#endif /* POLARSSL_SHA1_C */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001518#endif /* POLARSSL_ARC4_C */
Paul Bakkere07f41d2013-04-19 09:08:57 +02001519#endif /* POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED */
Paul Bakkerd4a56ec2013-04-16 18:05:29 +02001520
Paul Bakker68884e32013-01-07 18:20:04 +01001521#if defined(POLARSSL_ENABLE_WEAK_CIPHERSUITES)
1522#if defined(POLARSSL_CIPHER_NULL_CIPHER)
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001523#if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001524#if defined(POLARSSL_MD5_C)
Paul Bakker68884e32013-01-07 18:20:04 +01001525 { TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5",
1526 POLARSSL_CIPHER_NULL, POLARSSL_MD_MD5, POLARSSL_KEY_EXCHANGE_RSA,
1527 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1528 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1529 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001530#endif
Paul Bakker68884e32013-01-07 18:20:04 +01001531
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001532#if defined(POLARSSL_SHA1_C)
Paul Bakker68884e32013-01-07 18:20:04 +01001533 { TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA",
1534 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA,
1535 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1536 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1537 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001538#endif
Paul Bakker68884e32013-01-07 18:20:04 +01001539
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001540#if defined(POLARSSL_SHA256_C)
Paul Bakker68884e32013-01-07 18:20:04 +01001541 { TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256",
1542 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001543 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakker68884e32013-01-07 18:20:04 +01001544 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1545 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001546#endif
Paul Bakkere07f41d2013-04-19 09:08:57 +02001547#endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */
Paul Bakker68884e32013-01-07 18:20:04 +01001548
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001549#if defined(POLARSSL_KEY_EXCHANGE_PSK_ENABLED)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001550#if defined(POLARSSL_SHA1_C)
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001551 { TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA",
1552 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK,
1553 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1554 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1555 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001556#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001557
1558#if defined(POLARSSL_SHA256_C)
1559 { TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256",
1560 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001561 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001562 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1563 POLARSSL_CIPHERSUITE_WEAK },
1564#endif
1565
1566#if defined(POLARSSL_SHA512_C)
1567 { TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384",
1568 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001569 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001570 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1571 POLARSSL_CIPHERSUITE_WEAK },
1572#endif
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001573#endif /* POLARSSL_KEY_EXCHANGE_PSK_ENABLED */
1574
1575#if defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001576#if defined(POLARSSL_SHA1_C)
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001577 { TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA",
1578 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK,
1579 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1580 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1581 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001582#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001583
1584#if defined(POLARSSL_SHA256_C)
1585 { TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256",
1586 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001587 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001588 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1589 POLARSSL_CIPHERSUITE_WEAK },
1590#endif
1591
1592#if defined(POLARSSL_SHA512_C)
1593 { TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384",
1594 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001595 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001596 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1597 POLARSSL_CIPHERSUITE_WEAK },
1598#endif
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001599#endif /* POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED */
1600
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001601#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001602#if defined(POLARSSL_SHA1_C)
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001603 { TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA",
1604 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnard20b9af72013-11-26 14:31:44 +01001605 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001606 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1607 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001608#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001609
1610#if defined(POLARSSL_SHA256_C)
1611 { TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256",
1612 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +01001613 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001614 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1615 POLARSSL_CIPHERSUITE_WEAK },
1616#endif
1617
1618#if defined(POLARSSL_SHA512_C)
1619 { TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384",
1620 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_PSK,
Manuel Pégourié-Gonnarda5bdfcd2013-11-26 13:27:45 +01001621 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001622 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1623 POLARSSL_CIPHERSUITE_WEAK },
1624#endif
1625#endif /* POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1626
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001627#if defined(POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001628#if defined(POLARSSL_SHA1_C)
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001629 { TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA",
1630 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnarda04fa4f2014-07-13 16:16:44 +02001631 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001632 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1633 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001634#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardef0eb1e2013-10-14 19:29:19 +02001635
1636#if defined(POLARSSL_SHA256_C)
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001637 { TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256",
Manuel Pégourié-Gonnardef0eb1e2013-10-14 19:29:19 +02001638 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001639 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnardef0eb1e2013-10-14 19:29:19 +02001640 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1641 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001642#endif
Manuel Pégourié-Gonnardef0eb1e2013-10-14 19:29:19 +02001643
1644#if defined(POLARSSL_SHA512_C)
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001645 { TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384",
Manuel Pégourié-Gonnardef0eb1e2013-10-14 19:29:19 +02001646 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK,
Manuel Pégourié-Gonnard8d4ad072014-07-13 14:43:28 +02001647 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1,
Manuel Pégourié-Gonnardef0eb1e2013-10-14 19:29:19 +02001648 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1649 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard98d9a2c2013-10-25 18:03:18 +02001650#endif
Paul Bakkera1bf92d2013-04-19 19:48:45 +02001651#endif /* POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED */
1652#endif /* POLARSSL_CIPHER_NULL_CIPHER */
1653
Paul Bakker68884e32013-01-07 18:20:04 +01001654#if defined(POLARSSL_DES_C)
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001655#if defined(POLARSSL_CIPHER_MODE_CBC)
Paul Bakkere07f41d2013-04-19 09:08:57 +02001656#if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001657#if defined(POLARSSL_SHA1_C)
Paul Bakker68884e32013-01-07 18:20:04 +01001658 { TLS_DHE_RSA_WITH_DES_CBC_SHA, "TLS-DHE-RSA-WITH-DES-CBC-SHA",
1659 POLARSSL_CIPHER_DES_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA,
1660 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1661 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1662 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001663#endif /* POLARSSL_SHA1_C */
Paul Bakkere07f41d2013-04-19 09:08:57 +02001664#endif /* POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED */
Paul Bakker68884e32013-01-07 18:20:04 +01001665
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001666#if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED)
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001667#if defined(POLARSSL_SHA1_C)
Paul Bakker68884e32013-01-07 18:20:04 +01001668 { TLS_RSA_WITH_DES_CBC_SHA, "TLS-RSA-WITH-DES-CBC-SHA",
1669 POLARSSL_CIPHER_DES_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA,
1670 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0,
1671 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3,
1672 POLARSSL_CIPHERSUITE_WEAK },
Manuel Pégourié-Gonnard057e0cf2013-10-14 14:19:31 +02001673#endif /* POLARSSL_SHA1_C */
Manuel Pégourié-Gonnardf7dc3782013-09-13 14:10:44 +02001674#endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */
1675#endif /* POLARSSL_CIPHER_MODE_CBC */
Paul Bakker68884e32013-01-07 18:20:04 +01001676#endif /* POLARSSL_DES_C */
Paul Bakker68884e32013-01-07 18:20:04 +01001677#endif /* POLARSSL_ENABLE_WEAK_CIPHERSUITES */
1678
1679 { 0, "", 0, 0, 0, 0, 0, 0, 0, 0 }
1680};
1681
Manuel Pégourié-Gonnarddfc7df02014-06-30 17:59:55 +02001682#if defined(SSL_CIPHERSUITES)
1683const int *ssl_list_ciphersuites( void )
1684{
1685 return( ciphersuite_preference );
1686}
1687#else
Manuel Pégourié-Gonnard791684c2014-06-30 17:38:22 +02001688#define MAX_CIPHERSUITES sizeof( ciphersuite_definitions ) / \
1689 sizeof( ciphersuite_definitions[0] )
1690static int supported_ciphersuites[MAX_CIPHERSUITES];
1691static int supported_init = 0;
1692
Paul Bakker68884e32013-01-07 18:20:04 +01001693const int *ssl_list_ciphersuites( void )
1694{
Paul Bakker41c83d32013-03-20 14:39:14 +01001695 /*
1696 * On initial call filter out all ciphersuites not supported by current
1697 * build based on presence in the ciphersuite_definitions.
1698 */
1699 if( supported_init == 0 )
1700 {
Manuel Pégourié-Gonnard791684c2014-06-30 17:38:22 +02001701 const int *p;
1702 int *q;
Paul Bakker41c83d32013-03-20 14:39:14 +01001703
Manuel Pégourié-Gonnard791684c2014-06-30 17:38:22 +02001704 for( p = ciphersuite_preference, q = supported_ciphersuites;
1705 *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
1706 p++ )
Paul Bakker41c83d32013-03-20 14:39:14 +01001707 {
Manuel Pégourié-Gonnard01edb102014-06-24 22:42:34 +02001708#if defined(POLARSSL_REMOVE_ARC4_CIPHERSUITES)
1709 const ssl_ciphersuite_t *cs_info;
Manuel Pégourié-Gonnard791684c2014-06-30 17:38:22 +02001710 if( ( cs_info = ssl_ciphersuite_from_id( *p ) ) != NULL &&
Manuel Pégourié-Gonnard01edb102014-06-24 22:42:34 +02001711 cs_info->cipher != POLARSSL_CIPHER_ARC4_128 )
1712#else
Manuel Pégourié-Gonnard791684c2014-06-30 17:38:22 +02001713 if( ssl_ciphersuite_from_id( *p ) != NULL )
Manuel Pégourié-Gonnard01edb102014-06-24 22:42:34 +02001714#endif
Manuel Pégourié-Gonnard791684c2014-06-30 17:38:22 +02001715 *(q++) = *p;
Paul Bakker41c83d32013-03-20 14:39:14 +01001716 }
Manuel Pégourié-Gonnardbc4b7f02013-09-07 15:04:26 +02001717 *q = 0;
Manuel Pégourié-Gonnard32ea60a2013-08-17 17:39:04 +02001718
Paul Bakker41c83d32013-03-20 14:39:14 +01001719 supported_init = 1;
1720 }
1721
Paul Bakkerd8bb8262014-06-17 14:06:49 +02001722 return( supported_ciphersuites );
Paul Bakker68884e32013-01-07 18:20:04 +01001723};
Manuel Pégourié-Gonnarddfc7df02014-06-30 17:59:55 +02001724#endif /* SSL_CIPHERSUITES */
Paul Bakker68884e32013-01-07 18:20:04 +01001725
Paul Bakkerb9e4e2c2014-05-01 14:18:25 +02001726const ssl_ciphersuite_t *ssl_ciphersuite_from_string(
1727 const char *ciphersuite_name )
Paul Bakker68884e32013-01-07 18:20:04 +01001728{
1729 const ssl_ciphersuite_t *cur = ciphersuite_definitions;
1730
1731 if( NULL == ciphersuite_name )
1732 return( NULL );
1733
1734 while( cur->id != 0 )
1735 {
1736 if( 0 == strcasecmp( cur->name, ciphersuite_name ) )
1737 return( cur );
1738
1739 cur++;
1740 }
1741
1742 return( NULL );
1743}
1744
1745const ssl_ciphersuite_t *ssl_ciphersuite_from_id( int ciphersuite )
1746{
1747 const ssl_ciphersuite_t *cur = ciphersuite_definitions;
1748
1749 while( cur->id != 0 )
1750 {
1751 if( cur->id == ciphersuite )
1752 return( cur );
1753
1754 cur++;
1755 }
1756
1757 return( NULL );
1758}
1759
1760const char *ssl_get_ciphersuite_name( const int ciphersuite_id )
1761{
1762 const ssl_ciphersuite_t *cur;
1763
1764 cur = ssl_ciphersuite_from_id( ciphersuite_id );
1765
1766 if( cur == NULL )
1767 return( "unknown" );
1768
1769 return( cur->name );
1770}
1771
1772int ssl_get_ciphersuite_id( const char *ciphersuite_name )
1773{
1774 const ssl_ciphersuite_t *cur;
1775
1776 cur = ssl_ciphersuite_from_string( ciphersuite_name );
1777
1778 if( cur == NULL )
1779 return( 0 );
1780
1781 return( cur->id );
1782}
1783
Manuel Pégourié-Gonnard1a483832013-09-20 12:29:15 +02001784#if defined(POLARSSL_PK_C)
Manuel Pégourié-Gonnard09edda82013-08-19 13:50:33 +02001785pk_type_t ssl_get_ciphersuite_sig_pk_alg( const ssl_ciphersuite_t *info )
1786{
1787 switch( info->key_exchange )
1788 {
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +02001789 case POLARSSL_KEY_EXCHANGE_RSA:
Manuel Pégourié-Gonnard09edda82013-08-19 13:50:33 +02001790 case POLARSSL_KEY_EXCHANGE_DHE_RSA:
1791 case POLARSSL_KEY_EXCHANGE_ECDHE_RSA:
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +02001792 case POLARSSL_KEY_EXCHANGE_RSA_PSK:
Manuel Pégourié-Gonnard09edda82013-08-19 13:50:33 +02001793 return( POLARSSL_PK_RSA );
1794
1795 case POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA:
1796 return( POLARSSL_PK_ECDSA );
1797
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +01001798 case POLARSSL_KEY_EXCHANGE_ECDH_RSA:
1799 case POLARSSL_KEY_EXCHANGE_ECDH_ECDSA:
1800 return( POLARSSL_PK_ECKEY );
1801
Manuel Pégourié-Gonnard09edda82013-08-19 13:50:33 +02001802 default:
1803 return( POLARSSL_PK_NONE );
1804 }
1805}
Paul Bakker9af723c2014-05-01 13:03:14 +02001806#endif /* POLARSSL_PK_C */
Manuel Pégourié-Gonnard09edda82013-08-19 13:50:33 +02001807
Manuel Pégourié-Gonnard280f95b2014-01-18 18:28:58 +01001808#if defined(POLARSSL_ECDH_C) || defined(POLARSSL_ECDSA_C)
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +02001809int ssl_ciphersuite_uses_ec( const ssl_ciphersuite_t *info )
1810{
1811 switch( info->key_exchange )
1812 {
1813 case POLARSSL_KEY_EXCHANGE_ECDHE_RSA:
1814 case POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA:
Manuel Pégourié-Gonnard225d6aa2013-10-11 19:07:56 +02001815 case POLARSSL_KEY_EXCHANGE_ECDHE_PSK:
Manuel Pégourié-Gonnard25781b22013-12-11 16:17:10 +01001816 case POLARSSL_KEY_EXCHANGE_ECDH_RSA:
1817 case POLARSSL_KEY_EXCHANGE_ECDH_ECDSA:
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +02001818 return( 1 );
1819
1820 default:
1821 return( 0 );
1822 }
1823}
Paul Bakker9af723c2014-05-01 13:03:14 +02001824#endif /* POLARSSL_ECDH_C || POLARSSL_ECDSA_C */
Manuel Pégourié-Gonnard51451f82013-09-17 12:06:25 +02001825
Manuel Pégourié-Gonnard280f95b2014-01-18 18:28:58 +01001826#if defined(POLARSSL_KEY_EXCHANGE__SOME__PSK_ENABLED)
Manuel Pégourié-Gonnard21ef42f2013-10-27 14:47:25 +01001827int ssl_ciphersuite_uses_psk( const ssl_ciphersuite_t *info )
1828{
1829 switch( info->key_exchange )
1830 {
1831 case POLARSSL_KEY_EXCHANGE_PSK:
1832 case POLARSSL_KEY_EXCHANGE_RSA_PSK:
1833 case POLARSSL_KEY_EXCHANGE_DHE_PSK:
1834 case POLARSSL_KEY_EXCHANGE_ECDHE_PSK:
1835 return( 1 );
1836
1837 default:
1838 return( 0 );
1839 }
1840}
Paul Bakker9af723c2014-05-01 13:03:14 +02001841#endif /* POLARSSL_KEY_EXCHANGE__SOME__PSK_ENABLED */
Manuel Pégourié-Gonnard21ef42f2013-10-27 14:47:25 +01001842
Paul Bakker9af723c2014-05-01 13:03:14 +02001843#endif /* POLARSSL_SSL_TLS_C */