1 /* 2 * This file is part of the openHiTLS project. 3 * 4 * openHiTLS is licensed under the Mulan PSL v2. 5 * You can use this software according to the terms and conditions of the Mulan PSL v2. 6 * You may obtain a copy of Mulan PSL v2 at: 7 * 8 * http://license.coscl.org.cn/MulanPSL2 9 * 10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 13 * See the Mulan PSL v2 for more details. 14 */ 15 /* Derivation of configuration features. 16 * The derivation type (rule) and sequence are as follows: 17 * 1. Parent features derive child features. 18 * 2. Derive the features of dependencies. 19 * For example, if feature a depends on features b and c, you need to derive features b and c. 20 * 3. Child features derive parent features. 21 * The high-level interfaces of the crypto module is controlled by the parent feature macro, 22 * if there is no parent feature, such interfaces will be unavailable. 23 */ 24 25 #ifndef HITLS_CONFIG_LAYER_TLS_H 26 #define HITLS_CONFIG_LAYER_TLS_H 27 28 // version 29 #ifdef HITLS_TLS_PROTO_VERSION 30 #ifndef HITLS_TLS_PROTO_TLS12 31 #define HITLS_TLS_PROTO_TLS12 32 #endif 33 #ifndef HITLS_TLS_PROTO_TLS13 34 #define HITLS_TLS_PROTO_TLS13 35 #endif 36 #ifndef HITLS_TLS_PROTO_TLCP11 37 #define HITLS_TLS_PROTO_TLCP11 38 #endif 39 #ifndef HITLS_TLS_PROTO_DTLCP11 40 #define HITLS_TLS_PROTO_DTLCP11 41 #endif 42 #ifndef HITLS_TLS_PROTO_DTLS12 43 #define HITLS_TLS_PROTO_DTLS12 44 #endif 45 #endif 46 47 #if defined(HITLS_TLS_PROTO_DTLCP11) 48 #ifndef HITLS_TLS_PROTO_DTLS12 49 #define HITLS_TLS_PROTO_DTLS12 50 #endif 51 #ifndef HITLS_TLS_PROTO_TLCP11 52 #define HITLS_TLS_PROTO_TLCP11 53 #endif 54 #endif 55 56 #if defined(HITLS_TLS_PROTO_TLS12) || defined(HITLS_TLS_PROTO_TLS13) || defined(HITLS_TLS_PROTO_TLCP11) 57 #ifndef HITLS_TLS_PROTO_TLS 58 #define HITLS_TLS_PROTO_TLS 59 #endif 60 #endif 61 62 #if defined(HITLS_TLS_PROTO_TLS12) || defined(HITLS_TLS_PROTO_TLCP11) 63 #ifndef HITLS_TLS_PROTO_TLS_BASIC 64 #define HITLS_TLS_PROTO_TLS_BASIC 65 #endif 66 #endif 67 68 #if defined(HITLS_TLS_PROTO_DTLS12) 69 #ifndef HITLS_TLS_PROTO_DTLS 70 #define HITLS_TLS_PROTO_DTLS 71 #endif 72 #endif 73 74 #if defined(HITLS_TLS_PROTO_TLS12) && defined(HITLS_TLS_PROTO_TLS13) 75 #ifndef HITLS_TLS_PROTO_ALL 76 #define HITLS_TLS_PROTO_ALL 77 #endif 78 #endif 79 80 // host 81 #ifdef HITLS_TLS_HOST 82 #ifndef HITLS_TLS_HOST_SERVER 83 #define HITLS_TLS_HOST_SERVER 84 #endif 85 #ifndef HITLS_TLS_HOST_CLIENT 86 #define HITLS_TLS_HOST_CLIENT 87 #endif 88 #endif 89 90 #if defined(HITLS_TLS_HOST_SERVER) || defined(HITLS_TLS_HOST_CLIENT) 91 #ifndef HITLS_TLS_HOST 92 #define HITLS_TLS_HOST 93 #endif 94 #endif 95 96 // callback 97 #ifdef HITLS_TLS_CALLBACK 98 #ifndef HITLS_TLS_FEATURE_PROVIDER 99 #define HITLS_TLS_FEATURE_PROVIDER 100 #endif 101 #ifndef HITLS_TLS_CALLBACK_SAL 102 #define HITLS_TLS_CALLBACK_SAL 103 #endif 104 #ifndef HITLS_TLS_CALLBACK_CERT 105 #define HITLS_TLS_CALLBACK_CERT 106 #endif 107 #ifndef HITLS_TLS_CALLBACK_CRYPT 108 #define HITLS_TLS_CALLBACK_CRYPT 109 #endif 110 #endif 111 112 #if defined(HITLS_TLS_FEATURE_PROVIDER) 113 #ifdef HITLS_TLS_CALLBACK_SAL 114 #undef HITLS_TLS_CALLBACK_SAL 115 #endif 116 #ifdef HITLS_TLS_CALLBACK_CERT 117 #undef HITLS_TLS_CALLBACK_CERT 118 #endif 119 #ifdef HITLS_TLS_CALLBACK_CRYPT 120 #undef HITLS_TLS_CALLBACK_CRYPT 121 #endif 122 #endif 123 124 #if defined(HITLS_TLS_CALLBACK_CERT) || defined(HITLS_TLS_CALLBACK_CRYPT) 125 #ifndef HITLS_TLS_CALLBACK_SAL 126 #define HITLS_TLS_CALLBACK_SAL 127 #endif 128 #endif 129 130 #ifdef HITLS_TLS_FEATURE_PROVIDER 131 #ifndef HITLS_BSL_HASH 132 #define HITLS_BSL_HASH 133 #endif 134 #endif 135 136 #if !defined(HITLS_TLS_FEATURE_PROVIDER) && !defined(HITLS_TLS_CALLBACK_SAL) 137 #define HITLS_TLS_FEATURE_PROVIDER 138 #endif 139 140 // feature 141 #ifdef HITLS_TLS_FEATURE 142 #ifndef HITLS_TLS_FEATURE_RENEGOTIATION 143 #define HITLS_TLS_FEATURE_RENEGOTIATION 144 #endif 145 #ifndef HITLS_TLS_FEATURE_ALPN 146 #define HITLS_TLS_FEATURE_ALPN 147 #endif 148 #ifndef HITLS_TLS_FEATURE_SNI 149 #define HITLS_TLS_FEATURE_SNI 150 #endif 151 #ifndef HITLS_TLS_FEATURE_PHA 152 #define HITLS_TLS_FEATURE_PHA 153 #endif 154 #ifndef HITLS_TLS_FEATURE_PSK 155 #define HITLS_TLS_FEATURE_PSK 156 #endif 157 #ifndef HITLS_TLS_FEATURE_SECURITY 158 #define HITLS_TLS_FEATURE_SECURITY 159 #endif 160 #ifndef HITLS_TLS_FEATURE_INDICATOR 161 #define HITLS_TLS_FEATURE_INDICATOR 162 #endif 163 #ifndef HITLS_TLS_FEATURE_SESSION 164 #define HITLS_TLS_FEATURE_SESSION 165 #endif 166 #ifndef HITLS_TLS_FEATURE_KEY_UPDATE 167 #define HITLS_TLS_FEATURE_KEY_UPDATE 168 #endif 169 #ifndef HITLS_TLS_FEATURE_FLIGHT 170 #define HITLS_TLS_FEATURE_FLIGHT 171 #endif 172 #ifndef HITLS_TLS_FEATURE_CERT_MODE 173 #define HITLS_TLS_FEATURE_CERT_MODE 174 #endif 175 #ifndef HITLS_TLS_FEATURE_MODE 176 #define HITLS_TLS_FEATURE_MODE 177 #endif 178 #ifndef HITLS_TLS_FEATURE_KEM 179 #define HITLS_TLS_FEATURE_KEM 180 #endif 181 #ifndef HITLS_TLS_FEATURE_CUSTOM_EXTENSION 182 #define HITLS_TLS_FEATURE_CUSTOM_EXTENSION 183 #endif 184 #endif /* HITLS_TLS_FEATURE */ 185 186 #ifdef HITLS_TLS_FEATURE_SESSION 187 #ifndef HITLS_TLS_FEATURE_SESSION_TICKET 188 #define HITLS_TLS_FEATURE_SESSION_TICKET 189 #endif 190 #ifndef HITLS_TLS_FEATURE_SESSION_ID 191 #define HITLS_TLS_FEATURE_SESSION_ID 192 #endif 193 #endif 194 195 #ifdef HITLS_TLS_FEATURE_MODE 196 #ifndef HITLS_TLS_FEATURE_MODE_FALL_BACK_SCSV 197 #define HITLS_TLS_FEATURE_MODE_FALL_BACK_SCSV 198 #endif 199 #endif 200 201 #if defined(HITLS_TLS_FEATURE_SESSION_TICKET) || defined(HITLS_TLS_FEATURE_SESSION_ID) 202 #ifndef HITLS_TLS_FEATURE_SESSION 203 #define HITLS_TLS_FEATURE_SESSION 204 #endif 205 #endif 206 207 #ifdef HITLS_TLS_FEATURE_SECURITY 208 #ifndef HITLS_TLS_CONFIG_CIPHER_SUITE 209 #define HITLS_TLS_CONFIG_CIPHER_SUITE 210 #endif 211 #endif 212 213 // proto 214 #ifdef HITLS_TLS_PROTO 215 #ifndef HITLS_BSL_TLV 216 #define HITLS_BSL_TLV 217 #endif 218 #ifndef HITLS_BSL_SAL 219 #define HITLS_BSL_SAL 220 #endif 221 #ifndef HITLS_CRYPTO_EAL 222 #define HITLS_CRYPTO_EAL 223 #endif 224 #endif 225 226 // suite_cipher 227 #ifdef HITLS_TLS_SUITE_CIPHER 228 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 229 #define HITLS_TLS_SUITE_CIPHER_AEAD 230 #endif 231 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 232 #define HITLS_TLS_SUITE_CIPHER_CBC 233 #endif 234 #endif 235 236 // KX 237 #ifdef HITLS_TLS_SUITE_KX 238 #ifndef HITLS_TLS_SUITE_KX_ECDHE 239 #define HITLS_TLS_SUITE_KX_ECDHE 240 #endif 241 #ifndef HITLS_TLS_SUITE_KX_DHE 242 #define HITLS_TLS_SUITE_KX_DHE 243 #endif 244 #ifndef HITLS_TLS_SUITE_KX_ECDH 245 #define HITLS_TLS_SUITE_KX_ECDH 246 #endif 247 #ifndef HITLS_TLS_SUITE_KX_DH 248 #define HITLS_TLS_SUITE_KX_DH 249 #endif 250 #ifndef HITLS_TLS_SUITE_KX_RSA 251 #define HITLS_TLS_SUITE_KX_RSA 252 #endif 253 #endif 254 255 // AUTH 256 #ifdef HITLS_TLS_SUITE_AUTH 257 #ifndef HITLS_TLS_SUITE_AUTH_RSA 258 #define HITLS_TLS_SUITE_AUTH_RSA 259 #endif 260 #ifndef HITLS_TLS_SUITE_AUTH_ECDSA 261 #define HITLS_TLS_SUITE_AUTH_ECDSA 262 #endif 263 #ifndef HITLS_TLS_SUITE_AUTH_DSS 264 #define HITLS_TLS_SUITE_AUTH_DSS 265 #endif 266 #ifndef HITLS_TLS_SUITE_AUTH_PSK 267 #define HITLS_TLS_SUITE_AUTH_PSK 268 #endif 269 #ifndef HITLS_TLS_SUITE_AUTH_SM2 270 #define HITLS_TLS_SUITE_AUTH_SM2 271 #endif 272 #endif 273 274 // MAINTAIN 275 #ifdef HITLS_TLS_MAINTAIN 276 #ifndef HITLS_TLS_MAINTAIN_KEYLOG 277 #define HITLS_TLS_MAINTAIN_KEYLOG 278 #endif 279 #endif 280 281 #ifdef HITLS_TLS_CONFIG 282 #ifndef HITLS_TLS_CONFIG_MANUAL_DH 283 #define HITLS_TLS_CONFIG_MANUAL_DH 284 #endif 285 #ifndef HITLS_TLS_CONFIG_CERT 286 #define HITLS_TLS_CONFIG_CERT 287 #endif 288 #ifndef HITLS_TLS_CONFIG_KEY_USAGE 289 #define HITLS_TLS_CONFIG_KEY_USAGE 290 #endif 291 #ifndef HITLS_TLS_CONFIG_INFO 292 #define HITLS_TLS_CONFIG_INFO 293 #endif 294 #ifndef HITLS_TLS_CONFIG_STATE 295 #define HITLS_TLS_CONFIG_STATE 296 #endif 297 #ifndef HITLS_TLS_CONFIG_RECORD_PADDING 298 #define HITLS_TLS_CONFIG_RECORD_PADDING 299 #endif 300 #ifndef HITLS_TLS_CONFIG_USER_DATA 301 #define HITLS_TLS_CONFIG_USER_DATA 302 #endif 303 #ifndef HITLS_TLS_CONFIG_CIPHER_SUITE 304 #define HITLS_TLS_CONFIG_CIPHER_SUITE 305 #endif 306 #endif 307 308 #ifdef HITLS_TLS_CONNECTION 309 #ifndef HITLS_TLS_CONNECTION_INFO_NEGOTIATION 310 #define HITLS_TLS_CONNECTION_INFO_NEGOTIATION 311 #endif 312 #endif 313 314 #ifdef HITLS_TLS_CONNECTION_INFO_NEGOTIATION 315 #ifndef HITLS_TLS_CONNECTION 316 #define HITLS_TLS_CONNECTION 317 #endif 318 #endif 319 320 #ifdef HITLS_TLS_CONFIG_CERT 321 #ifndef HITLS_TLS_CONFIG_CERT_LOAD_FILE 322 #define HITLS_TLS_CONFIG_CERT_LOAD_FILE 323 #endif 324 #ifndef HITLS_TLS_CONFIG_CERT_CALLBACK 325 #define HITLS_TLS_CONFIG_CERT_CALLBACK 326 #endif 327 #endif 328 329 #if defined(HITLS_TLS_PROTO_TLS13) 330 #ifndef HITLS_TLS_EXTENSION_CERT_AUTH 331 #define HITLS_TLS_EXTENSION_CERT_AUTH 332 #endif 333 #endif 334 335 #if defined(HITLS_TLS_PROTO_DTLS12) || defined(HITLS_TLS_PROTO_TLS13) 336 #ifndef HITLS_TLS_EXTENSION_COOKIE 337 #define HITLS_TLS_EXTENSION_COOKIE 338 #endif 339 #endif 340 341 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_ECDHE) && defined(HITLS_TLS_SUITE_AUTH_RSA) 342 #if !defined(HITLS_TLS_SUITE_AES_128_GCM_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 343 #define HITLS_TLS_SUITE_AES_128_GCM_SHA256 344 #endif 345 #if !defined(HITLS_TLS_SUITE_AES_256_GCM_SHA384) && defined(HITLS_TLS_PROTO_TLS13) 346 #define HITLS_TLS_SUITE_AES_256_GCM_SHA384 347 #endif 348 #if !defined(HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 349 #define HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256 350 #endif 351 #if !defined(HITLS_TLS_SUITE_AES_128_CCM_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 352 #define HITLS_TLS_SUITE_AES_128_CCM_SHA256 353 #endif 354 #if !defined(HITLS_TLS_SUITE_AES_128_CCM_8_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 355 #define HITLS_TLS_SUITE_AES_128_CCM_8_SHA256 356 #endif 357 #ifndef HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256 358 #define HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256 359 #endif 360 #ifndef HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384 361 #define HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384 362 #endif 363 #ifndef HITLS_TLS_SUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 364 #define HITLS_TLS_SUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 365 #endif 366 #endif 367 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_ECDHE) && defined(HITLS_TLS_SUITE_AUTH_ECDSA) 368 #if !defined(HITLS_TLS_SUITE_AES_128_GCM_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 369 #define HITLS_TLS_SUITE_AES_128_GCM_SHA256 370 #endif 371 #if !defined(HITLS_TLS_SUITE_AES_256_GCM_SHA384) && defined(HITLS_TLS_PROTO_TLS13) 372 #define HITLS_TLS_SUITE_AES_256_GCM_SHA384 373 #endif 374 #if !defined(HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 375 #define HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256 376 #endif 377 #if !defined(HITLS_TLS_SUITE_AES_128_CCM_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 378 #define HITLS_TLS_SUITE_AES_128_CCM_SHA256 379 #endif 380 #if !defined(HITLS_TLS_SUITE_AES_128_CCM_8_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 381 #define HITLS_TLS_SUITE_AES_128_CCM_8_SHA256 382 #endif 383 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 384 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 385 #endif 386 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 387 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 388 #endif 389 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 390 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 391 #endif 392 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CCM 393 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CCM 394 #endif 395 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CCM 396 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CCM 397 #endif 398 #endif 399 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_ECDHE) && defined(HITLS_TLS_SUITE_AUTH_PSK) 400 #if !defined(HITLS_TLS_SUITE_AES_128_GCM_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 401 #define HITLS_TLS_SUITE_AES_128_GCM_SHA256 402 #endif 403 #if !defined(HITLS_TLS_SUITE_AES_256_GCM_SHA384) && defined(HITLS_TLS_PROTO_TLS13) 404 #define HITLS_TLS_SUITE_AES_256_GCM_SHA384 405 #endif 406 #if !defined(HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 407 #define HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256 408 #endif 409 #if !defined(HITLS_TLS_SUITE_AES_128_CCM_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 410 #define HITLS_TLS_SUITE_AES_128_CCM_SHA256 411 #endif 412 #if !defined(HITLS_TLS_SUITE_AES_128_CCM_8_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 413 #define HITLS_TLS_SUITE_AES_128_CCM_8_SHA256 414 #endif 415 #ifndef HITLS_TLS_SUITE_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 416 #define HITLS_TLS_SUITE_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 417 #endif 418 #ifndef HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CCM_SHA256 419 #define HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CCM_SHA256 420 #endif 421 #ifndef HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_GCM_SHA256 422 #define HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_GCM_SHA256 423 #endif 424 #ifndef HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_GCM_SHA384 425 #define HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_GCM_SHA384 426 #endif 427 #endif 428 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_DHE) && defined(HITLS_TLS_SUITE_AUTH_RSA) 429 430 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_GCM_SHA256 431 #define HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_GCM_SHA256 432 #endif 433 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_GCM_SHA384 434 #define HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_GCM_SHA384 435 #endif 436 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 437 #define HITLS_TLS_SUITE_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 438 #endif 439 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CCM 440 #define HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CCM 441 #endif 442 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CCM 443 #define HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CCM 444 #endif 445 #endif 446 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_DHE) && defined(HITLS_TLS_SUITE_AUTH_DSS) 447 #ifndef HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_GCM_SHA256 448 #define HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_GCM_SHA256 449 #endif 450 #ifndef HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_GCM_SHA384 451 #define HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_GCM_SHA384 452 #endif 453 #endif 454 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_DHE) && defined(HITLS_TLS_SUITE_AUTH_PSK) 455 #if !defined(HITLS_TLS_SUITE_AES_128_GCM_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 456 #define HITLS_TLS_SUITE_AES_128_GCM_SHA256 457 #endif 458 #if !defined(HITLS_TLS_SUITE_AES_256_GCM_SHA384) && defined(HITLS_TLS_PROTO_TLS13) 459 #define HITLS_TLS_SUITE_AES_256_GCM_SHA384 460 #endif 461 #if !defined(HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 462 #define HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256 463 #endif 464 #if !defined(HITLS_TLS_SUITE_AES_128_CCM_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 465 #define HITLS_TLS_SUITE_AES_128_CCM_SHA256 466 #endif 467 #if !defined(HITLS_TLS_SUITE_AES_128_CCM_8_SHA256) && defined(HITLS_TLS_PROTO_TLS13) 468 #define HITLS_TLS_SUITE_AES_128_CCM_8_SHA256 469 #endif 470 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_GCM_SHA256 471 #define HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_GCM_SHA256 472 #endif 473 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_GCM_SHA384 474 #define HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_GCM_SHA384 475 #endif 476 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CCM 477 #define HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CCM 478 #endif 479 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CCM 480 #define HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CCM 481 #endif 482 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 483 #define HITLS_TLS_SUITE_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 484 #endif 485 #endif 486 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_RSA) && defined(HITLS_TLS_SUITE_AUTH_RSA) 487 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_128_GCM_SHA256 488 #define HITLS_TLS_SUITE_RSA_WITH_AES_128_GCM_SHA256 489 #endif 490 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_256_GCM_SHA384 491 #define HITLS_TLS_SUITE_RSA_WITH_AES_256_GCM_SHA384 492 #endif 493 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_GCM_SHA256 494 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_GCM_SHA256 495 #endif 496 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_GCM_SHA384 497 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_GCM_SHA384 498 #endif 499 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 500 #define HITLS_TLS_SUITE_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 501 #endif 502 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_128_CCM 503 #define HITLS_TLS_SUITE_RSA_WITH_AES_128_CCM 504 #endif 505 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_128_CCM_8 506 #define HITLS_TLS_SUITE_RSA_WITH_AES_128_CCM_8 507 #endif 508 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_256_CCM 509 #define HITLS_TLS_SUITE_RSA_WITH_AES_256_CCM 510 #endif 511 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_256_CCM_8 512 #define HITLS_TLS_SUITE_RSA_WITH_AES_256_CCM_8 513 #endif 514 #endif 515 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_RSA) && defined(HITLS_TLS_SUITE_AUTH_PSK) 516 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_GCM_SHA256 517 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_GCM_SHA256 518 #endif 519 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_GCM_SHA384 520 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_GCM_SHA384 521 #endif 522 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 523 #define HITLS_TLS_SUITE_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 524 #endif 525 #endif 526 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_ECDHE) && defined(HITLS_TLS_SUITE_AUTH_SM2) 527 #ifndef HITLS_TLS_SUITE_ECDHE_SM4_GCM_SM3 528 #define HITLS_TLS_SUITE_ECDHE_SM4_GCM_SM3 529 #endif 530 #endif 531 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_ECDHE) && defined(HITLS_TLS_SUITE_AUTH_RSA) 532 #ifndef HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_CBC_SHA 533 #define HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_CBC_SHA 534 #endif 535 #ifndef HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_CBC_SHA 536 #define HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_CBC_SHA 537 #endif 538 #ifndef HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_CBC_SHA256 539 #define HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_CBC_SHA256 540 #endif 541 #ifndef HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_CBC_SHA384 542 #define HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_CBC_SHA384 543 #endif 544 #endif 545 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_ECDHE) && defined(HITLS_TLS_SUITE_AUTH_ECDSA) 546 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 547 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 548 #endif 549 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 550 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 551 #endif 552 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 553 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 554 #endif 555 #ifndef HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 556 #define HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 557 #endif 558 #endif 559 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_ECDHE) && defined(HITLS_TLS_SUITE_AUTH_PSK) 560 #ifndef HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CBC_SHA 561 #define HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CBC_SHA 562 #endif 563 #ifndef HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_CBC_SHA 564 #define HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_CBC_SHA 565 #endif 566 #ifndef HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CBC_SHA256 567 #define HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CBC_SHA256 568 #endif 569 #ifndef HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_CBC_SHA384 570 #define HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_CBC_SHA384 571 #endif 572 #endif 573 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_ECDHE) && defined(HITLS_TLS_SUITE_AUTH_SM2) 574 #ifndef HITLS_TLS_SUITE_ECDHE_SM4_CBC_SM3 575 #define HITLS_TLS_SUITE_ECDHE_SM4_CBC_SM3 576 #endif 577 #endif 578 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_DHE) && defined(HITLS_TLS_SUITE_AUTH_RSA) 579 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CBC_SHA 580 #define HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CBC_SHA 581 #endif 582 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CBC_SHA 583 #define HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CBC_SHA 584 #endif 585 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CBC_SHA256 586 #define HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CBC_SHA256 587 #endif 588 #ifndef HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CBC_SHA256 589 #define HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CBC_SHA256 590 #endif 591 #endif 592 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_DHE) && defined(HITLS_TLS_SUITE_AUTH_DSS) 593 #ifndef HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_CBC_SHA 594 #define HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_CBC_SHA 595 #endif 596 #ifndef HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_CBC_SHA 597 #define HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_CBC_SHA 598 #endif 599 #ifndef HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_CBC_SHA256 600 #define HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_CBC_SHA256 601 #endif 602 #ifndef HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_CBC_SHA256 603 #define HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_CBC_SHA256 604 #endif 605 #endif 606 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_DHE) && defined(HITLS_TLS_SUITE_AUTH_PSK) 607 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CBC_SHA 608 #define HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CBC_SHA 609 #endif 610 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CBC_SHA 611 #define HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CBC_SHA 612 #endif 613 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CBC_SHA256 614 #define HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CBC_SHA256 615 #endif 616 #ifndef HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CBC_SHA384 617 #define HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CBC_SHA384 618 #endif 619 #endif 620 621 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_RSA) && defined(HITLS_TLS_SUITE_AUTH_RSA) 622 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_128_CBC_SHA 623 #define HITLS_TLS_SUITE_RSA_WITH_AES_128_CBC_SHA 624 #endif 625 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_256_CBC_SHA 626 #define HITLS_TLS_SUITE_RSA_WITH_AES_256_CBC_SHA 627 #endif 628 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_128_CBC_SHA256 629 #define HITLS_TLS_SUITE_RSA_WITH_AES_128_CBC_SHA256 630 #endif 631 #ifndef HITLS_TLS_SUITE_RSA_WITH_AES_256_CBC_SHA256 632 #define HITLS_TLS_SUITE_RSA_WITH_AES_256_CBC_SHA256 633 #endif 634 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA 635 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA 636 #endif 637 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA 638 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA 639 #endif 640 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA256 641 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA256 642 #endif 643 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA384 644 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA384 645 #endif 646 #endif 647 648 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_RSA) && defined(HITLS_TLS_SUITE_AUTH_PSK) 649 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA 650 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA 651 #endif 652 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA 653 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA 654 #endif 655 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA256 656 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA256 657 #endif 658 #ifndef HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA384 659 #define HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA384 660 #endif 661 #endif 662 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_KX_DHE) 663 #ifndef HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_GCM_SHA256 664 #define HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_GCM_SHA256 665 #endif 666 #ifndef HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_GCM_SHA384 667 #define HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_GCM_SHA384 668 #endif 669 #endif 670 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_ECDHE) 671 #ifndef HITLS_TLS_SUITE_ECDH_ANON_WITH_AES_128_CBC_SHA 672 #define HITLS_TLS_SUITE_ECDH_ANON_WITH_AES_128_CBC_SHA 673 #endif 674 #ifndef HITLS_TLS_SUITE_ECDH_ANON_WITH_AES_256_CBC_SHA 675 #define HITLS_TLS_SUITE_ECDH_ANON_WITH_AES_256_CBC_SHA 676 #endif 677 #endif 678 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_KX_DHE) 679 #ifndef HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_CBC_SHA 680 #define HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_CBC_SHA 681 #endif 682 #ifndef HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_CBC_SHA 683 #define HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_CBC_SHA 684 #endif 685 #ifndef HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_CBC_SHA256 686 #define HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_CBC_SHA256 687 #endif 688 #ifndef HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_CBC_SHA256 689 #define HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_CBC_SHA256 690 #endif 691 #endif 692 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_AUTH_PSK) 693 #ifndef HITLS_TLS_SUITE_PSK_WITH_AES_128_GCM_SHA256 694 #define HITLS_TLS_SUITE_PSK_WITH_AES_128_GCM_SHA256 695 #endif 696 #ifndef HITLS_TLS_SUITE_PSK_WITH_AES_256_GCM_SHA384 697 #define HITLS_TLS_SUITE_PSK_WITH_AES_256_GCM_SHA384 698 #endif 699 #ifndef HITLS_TLS_SUITE_PSK_WITH_AES_256_CCM 700 #define HITLS_TLS_SUITE_PSK_WITH_AES_256_CCM 701 #endif 702 #ifndef HITLS_TLS_SUITE_PSK_WITH_CHACHA20_POLY1305_SHA256 703 #define HITLS_TLS_SUITE_PSK_WITH_CHACHA20_POLY1305_SHA256 704 #endif 705 #endif 706 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_AUTH_PSK) 707 #ifndef HITLS_TLS_SUITE_PSK_WITH_AES_128_CBC_SHA 708 #define HITLS_TLS_SUITE_PSK_WITH_AES_128_CBC_SHA 709 #endif 710 #ifndef HITLS_TLS_SUITE_PSK_WITH_AES_256_CBC_SHA 711 #define HITLS_TLS_SUITE_PSK_WITH_AES_256_CBC_SHA 712 #endif 713 #ifndef HITLS_TLS_SUITE_PSK_WITH_AES_128_CBC_SHA256 714 #define HITLS_TLS_SUITE_PSK_WITH_AES_128_CBC_SHA256 715 #endif 716 #ifndef HITLS_TLS_SUITE_PSK_WITH_AES_256_CBC_SHA384 717 #define HITLS_TLS_SUITE_PSK_WITH_AES_256_CBC_SHA384 718 #endif 719 #endif 720 721 #if defined(HITLS_TLS_SUITE_CIPHER_CBC) && defined(HITLS_TLS_SUITE_AUTH_SM2) 722 #ifndef HITLS_TLS_SUITE_ECC_SM4_CBC_SM3 723 #define HITLS_TLS_SUITE_ECC_SM4_CBC_SM3 724 #endif 725 #endif 726 727 #if defined(HITLS_TLS_SUITE_CIPHER_AEAD) && defined(HITLS_TLS_SUITE_AUTH_SM2) 728 #ifndef HITLS_TLS_SUITE_ECC_SM4_GCM_SM3 729 #define HITLS_TLS_SUITE_ECC_SM4_GCM_SM3 730 #endif 731 #endif 732 733 #if defined(HITLS_TLS_SUITE_AES_128_GCM_SHA256) || defined(HITLS_TLS_SUITE_AES_256_GCM_SHA384) || \ 734 defined(HITLS_TLS_SUITE_CHACHA20_POLY1305_SHA256) || defined(HITLS_TLS_SUITE_AES_128_CCM_SHA256) || \ 735 defined(HITLS_TLS_SUITE_AES_128_CCM_8_SHA256) 736 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 737 #define HITLS_TLS_SUITE_CIPHER_AEAD 738 #endif 739 #ifndef HITLS_TLS_SUITE_KX_ECDHE 740 #define HITLS_TLS_SUITE_KX_ECDHE 741 #endif 742 #endif 743 #if defined(HITLS_TLS_SUITE_RSA_WITH_AES_128_CBC_SHA) || defined(HITLS_TLS_SUITE_RSA_WITH_AES_256_CBC_SHA) || \ 744 defined(HITLS_TLS_SUITE_RSA_WITH_AES_128_CBC_SHA256) || defined(HITLS_TLS_SUITE_RSA_WITH_AES_256_CBC_SHA256) 745 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 746 #define HITLS_TLS_SUITE_CIPHER_CBC 747 #endif 748 #ifndef HITLS_TLS_SUITE_KX_RSA 749 #define HITLS_TLS_SUITE_KX_RSA 750 #endif 751 #ifndef HITLS_TLS_SUITE_AUTH_RSA 752 #define HITLS_TLS_SUITE_AUTH_RSA 753 #endif 754 #endif 755 #if defined(HITLS_TLS_SUITE_RSA_WITH_AES_128_GCM_SHA256) || \ 756 defined(HITLS_TLS_SUITE_RSA_WITH_AES_256_GCM_SHA384) || \ 757 defined(HITLS_TLS_SUITE_RSA_WITH_AES_128_CCM) || defined(HITLS_TLS_SUITE_RSA_WITH_AES_128_CCM_8) || \ 758 defined(HITLS_TLS_SUITE_RSA_WITH_AES_256_CCM) || defined(HITLS_TLS_SUITE_RSA_WITH_AES_256_CCM_8) 759 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 760 #define HITLS_TLS_SUITE_CIPHER_AEAD 761 #endif 762 #ifndef HITLS_TLS_SUITE_KX_RSA 763 #define HITLS_TLS_SUITE_KX_RSA 764 #endif 765 #ifndef HITLS_TLS_SUITE_AUTH_RSA 766 #define HITLS_TLS_SUITE_AUTH_RSA 767 #endif 768 #endif 769 #if defined(HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_GCM_SHA256) || \ 770 defined(HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_GCM_SHA384) || \ 771 defined(HITLS_TLS_SUITE_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256) || \ 772 defined(HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CCM) || defined(HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CCM) 773 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 774 #define HITLS_TLS_SUITE_CIPHER_AEAD 775 #endif 776 #ifndef HITLS_TLS_SUITE_KX_DHE 777 #define HITLS_TLS_SUITE_KX_DHE 778 #endif 779 #ifndef HITLS_TLS_SUITE_AUTH_RSA 780 #define HITLS_TLS_SUITE_AUTH_RSA 781 #endif 782 #endif 783 #if defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CBC_SHA) || \ 784 defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CBC_SHA) || \ 785 defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256) || \ 786 defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384) 787 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 788 #define HITLS_TLS_SUITE_CIPHER_CBC 789 #endif 790 #ifndef HITLS_TLS_SUITE_KX_ECDHE 791 #define HITLS_TLS_SUITE_KX_ECDHE 792 #endif 793 #ifndef HITLS_TLS_SUITE_AUTH_ECDSA 794 #define HITLS_TLS_SUITE_AUTH_ECDSA 795 #endif 796 #endif 797 #if defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256) || \ 798 defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384) || \ 799 defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256) || \ 800 defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_128_CCM) || defined(HITLS_TLS_SUITE_ECDHE_ECDSA_WITH_AES_256_CCM) 801 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 802 #define HITLS_TLS_SUITE_CIPHER_AEAD 803 #endif 804 #ifndef HITLS_TLS_SUITE_KX_ECDHE 805 #define HITLS_TLS_SUITE_KX_ECDHE 806 #endif 807 #ifndef HITLS_TLS_SUITE_AUTH_ECDSA 808 #define HITLS_TLS_SUITE_AUTH_ECDSA 809 #endif 810 #endif 811 #if defined(HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_CBC_SHA) || \ 812 defined(HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_CBC_SHA) || \ 813 defined(HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_CBC_SHA256) || \ 814 defined(HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_CBC_SHA384) 815 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 816 #define HITLS_TLS_SUITE_CIPHER_CBC 817 #endif 818 #ifndef HITLS_TLS_SUITE_KX_ECDHE 819 #define HITLS_TLS_SUITE_KX_ECDHE 820 #endif 821 #ifndef HITLS_TLS_SUITE_AUTH_RSA 822 #define HITLS_TLS_SUITE_AUTH_RSA 823 #endif 824 #endif 825 #if defined(HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_128_GCM_SHA256) || \ 826 defined(HITLS_TLS_SUITE_ECDHE_RSA_WITH_AES_256_GCM_SHA384) || \ 827 defined(HITLS_TLS_SUITE_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256) 828 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 829 #define HITLS_TLS_SUITE_CIPHER_AEAD 830 #endif 831 #ifndef HITLS_TLS_SUITE_KX_ECDHE 832 #define HITLS_TLS_SUITE_KX_ECDHE 833 #endif 834 #ifndef HITLS_TLS_SUITE_AUTH_RSA 835 #define HITLS_TLS_SUITE_AUTH_RSA 836 #endif 837 #endif 838 #if defined(HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_GCM_SHA256) || \ 839 defined(HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_GCM_SHA384) 840 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 841 #define HITLS_TLS_SUITE_CIPHER_AEAD 842 #endif 843 #ifndef HITLS_TLS_SUITE_KX_DHE 844 #define HITLS_TLS_SUITE_KX_DHE 845 #endif 846 #ifndef HITLS_TLS_SUITE_AUTH_DSS 847 #define HITLS_TLS_SUITE_AUTH_DSS 848 #endif 849 #endif 850 #if defined(HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_CBC_SHA) || \ 851 defined(HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_CBC_SHA) || \ 852 defined(HITLS_TLS_SUITE_DHE_DSS_WITH_AES_128_CBC_SHA256) || \ 853 defined(HITLS_TLS_SUITE_DHE_DSS_WITH_AES_256_CBC_SHA256) 854 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 855 #define HITLS_TLS_SUITE_CIPHER_CBC 856 #endif 857 #ifndef HITLS_TLS_SUITE_KX_DHE 858 #define HITLS_TLS_SUITE_KX_DHE 859 #endif 860 #ifndef HITLS_TLS_SUITE_AUTH_DSS 861 #define HITLS_TLS_SUITE_AUTH_DSS 862 #endif 863 #endif 864 #if defined(HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CBC_SHA) || \ 865 defined(HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CBC_SHA) || \ 866 defined(HITLS_TLS_SUITE_DHE_RSA_WITH_AES_128_CBC_SHA256) || \ 867 defined(HITLS_TLS_SUITE_DHE_RSA_WITH_AES_256_CBC_SHA256) 868 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 869 #define HITLS_TLS_SUITE_CIPHER_CBC 870 #endif 871 #ifndef HITLS_TLS_SUITE_KX_DHE 872 #define HITLS_TLS_SUITE_KX_DHE 873 #endif 874 #ifndef HITLS_TLS_SUITE_AUTH_RSA 875 #define HITLS_TLS_SUITE_AUTH_RSA 876 #endif 877 #endif 878 #if defined(HITLS_TLS_SUITE_PSK_WITH_AES_128_CBC_SHA) || defined(HITLS_TLS_SUITE_PSK_WITH_AES_256_CBC_SHA) || \ 879 defined(HITLS_TLS_SUITE_PSK_WITH_AES_128_CBC_SHA256) || defined(HITLS_TLS_SUITE_PSK_WITH_AES_256_CBC_SHA384) 880 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 881 #define HITLS_TLS_SUITE_CIPHER_CBC 882 #endif 883 #ifndef HITLS_TLS_SUITE_AUTH_PSK 884 #define HITLS_TLS_SUITE_AUTH_PSK 885 #endif 886 #endif 887 #if defined(HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CBC_SHA) || \ 888 defined(HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CBC_SHA) || \ 889 defined(HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CBC_SHA256) || \ 890 defined(HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CBC_SHA384) 891 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 892 #define HITLS_TLS_SUITE_CIPHER_CBC 893 #endif 894 #ifndef HITLS_TLS_SUITE_KX_DHE 895 #define HITLS_TLS_SUITE_KX_DHE 896 #endif 897 #ifndef HITLS_TLS_SUITE_AUTH_PSK 898 #define HITLS_TLS_SUITE_AUTH_PSK 899 #endif 900 #endif 901 #if defined(HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA) || \ 902 defined(HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA) || \ 903 defined(HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_CBC_SHA256) || \ 904 defined(HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_CBC_SHA384) 905 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 906 #define HITLS_TLS_SUITE_CIPHER_CBC 907 #endif 908 #ifndef HITLS_TLS_SUITE_KX_RSA 909 #define HITLS_TLS_SUITE_KX_RSA 910 #endif 911 #ifndef HITLS_TLS_SUITE_AUTH_RSA 912 #define HITLS_TLS_SUITE_AUTH_RSA 913 #endif 914 #ifndef HITLS_TLS_SUITE_AUTH_PSK 915 #define HITLS_TLS_SUITE_AUTH_PSK 916 #endif 917 #endif 918 #if defined(HITLS_TLS_SUITE_PSK_WITH_AES_128_GCM_SHA256) || defined(HITLS_TLS_SUITE_PSK_WITH_AES_256_GCM_SHA384) || \ 919 defined(HITLS_TLS_SUITE_PSK_WITH_AES_256_CCM) || defined(HITLS_TLS_SUITE_PSK_WITH_CHACHA20_POLY1305_SHA256) 920 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 921 #define HITLS_TLS_SUITE_CIPHER_AEAD 922 #endif 923 #ifndef HITLS_TLS_SUITE_AUTH_PSK 924 #define HITLS_TLS_SUITE_AUTH_PSK 925 #endif 926 #endif 927 #if defined(HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_GCM_SHA256) || \ 928 defined(HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_GCM_SHA384) || defined(HITLS_TLS_SUITE_DHE_PSK_WITH_AES_128_CCM) || \ 929 defined(HITLS_TLS_SUITE_DHE_PSK_WITH_AES_256_CCM) || defined(HITLS_TLS_SUITE_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256) 930 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 931 #define HITLS_TLS_SUITE_CIPHER_AEAD 932 #endif 933 #ifndef HITLS_TLS_SUITE_KX_DHE 934 #define HITLS_TLS_SUITE_KX_DHE 935 #endif 936 #ifndef HITLS_TLS_SUITE_AUTH_PSK 937 #define HITLS_TLS_SUITE_AUTH_PSK 938 #endif 939 #endif 940 #if defined(HITLS_TLS_SUITE_RSA_PSK_WITH_AES_128_GCM_SHA256) || \ 941 defined(HITLS_TLS_SUITE_RSA_PSK_WITH_AES_256_GCM_SHA384) || \ 942 defined(HITLS_TLS_SUITE_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256) 943 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 944 #define HITLS_TLS_SUITE_CIPHER_AEAD 945 #endif 946 #ifndef HITLS_TLS_SUITE_KX_RSA 947 #define HITLS_TLS_SUITE_KX_RSA 948 #endif 949 #ifndef HITLS_TLS_SUITE_AUTH_RSA 950 #define HITLS_TLS_SUITE_AUTH_RSA 951 #endif 952 #ifndef HITLS_TLS_SUITE_AUTH_PSK 953 #define HITLS_TLS_SUITE_AUTH_PSK 954 #endif 955 #endif 956 #if defined(HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CBC_SHA) || \ 957 defined(HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_CBC_SHA) || \ 958 defined(HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CBC_SHA256) || \ 959 defined(HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_CBC_SHA384) 960 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 961 #define HITLS_TLS_SUITE_CIPHER_CBC 962 #endif 963 #ifndef HITLS_TLS_SUITE_KX_ECDHE 964 #define HITLS_TLS_SUITE_KX_ECDHE 965 #endif 966 #ifndef HITLS_TLS_SUITE_AUTH_PSK 967 #define HITLS_TLS_SUITE_AUTH_PSK 968 #endif 969 #endif 970 #if defined(HITLS_TLS_SUITE_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256) || \ 971 defined(HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_CCM_SHA256) || \ 972 defined(HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_128_GCM_SHA256) || \ 973 defined(HITLS_TLS_SUITE_ECDHE_PSK_WITH_AES_256_GCM_SHA384) 974 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 975 #define HITLS_TLS_SUITE_CIPHER_AEAD 976 #endif 977 #ifndef HITLS_TLS_SUITE_KX_ECDHE 978 #define HITLS_TLS_SUITE_KX_ECDHE 979 #endif 980 #ifndef HITLS_TLS_SUITE_AUTH_PSK 981 #define HITLS_TLS_SUITE_AUTH_PSK 982 #endif 983 #endif 984 #if defined(HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_CBC_SHA) || \ 985 defined(HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_CBC_SHA) || \ 986 defined(HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_CBC_SHA256) || \ 987 defined(HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_CBC_SHA256) 988 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 989 #define HITLS_TLS_SUITE_CIPHER_CBC 990 #endif 991 #ifndef HITLS_TLS_SUITE_KX_DHE 992 #define HITLS_TLS_SUITE_KX_DHE 993 #endif 994 #endif 995 #if defined(HITLS_TLS_SUITE_DH_ANON_WITH_AES_128_GCM_SHA256) || \ 996 defined(HITLS_TLS_SUITE_DH_ANON_WITH_AES_256_GCM_SHA384) 997 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 998 #define HITLS_TLS_SUITE_CIPHER_AEAD 999 #endif 1000 #ifndef HITLS_TLS_SUITE_KX_DHE 1001 #define HITLS_TLS_SUITE_KX_DHE 1002 #endif 1003 #endif 1004 #if defined(HITLS_TLS_SUITE_ECDH_ANON_WITH_AES_128_CBC_SHA) || \ 1005 defined(HITLS_TLS_SUITE_ECDH_ANON_WITH_AES_256_CBC_SHA) 1006 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 1007 #define HITLS_TLS_SUITE_CIPHER_CBC 1008 #endif 1009 #ifndef HITLS_TLS_SUITE_KX_ECDHE 1010 #define HITLS_TLS_SUITE_KX_ECDHE 1011 #endif 1012 #endif 1013 #if defined(HITLS_TLS_SUITE_ECDHE_SM4_CBC_SM3) 1014 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 1015 #define HITLS_TLS_SUITE_CIPHER_CBC 1016 #endif 1017 #ifndef HITLS_TLS_SUITE_KX_ECDHE 1018 #define HITLS_TLS_SUITE_KX_ECDHE 1019 #endif 1020 #ifndef HITLS_TLS_SUITE_AUTH_SM2 1021 #define HITLS_TLS_SUITE_AUTH_SM2 1022 #endif 1023 #endif 1024 #if defined(HITLS_TLS_SUITE_ECC_SM4_CBC_SM3) 1025 #ifndef HITLS_TLS_SUITE_CIPHER_CBC 1026 #define HITLS_TLS_SUITE_CIPHER_CBC 1027 #endif 1028 #ifndef HITLS_TLS_SUITE_AUTH_SM2 1029 #define HITLS_TLS_SUITE_AUTH_SM2 1030 #endif 1031 #endif 1032 #if defined(HITLS_TLS_SUITE_ECDHE_SM4_GCM_SM3) 1033 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 1034 #define HITLS_TLS_SUITE_CIPHER_AEAD 1035 #endif 1036 #ifndef HITLS_TLS_SUITE_KX_ECDHE 1037 #define HITLS_TLS_SUITE_KX_ECDHE 1038 #endif 1039 #ifndef HITLS_TLS_SUITE_AUTH_SM2 1040 #define HITLS_TLS_SUITE_AUTH_SM2 1041 #endif 1042 #endif 1043 #if defined(HITLS_TLS_SUITE_ECC_SM4_GCM_SM3) 1044 #ifndef HITLS_TLS_SUITE_CIPHER_AEAD 1045 #define HITLS_TLS_SUITE_CIPHER_AEAD 1046 #endif 1047 #ifndef HITLS_TLS_SUITE_AUTH_SM2 1048 #define HITLS_TLS_SUITE_AUTH_SM2 1049 #endif 1050 #endif 1051 1052 #ifdef HITLS_TLS_SUITE_CIPHER_CBC 1053 #ifndef HITLS_TLS_CALLBACK_CRYPT_HMAC_PRIMITIVES 1054 #define HITLS_TLS_CALLBACK_CRYPT_HMAC_PRIMITIVES 1055 #endif 1056 #endif 1057 1058 #ifdef HITLS_TLS_SUITE_CIPHER_CBC 1059 #ifndef HITLS_TLS_FEATURE_ETM 1060 #define HITLS_TLS_FEATURE_ETM 1061 #endif 1062 #endif 1063 1064 #if defined(HITLS_TLS_SUITE_AUTH_ECDSA) || defined(HITLS_TLS_SUITE_AUTH_RSA) || defined(HITLS_TLS_SUITE_AUTH_DSS) || \ 1065 defined(HITLS_TLS_SUITE_AUTH_PSK) || defined(HITLS_TLS_SUITE_AUTH_SM2) 1066 #ifndef HITLS_TLS_SUITE_AUTH 1067 #define HITLS_TLS_SUITE_AUTH 1068 #endif 1069 #endif 1070 1071 #endif /* HITLS_CONFIG_LAYER_TLS_H */