Webserver+3d print

Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers tls_cipher_suites.h Source File

tls_cipher_suites.h

Go to the documentation of this file.
00001 /**
00002  * @file tls_cipher_suites.h
00003  * @brief TLS cipher suites
00004  *
00005  * @section License
00006  *
00007  * Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.
00008  *
00009  * This file is part of CycloneSSL Open.
00010  *
00011  * This program is free software; you can redistribute it and/or
00012  * modify it under the terms of the GNU General Public License
00013  * as published by the Free Software Foundation; either version 2
00014  * of the License, or (at your option) any later version.
00015  *
00016  * This program is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  * GNU General Public License for more details.
00020  *
00021  * You should have received a copy of the GNU General Public License
00022  * along with this program; if not, write to the Free Software Foundation,
00023  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00024  *
00025  * @author Oryx Embedded SARL (www.oryx-embedded.com)
00026  * @version 1.7.6
00027  **/
00028 
00029 #ifndef _TLS_CIPHER_SUITES_H
00030 #define _TLS_CIPHER_SUITES_H
00031 
00032 //Dependencies
00033 #include "crypto.h"
00034 #include "tls.h"
00035 
00036 //Macro for defining a cipher suite
00037 #define TLS_CIPHER_SUITE(identifier, keyExchMethod, cipherAlgo, cipherMode, hashAlgo, prfHashAlgo, \
00038    macKeyLen, encKeyLen, fixedIvLen, recordIvLen, authTagLen, verifyDataLen) \
00039    {identifier, #identifier, keyExchMethod, cipherAlgo, cipherMode, hashAlgo, prfHashAlgo, \
00040    macKeyLen, encKeyLen, fixedIvLen, recordIvLen, authTagLen, verifyDataLen}
00041 
00042 
00043 /**
00044  * @brief Cipher suite list
00045  **/
00046 
00047 typedef enum
00048 {
00049    TLS_NULL_WITH_NULL_NULL                       = 0x0000, //RFC 2246
00050 
00051    TLS_RSA_EXPORT_WITH_RC4_40_MD5                = 0x0003, //RFC 2246
00052    TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5            = 0x0006, //RFC 2246
00053    TLS_RSA_EXPORT_WITH_DES40_CBC_SHA             = 0x0008, //RFC 2246
00054    TLS_RSA_WITH_NULL_MD5                         = 0x0001, //RFC 2246
00055    TLS_RSA_WITH_NULL_SHA                         = 0x0002, //RFC 2246
00056    TLS_RSA_WITH_NULL_SHA256                      = 0x003B, //RFC 5246
00057    TLS_RSA_WITH_RC4_128_MD5                      = 0x0004, //RFC 2246
00058    TLS_RSA_WITH_RC4_128_SHA                      = 0x0005, //RFC 2246
00059    TLS_RSA_WITH_IDEA_CBC_SHA                     = 0x0007, //RFC 2246
00060    TLS_RSA_WITH_DES_CBC_SHA                      = 0x0009, //RFC 2246
00061    TLS_RSA_WITH_3DES_EDE_CBC_SHA                 = 0x000A, //RFC 2246
00062    TLS_RSA_WITH_AES_128_CBC_SHA                  = 0x002F, //RFC 3268
00063    TLS_RSA_WITH_AES_256_CBC_SHA                  = 0x0035, //RFC 3268
00064    TLS_RSA_WITH_AES_128_CBC_SHA256               = 0x003C, //RFC 5246
00065    TLS_RSA_WITH_AES_256_CBC_SHA256               = 0x003D, //RFC 5246
00066    TLS_RSA_WITH_AES_128_CCM                      = 0xC09C, //RFC 6655
00067    TLS_RSA_WITH_AES_256_CCM                      = 0xC09D, //RFC 6655
00068    TLS_RSA_WITH_AES_128_CCM_8                    = 0xC0A0, //RFC 6655
00069    TLS_RSA_WITH_AES_256_CCM_8                    = 0xC0A1, //RFC 6655
00070    TLS_RSA_WITH_AES_128_GCM_SHA256               = 0x009C, //RFC 5288
00071    TLS_RSA_WITH_AES_256_GCM_SHA384               = 0x009D, //RFC 5288
00072    TLS_RSA_WITH_CAMELLIA_128_CBC_SHA             = 0x0041, //RFC 5932
00073    TLS_RSA_WITH_CAMELLIA_256_CBC_SHA             = 0x0084, //RFC 5932
00074    TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256          = 0x00BA, //RFC 5932
00075    TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256          = 0x00C0, //RFC 5932
00076    TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256          = 0xC07A, //RFC 6367
00077    TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384          = 0xC07B, //RFC 6367
00078    TLS_RSA_WITH_SEED_CBC_SHA                     = 0x0096, //RFC 4162
00079    TLS_RSA_WITH_ARIA_128_CBC_SHA256              = 0xC03C, //RFC 6209
00080    TLS_RSA_WITH_ARIA_256_CBC_SHA384              = 0xC03D, //RFC 6209
00081    TLS_RSA_WITH_ARIA_128_GCM_SHA256              = 0xC050, //RFC 6209
00082    TLS_RSA_WITH_ARIA_256_GCM_SHA384              = 0xC051, //RFC 6209
00083 
00084    TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA          = 0x000E, //RFC 2246
00085    TLS_DH_RSA_WITH_DES_CBC_SHA                   = 0x000F, //RFC 2246
00086    TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA              = 0x0010, //RFC 2246
00087    TLS_DH_RSA_WITH_AES_128_CBC_SHA               = 0x0031, //RFC 3268
00088    TLS_DH_RSA_WITH_AES_256_CBC_SHA               = 0x0037, //RFC 3268
00089    TLS_DH_RSA_WITH_AES_128_CBC_SHA256            = 0x003F, //RFC 5246
00090    TLS_DH_RSA_WITH_AES_256_CBC_SHA256            = 0x0069, //RFC 5246
00091    TLS_DH_RSA_WITH_AES_128_GCM_SHA256            = 0x00A0, //RFC 5288
00092    TLS_DH_RSA_WITH_AES_256_GCM_SHA384            = 0x00A1, //RFC 5288
00093    TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA          = 0x0043, //RFC 5932
00094    TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA          = 0x0086, //RFC 5932
00095    TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256       = 0x00BC, //RFC 5932
00096    TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256       = 0x00C2, //RFC 5932
00097    TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256       = 0xC07E, //RFC 6367
00098    TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384       = 0xC07F, //RFC 6367
00099    TLS_DH_RSA_WITH_SEED_CBC_SHA                  = 0x0098, //RFC 4162
00100    TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256           = 0xC040, //RFC 6209
00101    TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384           = 0xC041, //RFC 6209
00102    TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256           = 0xC054, //RFC 6209
00103    TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384           = 0xC055, //RFC 6209
00104 
00105    TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA         = 0x0014, //RFC 2246
00106    TLS_DHE_RSA_WITH_DES_CBC_SHA                  = 0x0015, //RFC 2246
00107    TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA             = 0x0016, //RFC 2246
00108    TLS_DHE_RSA_WITH_AES_128_CBC_SHA              = 0x0033, //RFC 3268
00109    TLS_DHE_RSA_WITH_AES_256_CBC_SHA              = 0x0039, //RFC 3268
00110    TLS_DHE_RSA_WITH_AES_128_CBC_SHA256           = 0x0067, //RFC 5246
00111    TLS_DHE_RSA_WITH_AES_256_CBC_SHA256           = 0x006B, //RFC 5246
00112    TLS_DHE_RSA_WITH_AES_128_CCM                  = 0xC09E, //RFC 6655
00113    TLS_DHE_RSA_WITH_AES_256_CCM                  = 0xC09F, //RFC 6655
00114    TLS_DHE_RSA_WITH_AES_128_CCM_8                = 0xC0A2, //RFC 6655
00115    TLS_DHE_RSA_WITH_AES_256_CCM_8                = 0xC0A3, //RFC 6655
00116    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256           = 0x009E, //RFC 5288
00117    TLS_DHE_RSA_WITH_AES_256_GCM_SHA384           = 0x009F, //RFC 5288
00118    TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA         = 0x0045, //RFC 5932
00119    TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA         = 0x0088, //RFC 5932
00120    TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256      = 0x00BE, //RFC 5932
00121    TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256      = 0x00C4, //RFC 5932
00122    TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256      = 0xC07C, //RFC 6367
00123    TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384      = 0xC07D, //RFC 6367
00124    TLS_DHE_RSA_WITH_SEED_CBC_SHA                 = 0x009A, //RFC 4162
00125    TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256          = 0xC044, //RFC 6209
00126    TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384          = 0xC045, //RFC 6209
00127    TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256          = 0xC052, //RFC 6209
00128    TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384          = 0xC053, //RFC 6209
00129    TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256     = 0xCCAA, //RFC 7905
00130 
00131    TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA          = 0x000B, //RFC 2246
00132    TLS_DH_DSS_WITH_DES_CBC_SHA                   = 0x000C, //RFC 2246
00133    TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA              = 0x000D, //RFC 2246
00134    TLS_DH_DSS_WITH_AES_128_CBC_SHA               = 0x0030, //RFC 3268
00135    TLS_DH_DSS_WITH_AES_256_CBC_SHA               = 0x0036, //RFC 3268
00136    TLS_DH_DSS_WITH_AES_128_CBC_SHA256            = 0x003E, //RFC 5246
00137    TLS_DH_DSS_WITH_AES_256_CBC_SHA256            = 0x0068, //RFC 5246
00138    TLS_DH_DSS_WITH_AES_128_GCM_SHA256            = 0x00A4, //RFC 5288
00139    TLS_DH_DSS_WITH_AES_256_GCM_SHA384            = 0x00A5, //RFC 5288
00140    TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA          = 0x0042, //RFC 5932
00141    TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA          = 0x0085, //RFC 5932
00142    TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256       = 0x00BB, //RFC 5932
00143    TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256       = 0x00C1, //RFC 5932
00144    TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256       = 0xC082, //RFC 6367
00145    TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384       = 0xC083, //RFC 6367
00146    TLS_DH_DSS_WITH_SEED_CBC_SHA                  = 0x0097, //RFC 4162
00147    TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256           = 0xC03E, //RFC 6209
00148    TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384           = 0xC03F, //RFC 6209
00149    TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256           = 0xC058, //RFC 6209
00150    TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384           = 0xC059, //RFC 6209
00151 
00152    TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA         = 0x0011, //RFC 2246
00153    TLS_DHE_DSS_WITH_DES_CBC_SHA                  = 0x0012, //RFC 2246
00154    TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA             = 0x0013, //RFC 2246
00155    TLS_DHE_DSS_WITH_AES_128_CBC_SHA              = 0x0032, //RFC 3268
00156    TLS_DHE_DSS_WITH_AES_256_CBC_SHA              = 0x0038, //RFC 3268
00157    TLS_DHE_DSS_WITH_AES_128_CBC_SHA256           = 0x0040, //RFC 5246
00158    TLS_DHE_DSS_WITH_AES_256_CBC_SHA256           = 0x006A, //RFC 5246
00159    TLS_DHE_DSS_WITH_AES_128_GCM_SHA256           = 0x00A2, //RFC 5288
00160    TLS_DHE_DSS_WITH_AES_256_GCM_SHA384           = 0x00A3, //RFC 5288
00161    TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA         = 0x0044, //RFC 5932
00162    TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA         = 0x0087, //RFC 5932
00163    TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256      = 0x00BD, //RFC 5932
00164    TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256      = 0x00C3, //RFC 5932
00165    TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256      = 0xC080, //RFC 6367
00166    TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384      = 0xC081, //RFC 6367
00167    TLS_DHE_DSS_WITH_SEED_CBC_SHA                 = 0x0099, //RFC 4162
00168    TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256          = 0xC042, //RFC 6209
00169    TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384          = 0xC043, //RFC 6209
00170    TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256          = 0xC056, //RFC 6209
00171    TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384          = 0xC057, //RFC 6209
00172 
00173    TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5            = 0x0017, //RFC 2246
00174    TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA         = 0x0019, //RFC 2246
00175    TLS_DH_ANON_WITH_RC4_128_MD5                  = 0x0018, //RFC 2246
00176    TLS_DH_ANON_WITH_DES_CBC_SHA                  = 0x001A, //RFC 2246
00177    TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA             = 0x001B, //RFC 2246
00178    TLS_DH_ANON_WITH_AES_128_CBC_SHA              = 0x0034, //RFC 3268
00179    TLS_DH_ANON_WITH_AES_256_CBC_SHA              = 0x003A, //RFC 3268
00180    TLS_DH_ANON_WITH_AES_128_CBC_SHA256           = 0x006C, //RFC 5246
00181    TLS_DH_ANON_WITH_AES_256_CBC_SHA256           = 0x006D, //RFC 5246
00182    TLS_DH_ANON_WITH_AES_128_GCM_SHA256           = 0x00A6, //RFC 5288
00183    TLS_DH_ANON_WITH_AES_256_GCM_SHA384           = 0x00A7, //RFC 5288
00184    TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA         = 0x0046, //RFC 5932
00185    TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA         = 0x0089, //RFC 5932
00186    TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA256      = 0x00BF, //RFC 5932
00187    TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA256      = 0x00C5, //RFC 5932
00188    TLS_DH_ANON_WITH_CAMELLIA_128_GCM_SHA256      = 0xC084, //RFC 6367
00189    TLS_DH_ANON_WITH_CAMELLIA_256_GCM_SHA384      = 0xC085, //RFC 6367
00190    TLS_DH_ANON_WITH_SEED_CBC_SHA                 = 0x009B, //RFC 4162
00191    TLS_DH_ANON_WITH_ARIA_128_CBC_SHA256          = 0xC046, //RFC 6209
00192    TLS_DH_ANON_WITH_ARIA_256_CBC_SHA384          = 0xC047, //RFC 6209
00193    TLS_DH_ANON_WITH_ARIA_128_GCM_SHA256          = 0xC05A, //RFC 6209
00194    TLS_DH_ANON_WITH_ARIA_256_GCM_SHA384          = 0xC05B, //RFC 6209
00195 
00196    TLS_ECDH_RSA_WITH_NULL_SHA                    = 0xC00B, //RFC 4492
00197    TLS_ECDH_RSA_WITH_RC4_128_SHA                 = 0xC00C, //RFC 4492
00198    TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA            = 0xC00D, //RFC 4492
00199    TLS_ECDH_RSA_WITH_AES_128_CBC_SHA             = 0xC00E, //RFC 4492
00200    TLS_ECDH_RSA_WITH_AES_256_CBC_SHA             = 0xC00F, //RFC 4492
00201    TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256          = 0xC029, //RFC 5289
00202    TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384          = 0xC02A, //RFC 5289
00203    TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256          = 0xC031, //RFC 5289
00204    TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384          = 0xC032, //RFC 5289
00205    TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256     = 0xC078, //RFC 6367
00206    TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384     = 0xC079, //RFC 6367
00207    TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256     = 0xC08C, //RFC 6367
00208    TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384     = 0xC08D, //RFC 6367
00209    TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256         = 0xC04E, //RFC 6209
00210    TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384         = 0xC04F, //RFC 6209
00211    TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256         = 0xC062, //RFC 6209
00212    TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384         = 0xC063, //RFC 6209
00213 
00214    TLS_ECDHE_RSA_WITH_NULL_SHA                   = 0xC010, //RFC 4492
00215    TLS_ECDHE_RSA_WITH_RC4_128_SHA                = 0xC011, //RFC 4492
00216    TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA           = 0xC012, //RFC 4492
00217    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA            = 0xC013, //RFC 4492
00218    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA            = 0xC014, //RFC 4492
00219    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256         = 0xC027, //RFC 5289
00220    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384         = 0xC028, //RFC 5289
00221    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256         = 0xC02F, //RFC 5289
00222    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384         = 0xC030, //RFC 5289
00223    TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256    = 0xC076, //RFC 6367
00224    TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384    = 0xC077, //RFC 6367
00225    TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256    = 0xC08A, //RFC 6367
00226    TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384    = 0xC08B, //RFC 6367
00227    TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256        = 0xC04C, //RFC 6209
00228    TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384        = 0xC04D, //RFC 6209
00229    TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256        = 0xC060, //RFC 6209
00230    TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384        = 0xC061, //RFC 6209
00231    TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   = 0xCCA8, //RFC 7905
00232 
00233    TLS_ECDH_ECDSA_WITH_NULL_SHA                  = 0xC001, //RFC 4492
00234    TLS_ECDH_ECDSA_WITH_RC4_128_SHA               = 0xC002, //RFC 4492
00235    TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA          = 0xC003, //RFC 4492
00236    TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA           = 0xC004, //RFC 4492
00237    TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA           = 0xC005, //RFC 4492
00238    TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256        = 0xC025, //RFC 5289
00239    TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384        = 0xC026, //RFC 5289
00240    TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256        = 0xC02D, //RFC 5289
00241    TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384        = 0xC02E, //RFC 5289
00242    TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256   = 0xC074, //RFC 6367
00243    TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384   = 0xC075, //RFC 6367
00244    TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256   = 0xC088, //RFC 6367
00245    TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384   = 0xC089, //RFC 6367
00246    TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256       = 0xC04A, //RFC 6209
00247    TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384       = 0xC04B, //RFC 6209
00248    TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256       = 0xC05E, //RFC 6209
00249    TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384       = 0xC05F, //RFC 6209
00250 
00251    TLS_ECDHE_ECDSA_WITH_NULL_SHA                 = 0xC006, //RFC 4492
00252    TLS_ECDHE_ECDSA_WITH_RC4_128_SHA              = 0xC007, //RFC 4492
00253    TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA         = 0xC008, //RFC 4492
00254    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA          = 0xC009, //RFC 4492
00255    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA          = 0xC00A, //RFC 4492
00256    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256       = 0xC023, //RFC 5289
00257    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384       = 0xC024, //RFC 5289
00258    TLS_ECDHE_ECDSA_WITH_AES_128_CCM              = 0xC0AC, //RFC 7251
00259    TLS_ECDHE_ECDSA_WITH_AES_256_CCM              = 0xC0AD, //RFC 7251
00260    TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8            = 0xC0AE, //RFC 7251
00261    TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8            = 0xC0AF, //RFC 7251
00262    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256       = 0xC02B, //RFC 5289
00263    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384       = 0xC02C, //RFC 5289
00264    TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256  = 0xC072, //RFC 6367
00265    TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384  = 0xC073, //RFC 6367
00266    TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256  = 0xC086, //RFC 6367
00267    TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384  = 0xC087, //RFC 6367
00268    TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256      = 0xC048, //RFC 6209
00269    TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384      = 0xC049, //RFC 6209
00270    TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256      = 0xC05C, //RFC 6209
00271    TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384      = 0xC05D, //RFC 6209
00272    TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA9, //RFC 7905
00273 
00274    TLS_ECDH_ANON_WITH_NULL_SHA                   = 0xC015, //RFC 4492
00275    TLS_ECDH_ANON_WITH_RC4_128_SHA                = 0xC016, //RFC 4492
00276    TLS_ECDH_ANON_WITH_3DES_EDE_CBC_SHA           = 0xC017, //RFC 4492
00277    TLS_ECDH_ANON_WITH_AES_128_CBC_SHA            = 0xC018, //RFC 4492
00278    TLS_ECDH_ANON_WITH_AES_256_CBC_SHA            = 0xC019, //RFC 4492
00279 
00280    TLS_PSK_WITH_NULL_SHA                         = 0x002C, //RFC 4785
00281    TLS_PSK_WITH_NULL_SHA256                      = 0x00B0, //RFC 5487
00282    TLS_PSK_WITH_NULL_SHA384                      = 0x00B1, //RFC 5487
00283    TLS_PSK_WITH_RC4_128_SHA                      = 0x008A, //RFC 4279
00284    TLS_PSK_WITH_3DES_EDE_CBC_SHA                 = 0x008B, //RFC 4279
00285    TLS_PSK_WITH_AES_128_CBC_SHA                  = 0x008C, //RFC 4279
00286    TLS_PSK_WITH_AES_256_CBC_SHA                  = 0x008D, //RFC 4279
00287    TLS_PSK_WITH_AES_128_CBC_SHA256               = 0x00AE, //RFC 5487
00288    TLS_PSK_WITH_AES_256_CBC_SHA384               = 0x00AF, //RFC 5487
00289    TLS_PSK_WITH_AES_128_CCM                      = 0xC0A4, //RFC 6655
00290    TLS_PSK_WITH_AES_256_CCM                      = 0xC0A5, //RFC 6655
00291    TLS_PSK_WITH_AES_128_CCM_8                    = 0xC0A8, //RFC 6655
00292    TLS_PSK_WITH_AES_256_CCM_8                    = 0xC0A9, //RFC 6655
00293    TLS_PSK_WITH_AES_128_GCM_SHA256               = 0x00A8, //RFC 5487
00294    TLS_PSK_WITH_AES_256_GCM_SHA384               = 0x00A9, //RFC 5487
00295    TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256          = 0xC094, //RFC 6367
00296    TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384          = 0xC095, //RFC 6367
00297    TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256          = 0xC08E, //RFC 6367
00298    TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384          = 0xC08F, //RFC 6367
00299    TLS_PSK_WITH_ARIA_128_CBC_SHA256              = 0xC064, //RFC 6209
00300    TLS_PSK_WITH_ARIA_256_CBC_SHA384              = 0xC065, //RFC 6209
00301    TLS_PSK_WITH_ARIA_128_GCM_SHA256              = 0xC06A, //RFC 6209
00302    TLS_PSK_WITH_ARIA_256_GCM_SHA384              = 0xC06B, //RFC 6209
00303    TLS_PSK_WITH_CHACHA20_POLY1305_SHA256         = 0xCCAB, //RFC 7905
00304 
00305    TLS_RSA_PSK_WITH_NULL_SHA                     = 0x002E, //RFC 4785
00306    TLS_RSA_PSK_WITH_NULL_SHA256                  = 0x00B8, //RFC 5487
00307    TLS_RSA_PSK_WITH_NULL_SHA384                  = 0x00B9, //RFC 5487
00308    TLS_RSA_PSK_WITH_RC4_128_SHA                  = 0x0092, //RFC 4279
00309    TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA             = 0x0093, //RFC 4279
00310    TLS_RSA_PSK_WITH_AES_128_CBC_SHA              = 0x0094, //RFC 4279
00311    TLS_RSA_PSK_WITH_AES_256_CBC_SHA              = 0x0095, //RFC 4279
00312    TLS_RSA_PSK_WITH_AES_128_CBC_SHA256           = 0x00B6, //RFC 5487
00313    TLS_RSA_PSK_WITH_AES_256_CBC_SHA384           = 0x00B7, //RFC 5487
00314    TLS_RSA_PSK_WITH_AES_128_GCM_SHA256           = 0x00AC, //RFC 5487
00315    TLS_RSA_PSK_WITH_AES_256_GCM_SHA384           = 0x00AD, //RFC 5487
00316    TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256      = 0xC098, //RFC 6367
00317    TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384      = 0xC099, //RFC 6367
00318    TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256      = 0xC092, //RFC 6367
00319    TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384      = 0xC093, //RFC 6367
00320    TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256          = 0xC068, //RFC 6209
00321    TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384          = 0xC069, //RFC 6209
00322    TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256          = 0xC06E, //RFC 6209
00323    TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384          = 0xC06F, //RFC 6209
00324    TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256     = 0xCCAE, //RFC 7905
00325 
00326    TLS_DHE_PSK_WITH_NULL_SHA                     = 0x002D, //RFC 4785
00327    TLS_DHE_PSK_WITH_NULL_SHA256                  = 0x00B4, //RFC 5487
00328    TLS_DHE_PSK_WITH_NULL_SHA384                  = 0x00B5, //RFC 5487
00329    TLS_DHE_PSK_WITH_RC4_128_SHA                  = 0x008E, //RFC 4279
00330    TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA             = 0x008F, //RFC 4279
00331    TLS_DHE_PSK_WITH_AES_128_CBC_SHA              = 0x0090, //RFC 4279
00332    TLS_DHE_PSK_WITH_AES_256_CBC_SHA              = 0x0091, //RFC 4279
00333    TLS_DHE_PSK_WITH_AES_128_CBC_SHA256           = 0x00B2, //RFC 5487
00334    TLS_DHE_PSK_WITH_AES_256_CBC_SHA384           = 0x00B3, //RFC 5487
00335    TLS_DHE_PSK_WITH_AES_128_CCM                  = 0xC0A6, //RFC 6655
00336    TLS_DHE_PSK_WITH_AES_256_CCM                  = 0xC0A7, //RFC 6655
00337    TLS_DHE_PSK_WITH_AES_128_CCM_8                = 0xC0AA, //RFC 6655
00338    TLS_DHE_PSK_WITH_AES_256_CCM_8                = 0xC0AB, //RFC 6655
00339    TLS_DHE_PSK_WITH_AES_128_GCM_SHA256           = 0x00AA, //RFC 5487
00340    TLS_DHE_PSK_WITH_AES_256_GCM_SHA384           = 0x00AB, //RFC 5487
00341    TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256      = 0xC096, //RFC 6367
00342    TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384      = 0xC097, //RFC 6367
00343    TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256      = 0xC090, //RFC 6367
00344    TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384      = 0xC091, //RFC 6367
00345    TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256          = 0xC066, //RFC 6209
00346    TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384          = 0xC067, //RFC 6209
00347    TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256          = 0xC06C, //RFC 6209
00348    TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384          = 0xC06D, //RFC 6209
00349    TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256     = 0xCCAD, //RFC 7905
00350 
00351    TLS_ECDHE_PSK_WITH_NULL_SHA                   = 0xC039, //RFC 5489
00352    TLS_ECDHE_PSK_WITH_NULL_SHA256                = 0xC03A, //RFC 5489
00353    TLS_ECDHE_PSK_WITH_NULL_SHA384                = 0xC03B, //RFC 5489
00354    TLS_ECDHE_PSK_WITH_RC4_128_SHA                = 0xC033, //RFC 5489
00355    TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA           = 0xC034, //RFC 5489
00356    TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA            = 0xC035, //RFC 5489
00357    TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA            = 0xC036, //RFC 5489
00358    TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256         = 0xC037, //RFC 5489
00359    TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384         = 0xC038, //RFC 5489
00360    TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256         = 0xD005, //RFC draft
00361    TLS_ECDHE_PSK_WITH_AES_256_CCM_SHA384         = 0xD006, //RFC draft
00362    TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256       = 0xD003, //RFC draft
00363    TLS_ECDHE_PSK_WITH_AES_256_CCM_8_SHA256       = 0xD004, //RFC draft
00364    TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256         = 0xD001, //RFC draft
00365    TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384         = 0xD002, //RFC draft
00366    TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256    = 0xC09A, //RFC 6367
00367    TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384    = 0xC09B, //RFC 6367
00368    TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256        = 0xC070, //RFC 6209
00369    TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384        = 0xC071, //RFC 6209
00370    TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256   = 0xCCAC, //RFC 7905
00371 
00372    TLS_KRB5_EXPORT_WITH_RC4_40_MD5               = 0x002B, //RFC 2712
00373    TLS_KRB5_EXPORT_WITH_RC4_40_SHA               = 0x0028, //RFC 2712
00374    TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5           = 0x002A, //RFC 2712
00375    TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA           = 0x0027, //RFC 2712
00376    TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5           = 0x0029, //RFC 2712
00377    TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA           = 0x0026, //RFC 2712
00378    TLS_KRB5_WITH_RC4_128_MD5                     = 0x0024, //RFC 2712
00379    TLS_KRB5_WITH_RC4_128_SHA                     = 0x0020, //RFC 2712
00380    TLS_KRB5_WITH_IDEA_CBC_MD5                    = 0x0025, //RFC 2712
00381    TLS_KRB5_WITH_IDEA_CBC_SHA                    = 0x0021, //RFC 2712
00382    TLS_KRB5_WITH_DES_CBC_MD5                     = 0x0022, //RFC 2712
00383    TLS_KRB5_WITH_DES_CBC_SHA                     = 0x001E, //RFC 2712
00384    TLS_KRB5_WITH_3DES_EDE_CBC_MD5                = 0x0023, //RFC 2712
00385    TLS_KRB5_WITH_3DES_EDE_CBC_SHA                = 0x001F, //RFC 2712
00386 
00387    TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA             = 0xC01A, //RFC 5054
00388    TLS_SRP_SHA_WITH_AES_128_CBC_SHA              = 0xC01D, //RFC 5054
00389    TLS_SRP_SHA_WITH_AES_256_CBC_SHA              = 0xC020, //RFC 5054
00390 
00391    TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA         = 0xC01B, //RFC 5054
00392    TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA          = 0xC01E, //RFC 5054
00393    TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA          = 0xC021, //RFC 5054
00394 
00395    TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA         = 0xC01C, //RFC 5054
00396    TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA          = 0xC01F, //RFC 5054
00397    TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA          = 0xC022, //RFC 5054
00398 
00399    TLS_EMPTY_RENEGOTIATION_INFO_SCSV             = 0x00FF  //RFC 5746
00400 } TlsCipherSuiteList;
00401 
00402 
00403 //List of supported cipher suites
00404 extern const TlsCipherSuiteInfo tlsSupportedCipherSuites[];
00405 
00406 //TLS related functions
00407 uint_t tlsGetNumSupportedCipherSuites(void);
00408 const char_t *tlsGetCipherSuiteName(uint16_t identifier);
00409 bool_t tlsIsCipherSuiteSupported(uint16_t identifier);
00410 bool_t tlsIsEccCipherSuite(uint16_t identifier);
00411 
00412 #endif
00413