diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libssl/s3_lib.c | 416 | ||||
-rw-r--r-- | src/lib/libssl/ssl_asn1.c | 18 | ||||
-rw-r--r-- | src/lib/libssl/ssl_ciph.c | 56 | ||||
-rw-r--r-- | src/lib/libssl/ssl_ciphers.c | 20 | ||||
-rw-r--r-- | src/lib/libssl/ssl_clnt.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/ssl_local.h | 12 | ||||
-rw-r--r-- | src/lib/libssl/ssl_pkt.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/ssl_sess.c | 6 | ||||
-rw-r--r-- | src/lib/libssl/ssl_srvr.c | 15 | ||||
-rw-r--r-- | src/lib/libssl/ssl_txt.c | 8 | ||||
-rw-r--r-- | src/lib/libssl/tls13_client.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/tls13_server.c | 4 |
12 files changed, 179 insertions, 392 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index 38e7ba7f19..d30eb6deb7 100644 --- a/src/lib/libssl/s3_lib.c +++ b/src/lib/libssl/s3_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_lib.c,v 1.255 2024/07/19 08:54:31 jsing Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.256 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -171,12 +171,12 @@ | |||
171 | /* list of available SSLv3 ciphers (sorted by id) */ | 171 | /* list of available SSLv3 ciphers (sorted by id) */ |
172 | const SSL_CIPHER ssl3_ciphers[] = { | 172 | const SSL_CIPHER ssl3_ciphers[] = { |
173 | 173 | ||
174 | /* The RSA ciphers */ | 174 | /* |
175 | /* Cipher 01 */ | 175 | * SSLv3 RSA cipher suites (RFC 6101, appendix A.6). |
176 | */ | ||
176 | { | 177 | { |
177 | .valid = 1, | 178 | .value = 0x0001, |
178 | .name = SSL3_TXT_RSA_NULL_MD5, | 179 | .name = SSL3_TXT_RSA_NULL_MD5, |
179 | .id = SSL3_CK_RSA_NULL_MD5, | ||
180 | .algorithm_mkey = SSL_kRSA, | 180 | .algorithm_mkey = SSL_kRSA, |
181 | .algorithm_auth = SSL_aRSA, | 181 | .algorithm_auth = SSL_aRSA, |
182 | .algorithm_enc = SSL_eNULL, | 182 | .algorithm_enc = SSL_eNULL, |
@@ -187,12 +187,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
187 | .strength_bits = 0, | 187 | .strength_bits = 0, |
188 | .alg_bits = 0, | 188 | .alg_bits = 0, |
189 | }, | 189 | }, |
190 | |||
191 | /* Cipher 02 */ | ||
192 | { | 190 | { |
193 | .valid = 1, | 191 | .value = 0x0002, |
194 | .name = SSL3_TXT_RSA_NULL_SHA, | 192 | .name = SSL3_TXT_RSA_NULL_SHA, |
195 | .id = SSL3_CK_RSA_NULL_SHA, | ||
196 | .algorithm_mkey = SSL_kRSA, | 193 | .algorithm_mkey = SSL_kRSA, |
197 | .algorithm_auth = SSL_aRSA, | 194 | .algorithm_auth = SSL_aRSA, |
198 | .algorithm_enc = SSL_eNULL, | 195 | .algorithm_enc = SSL_eNULL, |
@@ -203,12 +200,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
203 | .strength_bits = 0, | 200 | .strength_bits = 0, |
204 | .alg_bits = 0, | 201 | .alg_bits = 0, |
205 | }, | 202 | }, |
206 | |||
207 | /* Cipher 04 */ | ||
208 | { | 203 | { |
209 | .valid = 1, | 204 | .value = 0x0004, |
210 | .name = SSL3_TXT_RSA_RC4_128_MD5, | 205 | .name = SSL3_TXT_RSA_RC4_128_MD5, |
211 | .id = SSL3_CK_RSA_RC4_128_MD5, | ||
212 | .algorithm_mkey = SSL_kRSA, | 206 | .algorithm_mkey = SSL_kRSA, |
213 | .algorithm_auth = SSL_aRSA, | 207 | .algorithm_auth = SSL_aRSA, |
214 | .algorithm_enc = SSL_RC4, | 208 | .algorithm_enc = SSL_RC4, |
@@ -219,12 +213,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
219 | .strength_bits = 128, | 213 | .strength_bits = 128, |
220 | .alg_bits = 128, | 214 | .alg_bits = 128, |
221 | }, | 215 | }, |
222 | |||
223 | /* Cipher 05 */ | ||
224 | { | 216 | { |
225 | .valid = 1, | 217 | .value = 0x0005, |
226 | .name = SSL3_TXT_RSA_RC4_128_SHA, | 218 | .name = SSL3_TXT_RSA_RC4_128_SHA, |
227 | .id = SSL3_CK_RSA_RC4_128_SHA, | ||
228 | .algorithm_mkey = SSL_kRSA, | 219 | .algorithm_mkey = SSL_kRSA, |
229 | .algorithm_auth = SSL_aRSA, | 220 | .algorithm_auth = SSL_aRSA, |
230 | .algorithm_enc = SSL_RC4, | 221 | .algorithm_enc = SSL_RC4, |
@@ -235,12 +226,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
235 | .strength_bits = 128, | 226 | .strength_bits = 128, |
236 | .alg_bits = 128, | 227 | .alg_bits = 128, |
237 | }, | 228 | }, |
238 | |||
239 | /* Cipher 0A */ | ||
240 | { | 229 | { |
241 | .valid = 1, | 230 | .value = 0x000a, |
242 | .name = SSL3_TXT_RSA_DES_192_CBC3_SHA, | 231 | .name = SSL3_TXT_RSA_DES_192_CBC3_SHA, |
243 | .id = SSL3_CK_RSA_DES_192_CBC3_SHA, | ||
244 | .algorithm_mkey = SSL_kRSA, | 232 | .algorithm_mkey = SSL_kRSA, |
245 | .algorithm_auth = SSL_aRSA, | 233 | .algorithm_auth = SSL_aRSA, |
246 | .algorithm_enc = SSL_3DES, | 234 | .algorithm_enc = SSL_3DES, |
@@ -253,14 +241,11 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
253 | }, | 241 | }, |
254 | 242 | ||
255 | /* | 243 | /* |
256 | * Ephemeral DH (DHE) ciphers. | 244 | * SSLv3 DHE cipher suites (RFC 6101, appendix A.6). |
257 | */ | 245 | */ |
258 | |||
259 | /* Cipher 16 */ | ||
260 | { | 246 | { |
261 | .valid = 1, | 247 | .value = 0x0016, |
262 | .name = SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA, | 248 | .name = SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA, |
263 | .id = SSL3_CK_EDH_RSA_DES_192_CBC3_SHA, | ||
264 | .algorithm_mkey = SSL_kDHE, | 249 | .algorithm_mkey = SSL_kDHE, |
265 | .algorithm_auth = SSL_aRSA, | 250 | .algorithm_auth = SSL_aRSA, |
266 | .algorithm_enc = SSL_3DES, | 251 | .algorithm_enc = SSL_3DES, |
@@ -271,12 +256,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
271 | .strength_bits = 112, | 256 | .strength_bits = 112, |
272 | .alg_bits = 168, | 257 | .alg_bits = 168, |
273 | }, | 258 | }, |
274 | |||
275 | /* Cipher 18 */ | ||
276 | { | 259 | { |
277 | .valid = 1, | 260 | .value = 0x0018, |
278 | .name = SSL3_TXT_ADH_RC4_128_MD5, | 261 | .name = SSL3_TXT_ADH_RC4_128_MD5, |
279 | .id = SSL3_CK_ADH_RC4_128_MD5, | ||
280 | .algorithm_mkey = SSL_kDHE, | 262 | .algorithm_mkey = SSL_kDHE, |
281 | .algorithm_auth = SSL_aNULL, | 263 | .algorithm_auth = SSL_aNULL, |
282 | .algorithm_enc = SSL_RC4, | 264 | .algorithm_enc = SSL_RC4, |
@@ -287,12 +269,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
287 | .strength_bits = 128, | 269 | .strength_bits = 128, |
288 | .alg_bits = 128, | 270 | .alg_bits = 128, |
289 | }, | 271 | }, |
290 | |||
291 | /* Cipher 1B */ | ||
292 | { | 272 | { |
293 | .valid = 1, | 273 | .value = 0x001b, |
294 | .name = SSL3_TXT_ADH_DES_192_CBC_SHA, | 274 | .name = SSL3_TXT_ADH_DES_192_CBC_SHA, |
295 | .id = SSL3_CK_ADH_DES_192_CBC_SHA, | ||
296 | .algorithm_mkey = SSL_kDHE, | 275 | .algorithm_mkey = SSL_kDHE, |
297 | .algorithm_auth = SSL_aNULL, | 276 | .algorithm_auth = SSL_aNULL, |
298 | .algorithm_enc = SSL_3DES, | 277 | .algorithm_enc = SSL_3DES, |
@@ -305,14 +284,11 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
305 | }, | 284 | }, |
306 | 285 | ||
307 | /* | 286 | /* |
308 | * AES ciphersuites. | 287 | * TLSv1.0 AES cipher suites (RFC 3268). |
309 | */ | 288 | */ |
310 | |||
311 | /* Cipher 2F */ | ||
312 | { | 289 | { |
313 | .valid = 1, | 290 | .value = 0x002f, |
314 | .name = TLS1_TXT_RSA_WITH_AES_128_SHA, | 291 | .name = TLS1_TXT_RSA_WITH_AES_128_SHA, |
315 | .id = TLS1_CK_RSA_WITH_AES_128_SHA, | ||
316 | .algorithm_mkey = SSL_kRSA, | 292 | .algorithm_mkey = SSL_kRSA, |
317 | .algorithm_auth = SSL_aRSA, | 293 | .algorithm_auth = SSL_aRSA, |
318 | .algorithm_enc = SSL_AES128, | 294 | .algorithm_enc = SSL_AES128, |
@@ -323,12 +299,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
323 | .strength_bits = 128, | 299 | .strength_bits = 128, |
324 | .alg_bits = 128, | 300 | .alg_bits = 128, |
325 | }, | 301 | }, |
326 | |||
327 | /* Cipher 33 */ | ||
328 | { | 302 | { |
329 | .valid = 1, | 303 | .value = 0x0033, |
330 | .name = TLS1_TXT_DHE_RSA_WITH_AES_128_SHA, | 304 | .name = TLS1_TXT_DHE_RSA_WITH_AES_128_SHA, |
331 | .id = TLS1_CK_DHE_RSA_WITH_AES_128_SHA, | ||
332 | .algorithm_mkey = SSL_kDHE, | 305 | .algorithm_mkey = SSL_kDHE, |
333 | .algorithm_auth = SSL_aRSA, | 306 | .algorithm_auth = SSL_aRSA, |
334 | .algorithm_enc = SSL_AES128, | 307 | .algorithm_enc = SSL_AES128, |
@@ -339,12 +312,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
339 | .strength_bits = 128, | 312 | .strength_bits = 128, |
340 | .alg_bits = 128, | 313 | .alg_bits = 128, |
341 | }, | 314 | }, |
342 | |||
343 | /* Cipher 34 */ | ||
344 | { | 315 | { |
345 | .valid = 1, | 316 | .value = 0x0034, |
346 | .name = TLS1_TXT_ADH_WITH_AES_128_SHA, | 317 | .name = TLS1_TXT_ADH_WITH_AES_128_SHA, |
347 | .id = TLS1_CK_ADH_WITH_AES_128_SHA, | ||
348 | .algorithm_mkey = SSL_kDHE, | 318 | .algorithm_mkey = SSL_kDHE, |
349 | .algorithm_auth = SSL_aNULL, | 319 | .algorithm_auth = SSL_aNULL, |
350 | .algorithm_enc = SSL_AES128, | 320 | .algorithm_enc = SSL_AES128, |
@@ -355,12 +325,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
355 | .strength_bits = 128, | 325 | .strength_bits = 128, |
356 | .alg_bits = 128, | 326 | .alg_bits = 128, |
357 | }, | 327 | }, |
358 | |||
359 | /* Cipher 35 */ | ||
360 | { | 328 | { |
361 | .valid = 1, | 329 | .value = 0x0035, |
362 | .name = TLS1_TXT_RSA_WITH_AES_256_SHA, | 330 | .name = TLS1_TXT_RSA_WITH_AES_256_SHA, |
363 | .id = TLS1_CK_RSA_WITH_AES_256_SHA, | ||
364 | .algorithm_mkey = SSL_kRSA, | 331 | .algorithm_mkey = SSL_kRSA, |
365 | .algorithm_auth = SSL_aRSA, | 332 | .algorithm_auth = SSL_aRSA, |
366 | .algorithm_enc = SSL_AES256, | 333 | .algorithm_enc = SSL_AES256, |
@@ -371,12 +338,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
371 | .strength_bits = 256, | 338 | .strength_bits = 256, |
372 | .alg_bits = 256, | 339 | .alg_bits = 256, |
373 | }, | 340 | }, |
374 | |||
375 | /* Cipher 39 */ | ||
376 | { | 341 | { |
377 | .valid = 1, | 342 | .value = 0x0039, |
378 | .name = TLS1_TXT_DHE_RSA_WITH_AES_256_SHA, | 343 | .name = TLS1_TXT_DHE_RSA_WITH_AES_256_SHA, |
379 | .id = TLS1_CK_DHE_RSA_WITH_AES_256_SHA, | ||
380 | .algorithm_mkey = SSL_kDHE, | 344 | .algorithm_mkey = SSL_kDHE, |
381 | .algorithm_auth = SSL_aRSA, | 345 | .algorithm_auth = SSL_aRSA, |
382 | .algorithm_enc = SSL_AES256, | 346 | .algorithm_enc = SSL_AES256, |
@@ -387,12 +351,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
387 | .strength_bits = 256, | 351 | .strength_bits = 256, |
388 | .alg_bits = 256, | 352 | .alg_bits = 256, |
389 | }, | 353 | }, |
390 | |||
391 | /* Cipher 3A */ | ||
392 | { | 354 | { |
393 | .valid = 1, | 355 | .value = 0x003a, |
394 | .name = TLS1_TXT_ADH_WITH_AES_256_SHA, | 356 | .name = TLS1_TXT_ADH_WITH_AES_256_SHA, |
395 | .id = TLS1_CK_ADH_WITH_AES_256_SHA, | ||
396 | .algorithm_mkey = SSL_kDHE, | 357 | .algorithm_mkey = SSL_kDHE, |
397 | .algorithm_auth = SSL_aNULL, | 358 | .algorithm_auth = SSL_aNULL, |
398 | .algorithm_enc = SSL_AES256, | 359 | .algorithm_enc = SSL_AES256, |
@@ -404,12 +365,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
404 | .alg_bits = 256, | 365 | .alg_bits = 256, |
405 | }, | 366 | }, |
406 | 367 | ||
407 | /* TLS v1.2 ciphersuites */ | 368 | /* |
408 | /* Cipher 3B */ | 369 | * TLSv1.2 RSA cipher suites (RFC 5246, appendix A.5). |
370 | */ | ||
409 | { | 371 | { |
410 | .valid = 1, | 372 | .value = 0x003b, |
411 | .name = TLS1_TXT_RSA_WITH_NULL_SHA256, | 373 | .name = TLS1_TXT_RSA_WITH_NULL_SHA256, |
412 | .id = TLS1_CK_RSA_WITH_NULL_SHA256, | ||
413 | .algorithm_mkey = SSL_kRSA, | 374 | .algorithm_mkey = SSL_kRSA, |
414 | .algorithm_auth = SSL_aRSA, | 375 | .algorithm_auth = SSL_aRSA, |
415 | .algorithm_enc = SSL_eNULL, | 376 | .algorithm_enc = SSL_eNULL, |
@@ -420,12 +381,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
420 | .strength_bits = 0, | 381 | .strength_bits = 0, |
421 | .alg_bits = 0, | 382 | .alg_bits = 0, |
422 | }, | 383 | }, |
423 | |||
424 | /* Cipher 3C */ | ||
425 | { | 384 | { |
426 | .valid = 1, | 385 | .value = 0x003c, |
427 | .name = TLS1_TXT_RSA_WITH_AES_128_SHA256, | 386 | .name = TLS1_TXT_RSA_WITH_AES_128_SHA256, |
428 | .id = TLS1_CK_RSA_WITH_AES_128_SHA256, | ||
429 | .algorithm_mkey = SSL_kRSA, | 387 | .algorithm_mkey = SSL_kRSA, |
430 | .algorithm_auth = SSL_aRSA, | 388 | .algorithm_auth = SSL_aRSA, |
431 | .algorithm_enc = SSL_AES128, | 389 | .algorithm_enc = SSL_AES128, |
@@ -436,12 +394,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
436 | .strength_bits = 128, | 394 | .strength_bits = 128, |
437 | .alg_bits = 128, | 395 | .alg_bits = 128, |
438 | }, | 396 | }, |
439 | |||
440 | /* Cipher 3D */ | ||
441 | { | 397 | { |
442 | .valid = 1, | 398 | .value = 0x003d, |
443 | .name = TLS1_TXT_RSA_WITH_AES_256_SHA256, | 399 | .name = TLS1_TXT_RSA_WITH_AES_256_SHA256, |
444 | .id = TLS1_CK_RSA_WITH_AES_256_SHA256, | ||
445 | .algorithm_mkey = SSL_kRSA, | 400 | .algorithm_mkey = SSL_kRSA, |
446 | .algorithm_auth = SSL_aRSA, | 401 | .algorithm_auth = SSL_aRSA, |
447 | .algorithm_enc = SSL_AES256, | 402 | .algorithm_enc = SSL_AES256, |
@@ -454,13 +409,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
454 | }, | 409 | }, |
455 | 410 | ||
456 | #ifndef OPENSSL_NO_CAMELLIA | 411 | #ifndef OPENSSL_NO_CAMELLIA |
457 | /* Camellia ciphersuites from RFC4132 (128-bit portion) */ | 412 | /* |
458 | 413 | * TLSv1.0 Camellia 128 bit cipher suites (RFC 4132). | |
459 | /* Cipher 41 */ | 414 | */ |
460 | { | 415 | { |
461 | .valid = 1, | 416 | .value = 0x0041, |
462 | .name = TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA, | 417 | .name = TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA, |
463 | .id = TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA, | ||
464 | .algorithm_mkey = SSL_kRSA, | 418 | .algorithm_mkey = SSL_kRSA, |
465 | .algorithm_auth = SSL_aRSA, | 419 | .algorithm_auth = SSL_aRSA, |
466 | .algorithm_enc = SSL_CAMELLIA128, | 420 | .algorithm_enc = SSL_CAMELLIA128, |
@@ -471,12 +425,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
471 | .strength_bits = 128, | 425 | .strength_bits = 128, |
472 | .alg_bits = 128, | 426 | .alg_bits = 128, |
473 | }, | 427 | }, |
474 | |||
475 | /* Cipher 45 */ | ||
476 | { | 428 | { |
477 | .valid = 1, | 429 | .value = 0x0045, |
478 | .name = TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, | 430 | .name = TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, |
479 | .id = TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, | ||
480 | .algorithm_mkey = SSL_kDHE, | 431 | .algorithm_mkey = SSL_kDHE, |
481 | .algorithm_auth = SSL_aRSA, | 432 | .algorithm_auth = SSL_aRSA, |
482 | .algorithm_enc = SSL_CAMELLIA128, | 433 | .algorithm_enc = SSL_CAMELLIA128, |
@@ -487,12 +438,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
487 | .strength_bits = 128, | 438 | .strength_bits = 128, |
488 | .alg_bits = 128, | 439 | .alg_bits = 128, |
489 | }, | 440 | }, |
490 | |||
491 | /* Cipher 46 */ | ||
492 | { | 441 | { |
493 | .valid = 1, | 442 | .value = 0x0046, |
494 | .name = TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA, | 443 | .name = TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA, |
495 | .id = TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA, | ||
496 | .algorithm_mkey = SSL_kDHE, | 444 | .algorithm_mkey = SSL_kDHE, |
497 | .algorithm_auth = SSL_aNULL, | 445 | .algorithm_auth = SSL_aNULL, |
498 | .algorithm_enc = SSL_CAMELLIA128, | 446 | .algorithm_enc = SSL_CAMELLIA128, |
@@ -505,12 +453,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
505 | }, | 453 | }, |
506 | #endif /* OPENSSL_NO_CAMELLIA */ | 454 | #endif /* OPENSSL_NO_CAMELLIA */ |
507 | 455 | ||
508 | /* TLS v1.2 ciphersuites */ | 456 | /* |
509 | /* Cipher 67 */ | 457 | * TLSv1.2 DHE cipher suites (RFC 5246, appendix A.5). |
458 | */ | ||
510 | { | 459 | { |
511 | .valid = 1, | 460 | .value = 0x0067, |
512 | .name = TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256, | 461 | .name = TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256, |
513 | .id = TLS1_CK_DHE_RSA_WITH_AES_128_SHA256, | ||
514 | .algorithm_mkey = SSL_kDHE, | 462 | .algorithm_mkey = SSL_kDHE, |
515 | .algorithm_auth = SSL_aRSA, | 463 | .algorithm_auth = SSL_aRSA, |
516 | .algorithm_enc = SSL_AES128, | 464 | .algorithm_enc = SSL_AES128, |
@@ -521,12 +469,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
521 | .strength_bits = 128, | 469 | .strength_bits = 128, |
522 | .alg_bits = 128, | 470 | .alg_bits = 128, |
523 | }, | 471 | }, |
524 | |||
525 | /* Cipher 6B */ | ||
526 | { | 472 | { |
527 | .valid = 1, | 473 | .value = 0x006b, |
528 | .name = TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256, | 474 | .name = TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256, |
529 | .id = TLS1_CK_DHE_RSA_WITH_AES_256_SHA256, | ||
530 | .algorithm_mkey = SSL_kDHE, | 475 | .algorithm_mkey = SSL_kDHE, |
531 | .algorithm_auth = SSL_aRSA, | 476 | .algorithm_auth = SSL_aRSA, |
532 | .algorithm_enc = SSL_AES256, | 477 | .algorithm_enc = SSL_AES256, |
@@ -537,12 +482,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
537 | .strength_bits = 256, | 482 | .strength_bits = 256, |
538 | .alg_bits = 256, | 483 | .alg_bits = 256, |
539 | }, | 484 | }, |
540 | |||
541 | /* Cipher 6C */ | ||
542 | { | 485 | { |
543 | .valid = 1, | 486 | .value = 0x006c, |
544 | .name = TLS1_TXT_ADH_WITH_AES_128_SHA256, | 487 | .name = TLS1_TXT_ADH_WITH_AES_128_SHA256, |
545 | .id = TLS1_CK_ADH_WITH_AES_128_SHA256, | ||
546 | .algorithm_mkey = SSL_kDHE, | 488 | .algorithm_mkey = SSL_kDHE, |
547 | .algorithm_auth = SSL_aNULL, | 489 | .algorithm_auth = SSL_aNULL, |
548 | .algorithm_enc = SSL_AES128, | 490 | .algorithm_enc = SSL_AES128, |
@@ -553,12 +495,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
553 | .strength_bits = 128, | 495 | .strength_bits = 128, |
554 | .alg_bits = 128, | 496 | .alg_bits = 128, |
555 | }, | 497 | }, |
556 | |||
557 | /* Cipher 6D */ | ||
558 | { | 498 | { |
559 | .valid = 1, | 499 | .value = 0x006d, |
560 | .name = TLS1_TXT_ADH_WITH_AES_256_SHA256, | 500 | .name = TLS1_TXT_ADH_WITH_AES_256_SHA256, |
561 | .id = TLS1_CK_ADH_WITH_AES_256_SHA256, | ||
562 | .algorithm_mkey = SSL_kDHE, | 501 | .algorithm_mkey = SSL_kDHE, |
563 | .algorithm_auth = SSL_aNULL, | 502 | .algorithm_auth = SSL_aNULL, |
564 | .algorithm_enc = SSL_AES256, | 503 | .algorithm_enc = SSL_AES256, |
@@ -571,13 +510,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
571 | }, | 510 | }, |
572 | 511 | ||
573 | #ifndef OPENSSL_NO_CAMELLIA | 512 | #ifndef OPENSSL_NO_CAMELLIA |
574 | /* Camellia ciphersuites from RFC4132 (256-bit portion) */ | 513 | /* |
575 | 514 | * TLSv1.0 Camellia 256 bit cipher suites (RFC 4132). | |
576 | /* Cipher 84 */ | 515 | */ |
577 | { | 516 | { |
578 | .valid = 1, | 517 | .value = 0x0084, |
579 | .name = TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA, | 518 | .name = TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA, |
580 | .id = TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA, | ||
581 | .algorithm_mkey = SSL_kRSA, | 519 | .algorithm_mkey = SSL_kRSA, |
582 | .algorithm_auth = SSL_aRSA, | 520 | .algorithm_auth = SSL_aRSA, |
583 | .algorithm_enc = SSL_CAMELLIA256, | 521 | .algorithm_enc = SSL_CAMELLIA256, |
@@ -588,12 +526,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
588 | .strength_bits = 256, | 526 | .strength_bits = 256, |
589 | .alg_bits = 256, | 527 | .alg_bits = 256, |
590 | }, | 528 | }, |
591 | |||
592 | /* Cipher 88 */ | ||
593 | { | 529 | { |
594 | .valid = 1, | 530 | .value = 0x0088, |
595 | .name = TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, | 531 | .name = TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, |
596 | .id = TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, | ||
597 | .algorithm_mkey = SSL_kDHE, | 532 | .algorithm_mkey = SSL_kDHE, |
598 | .algorithm_auth = SSL_aRSA, | 533 | .algorithm_auth = SSL_aRSA, |
599 | .algorithm_enc = SSL_CAMELLIA256, | 534 | .algorithm_enc = SSL_CAMELLIA256, |
@@ -604,12 +539,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
604 | .strength_bits = 256, | 539 | .strength_bits = 256, |
605 | .alg_bits = 256, | 540 | .alg_bits = 256, |
606 | }, | 541 | }, |
607 | |||
608 | /* Cipher 89 */ | ||
609 | { | 542 | { |
610 | .valid = 1, | 543 | .value = 0x0089, |
611 | .name = TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA, | 544 | .name = TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA, |
612 | .id = TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA, | ||
613 | .algorithm_mkey = SSL_kDHE, | 545 | .algorithm_mkey = SSL_kDHE, |
614 | .algorithm_auth = SSL_aNULL, | 546 | .algorithm_auth = SSL_aNULL, |
615 | .algorithm_enc = SSL_CAMELLIA256, | 547 | .algorithm_enc = SSL_CAMELLIA256, |
@@ -623,14 +555,11 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
623 | #endif /* OPENSSL_NO_CAMELLIA */ | 555 | #endif /* OPENSSL_NO_CAMELLIA */ |
624 | 556 | ||
625 | /* | 557 | /* |
626 | * GCM ciphersuites from RFC5288. | 558 | * TLSv1.2 AES GCM cipher suites (RFC 5288). |
627 | */ | 559 | */ |
628 | |||
629 | /* Cipher 9C */ | ||
630 | { | 560 | { |
631 | .valid = 1, | 561 | .value = 0x009c, |
632 | .name = TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256, | 562 | .name = TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256, |
633 | .id = TLS1_CK_RSA_WITH_AES_128_GCM_SHA256, | ||
634 | .algorithm_mkey = SSL_kRSA, | 563 | .algorithm_mkey = SSL_kRSA, |
635 | .algorithm_auth = SSL_aRSA, | 564 | .algorithm_auth = SSL_aRSA, |
636 | .algorithm_enc = SSL_AES128GCM, | 565 | .algorithm_enc = SSL_AES128GCM, |
@@ -641,12 +570,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
641 | .strength_bits = 128, | 570 | .strength_bits = 128, |
642 | .alg_bits = 128, | 571 | .alg_bits = 128, |
643 | }, | 572 | }, |
644 | |||
645 | /* Cipher 9D */ | ||
646 | { | 573 | { |
647 | .valid = 1, | 574 | .value = 0x009d, |
648 | .name = TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384, | 575 | .name = TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384, |
649 | .id = TLS1_CK_RSA_WITH_AES_256_GCM_SHA384, | ||
650 | .algorithm_mkey = SSL_kRSA, | 576 | .algorithm_mkey = SSL_kRSA, |
651 | .algorithm_auth = SSL_aRSA, | 577 | .algorithm_auth = SSL_aRSA, |
652 | .algorithm_enc = SSL_AES256GCM, | 578 | .algorithm_enc = SSL_AES256GCM, |
@@ -657,12 +583,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
657 | .strength_bits = 256, | 583 | .strength_bits = 256, |
658 | .alg_bits = 256, | 584 | .alg_bits = 256, |
659 | }, | 585 | }, |
660 | |||
661 | /* Cipher 9E */ | ||
662 | { | 586 | { |
663 | .valid = 1, | 587 | .value = 0x009e, |
664 | .name = TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256, | 588 | .name = TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256, |
665 | .id = TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256, | ||
666 | .algorithm_mkey = SSL_kDHE, | 589 | .algorithm_mkey = SSL_kDHE, |
667 | .algorithm_auth = SSL_aRSA, | 590 | .algorithm_auth = SSL_aRSA, |
668 | .algorithm_enc = SSL_AES128GCM, | 591 | .algorithm_enc = SSL_AES128GCM, |
@@ -673,12 +596,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
673 | .strength_bits = 128, | 596 | .strength_bits = 128, |
674 | .alg_bits = 128, | 597 | .alg_bits = 128, |
675 | }, | 598 | }, |
676 | |||
677 | /* Cipher 9F */ | ||
678 | { | 599 | { |
679 | .valid = 1, | 600 | .value = 0x009f, |
680 | .name = TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384, | 601 | .name = TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384, |
681 | .id = TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384, | ||
682 | .algorithm_mkey = SSL_kDHE, | 602 | .algorithm_mkey = SSL_kDHE, |
683 | .algorithm_auth = SSL_aRSA, | 603 | .algorithm_auth = SSL_aRSA, |
684 | .algorithm_enc = SSL_AES256GCM, | 604 | .algorithm_enc = SSL_AES256GCM, |
@@ -689,12 +609,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
689 | .strength_bits = 256, | 609 | .strength_bits = 256, |
690 | .alg_bits = 256, | 610 | .alg_bits = 256, |
691 | }, | 611 | }, |
692 | |||
693 | /* Cipher A6 */ | ||
694 | { | 612 | { |
695 | .valid = 1, | 613 | .value = 0x00a6, |
696 | .name = TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256, | 614 | .name = TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256, |
697 | .id = TLS1_CK_ADH_WITH_AES_128_GCM_SHA256, | ||
698 | .algorithm_mkey = SSL_kDHE, | 615 | .algorithm_mkey = SSL_kDHE, |
699 | .algorithm_auth = SSL_aNULL, | 616 | .algorithm_auth = SSL_aNULL, |
700 | .algorithm_enc = SSL_AES128GCM, | 617 | .algorithm_enc = SSL_AES128GCM, |
@@ -705,12 +622,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
705 | .strength_bits = 128, | 622 | .strength_bits = 128, |
706 | .alg_bits = 128, | 623 | .alg_bits = 128, |
707 | }, | 624 | }, |
708 | |||
709 | /* Cipher A7 */ | ||
710 | { | 625 | { |
711 | .valid = 1, | 626 | .value = 0x00a7, |
712 | .name = TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384, | 627 | .name = TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384, |
713 | .id = TLS1_CK_ADH_WITH_AES_256_GCM_SHA384, | ||
714 | .algorithm_mkey = SSL_kDHE, | 628 | .algorithm_mkey = SSL_kDHE, |
715 | .algorithm_auth = SSL_aNULL, | 629 | .algorithm_auth = SSL_aNULL, |
716 | .algorithm_enc = SSL_AES256GCM, | 630 | .algorithm_enc = SSL_AES256GCM, |
@@ -723,13 +637,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
723 | }, | 637 | }, |
724 | 638 | ||
725 | #ifndef OPENSSL_NO_CAMELLIA | 639 | #ifndef OPENSSL_NO_CAMELLIA |
726 | /* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ | 640 | /* |
727 | 641 | * TLSv1.2 Camellia SHA-256 cipher suites (RFC 5932). | |
728 | /* Cipher BA */ | 642 | */ |
729 | { | 643 | { |
730 | .valid = 1, | 644 | .value = 0x00ba, |
731 | .name = TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256, | 645 | .name = TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256, |
732 | .id = TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256, | ||
733 | .algorithm_mkey = SSL_kRSA, | 646 | .algorithm_mkey = SSL_kRSA, |
734 | .algorithm_auth = SSL_aRSA, | 647 | .algorithm_auth = SSL_aRSA, |
735 | .algorithm_enc = SSL_CAMELLIA128, | 648 | .algorithm_enc = SSL_CAMELLIA128, |
@@ -740,12 +653,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
740 | .strength_bits = 128, | 653 | .strength_bits = 128, |
741 | .alg_bits = 128, | 654 | .alg_bits = 128, |
742 | }, | 655 | }, |
743 | |||
744 | /* Cipher BE */ | ||
745 | { | 656 | { |
746 | .valid = 1, | 657 | .value = 0x000be, |
747 | .name = TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, | 658 | .name = TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, |
748 | .id = TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, | ||
749 | .algorithm_mkey = SSL_kDHE, | 659 | .algorithm_mkey = SSL_kDHE, |
750 | .algorithm_auth = SSL_aRSA, | 660 | .algorithm_auth = SSL_aRSA, |
751 | .algorithm_enc = SSL_CAMELLIA128, | 661 | .algorithm_enc = SSL_CAMELLIA128, |
@@ -756,12 +666,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
756 | .strength_bits = 128, | 666 | .strength_bits = 128, |
757 | .alg_bits = 128, | 667 | .alg_bits = 128, |
758 | }, | 668 | }, |
759 | |||
760 | /* Cipher BF */ | ||
761 | { | 669 | { |
762 | .valid = 1, | 670 | .value = 0x00bf, |
763 | .name = TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256, | 671 | .name = TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256, |
764 | .id = TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256, | ||
765 | .algorithm_mkey = SSL_kDHE, | 672 | .algorithm_mkey = SSL_kDHE, |
766 | .algorithm_auth = SSL_aNULL, | 673 | .algorithm_auth = SSL_aNULL, |
767 | .algorithm_enc = SSL_CAMELLIA128, | 674 | .algorithm_enc = SSL_CAMELLIA128, |
@@ -772,12 +679,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
772 | .strength_bits = 128, | 679 | .strength_bits = 128, |
773 | .alg_bits = 128, | 680 | .alg_bits = 128, |
774 | }, | 681 | }, |
775 | |||
776 | /* Cipher C0 */ | ||
777 | { | 682 | { |
778 | .valid = 1, | 683 | .value = 0x00c0, |
779 | .name = TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256, | 684 | .name = TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256, |
780 | .id = TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256, | ||
781 | .algorithm_mkey = SSL_kRSA, | 685 | .algorithm_mkey = SSL_kRSA, |
782 | .algorithm_auth = SSL_aRSA, | 686 | .algorithm_auth = SSL_aRSA, |
783 | .algorithm_enc = SSL_CAMELLIA256, | 687 | .algorithm_enc = SSL_CAMELLIA256, |
@@ -788,12 +692,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
788 | .strength_bits = 256, | 692 | .strength_bits = 256, |
789 | .alg_bits = 256, | 693 | .alg_bits = 256, |
790 | }, | 694 | }, |
791 | |||
792 | /* Cipher C4 */ | ||
793 | { | 695 | { |
794 | .valid = 1, | 696 | .value = 0x00c4, |
795 | .name = TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, | 697 | .name = TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, |
796 | .id = TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, | ||
797 | .algorithm_mkey = SSL_kDHE, | 698 | .algorithm_mkey = SSL_kDHE, |
798 | .algorithm_auth = SSL_aRSA, | 699 | .algorithm_auth = SSL_aRSA, |
799 | .algorithm_enc = SSL_CAMELLIA256, | 700 | .algorithm_enc = SSL_CAMELLIA256, |
@@ -804,12 +705,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
804 | .strength_bits = 256, | 705 | .strength_bits = 256, |
805 | .alg_bits = 256, | 706 | .alg_bits = 256, |
806 | }, | 707 | }, |
807 | |||
808 | /* Cipher C5 */ | ||
809 | { | 708 | { |
810 | .valid = 1, | 709 | .value = 0x00c5, |
811 | .name = TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256, | 710 | .name = TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256, |
812 | .id = TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256, | ||
813 | .algorithm_mkey = SSL_kDHE, | 711 | .algorithm_mkey = SSL_kDHE, |
814 | .algorithm_auth = SSL_aNULL, | 712 | .algorithm_auth = SSL_aNULL, |
815 | .algorithm_enc = SSL_CAMELLIA256, | 713 | .algorithm_enc = SSL_CAMELLIA256, |
@@ -822,16 +720,13 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
822 | }, | 720 | }, |
823 | #endif /* OPENSSL_NO_CAMELLIA */ | 721 | #endif /* OPENSSL_NO_CAMELLIA */ |
824 | 722 | ||
723 | #ifdef LIBRESSL_HAS_TLS1_3 | ||
825 | /* | 724 | /* |
826 | * TLSv1.3 cipher suites. | 725 | * TLSv1.3 cipher suites (RFC 8446). |
827 | */ | 726 | */ |
828 | |||
829 | #ifdef LIBRESSL_HAS_TLS1_3 | ||
830 | /* Cipher 1301 */ | ||
831 | { | 727 | { |
832 | .valid = 1, | 728 | .value = 0x1301, |
833 | .name = TLS1_3_RFC_AES_128_GCM_SHA256, | 729 | .name = TLS1_3_RFC_AES_128_GCM_SHA256, |
834 | .id = TLS1_3_CK_AES_128_GCM_SHA256, | ||
835 | .algorithm_mkey = SSL_kTLS1_3, | 730 | .algorithm_mkey = SSL_kTLS1_3, |
836 | .algorithm_auth = SSL_aTLS1_3, | 731 | .algorithm_auth = SSL_aTLS1_3, |
837 | .algorithm_enc = SSL_AES128GCM, | 732 | .algorithm_enc = SSL_AES128GCM, |
@@ -842,12 +737,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
842 | .strength_bits = 128, | 737 | .strength_bits = 128, |
843 | .alg_bits = 128, | 738 | .alg_bits = 128, |
844 | }, | 739 | }, |
845 | |||
846 | /* Cipher 1302 */ | ||
847 | { | 740 | { |
848 | .valid = 1, | 741 | .value = 0x1302, |
849 | .name = TLS1_3_RFC_AES_256_GCM_SHA384, | 742 | .name = TLS1_3_RFC_AES_256_GCM_SHA384, |
850 | .id = TLS1_3_CK_AES_256_GCM_SHA384, | ||
851 | .algorithm_mkey = SSL_kTLS1_3, | 743 | .algorithm_mkey = SSL_kTLS1_3, |
852 | .algorithm_auth = SSL_aTLS1_3, | 744 | .algorithm_auth = SSL_aTLS1_3, |
853 | .algorithm_enc = SSL_AES256GCM, | 745 | .algorithm_enc = SSL_AES256GCM, |
@@ -858,12 +750,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
858 | .strength_bits = 256, | 750 | .strength_bits = 256, |
859 | .alg_bits = 256, | 751 | .alg_bits = 256, |
860 | }, | 752 | }, |
861 | |||
862 | /* Cipher 1303 */ | ||
863 | { | 753 | { |
864 | .valid = 1, | 754 | .value = 0x1303, |
865 | .name = TLS1_3_RFC_CHACHA20_POLY1305_SHA256, | 755 | .name = TLS1_3_RFC_CHACHA20_POLY1305_SHA256, |
866 | .id = TLS1_3_CK_CHACHA20_POLY1305_SHA256, | ||
867 | .algorithm_mkey = SSL_kTLS1_3, | 756 | .algorithm_mkey = SSL_kTLS1_3, |
868 | .algorithm_auth = SSL_aTLS1_3, | 757 | .algorithm_auth = SSL_aTLS1_3, |
869 | .algorithm_enc = SSL_CHACHA20POLY1305, | 758 | .algorithm_enc = SSL_CHACHA20POLY1305, |
@@ -876,11 +765,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
876 | }, | 765 | }, |
877 | #endif | 766 | #endif |
878 | 767 | ||
879 | /* Cipher C006 */ | 768 | /* |
769 | * TLSv1.0 Elliptic Curve cipher suites (RFC 4492, section 6). | ||
770 | */ | ||
880 | { | 771 | { |
881 | .valid = 1, | 772 | .value = 0xc006, |
882 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA, | 773 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA, |
883 | .id = TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA, | ||
884 | .algorithm_mkey = SSL_kECDHE, | 774 | .algorithm_mkey = SSL_kECDHE, |
885 | .algorithm_auth = SSL_aECDSA, | 775 | .algorithm_auth = SSL_aECDSA, |
886 | .algorithm_enc = SSL_eNULL, | 776 | .algorithm_enc = SSL_eNULL, |
@@ -891,12 +781,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
891 | .strength_bits = 0, | 781 | .strength_bits = 0, |
892 | .alg_bits = 0, | 782 | .alg_bits = 0, |
893 | }, | 783 | }, |
894 | |||
895 | /* Cipher C007 */ | ||
896 | { | 784 | { |
897 | .valid = 1, | 785 | .value = 0xc007, |
898 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA, | 786 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA, |
899 | .id = TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA, | ||
900 | .algorithm_mkey = SSL_kECDHE, | 787 | .algorithm_mkey = SSL_kECDHE, |
901 | .algorithm_auth = SSL_aECDSA, | 788 | .algorithm_auth = SSL_aECDSA, |
902 | .algorithm_enc = SSL_RC4, | 789 | .algorithm_enc = SSL_RC4, |
@@ -907,12 +794,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
907 | .strength_bits = 128, | 794 | .strength_bits = 128, |
908 | .alg_bits = 128, | 795 | .alg_bits = 128, |
909 | }, | 796 | }, |
910 | |||
911 | /* Cipher C008 */ | ||
912 | { | 797 | { |
913 | .valid = 1, | 798 | .value = 0xc008, |
914 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, | 799 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, |
915 | .id = TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA, | ||
916 | .algorithm_mkey = SSL_kECDHE, | 800 | .algorithm_mkey = SSL_kECDHE, |
917 | .algorithm_auth = SSL_aECDSA, | 801 | .algorithm_auth = SSL_aECDSA, |
918 | .algorithm_enc = SSL_3DES, | 802 | .algorithm_enc = SSL_3DES, |
@@ -923,12 +807,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
923 | .strength_bits = 112, | 807 | .strength_bits = 112, |
924 | .alg_bits = 168, | 808 | .alg_bits = 168, |
925 | }, | 809 | }, |
926 | |||
927 | /* Cipher C009 */ | ||
928 | { | 810 | { |
929 | .valid = 1, | 811 | .value = 0xc009, |
930 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, | 812 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, |
931 | .id = TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, | ||
932 | .algorithm_mkey = SSL_kECDHE, | 813 | .algorithm_mkey = SSL_kECDHE, |
933 | .algorithm_auth = SSL_aECDSA, | 814 | .algorithm_auth = SSL_aECDSA, |
934 | .algorithm_enc = SSL_AES128, | 815 | .algorithm_enc = SSL_AES128, |
@@ -939,12 +820,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
939 | .strength_bits = 128, | 820 | .strength_bits = 128, |
940 | .alg_bits = 128, | 821 | .alg_bits = 128, |
941 | }, | 822 | }, |
942 | |||
943 | /* Cipher C00A */ | ||
944 | { | 823 | { |
945 | .valid = 1, | 824 | .value = 0xc00a, |
946 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, | 825 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, |
947 | .id = TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, | ||
948 | .algorithm_mkey = SSL_kECDHE, | 826 | .algorithm_mkey = SSL_kECDHE, |
949 | .algorithm_auth = SSL_aECDSA, | 827 | .algorithm_auth = SSL_aECDSA, |
950 | .algorithm_enc = SSL_AES256, | 828 | .algorithm_enc = SSL_AES256, |
@@ -955,12 +833,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
955 | .strength_bits = 256, | 833 | .strength_bits = 256, |
956 | .alg_bits = 256, | 834 | .alg_bits = 256, |
957 | }, | 835 | }, |
958 | |||
959 | /* Cipher C010 */ | ||
960 | { | 836 | { |
961 | .valid = 1, | 837 | .value = 0xc010, |
962 | .name = TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA, | 838 | .name = TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA, |
963 | .id = TLS1_CK_ECDHE_RSA_WITH_NULL_SHA, | ||
964 | .algorithm_mkey = SSL_kECDHE, | 839 | .algorithm_mkey = SSL_kECDHE, |
965 | .algorithm_auth = SSL_aRSA, | 840 | .algorithm_auth = SSL_aRSA, |
966 | .algorithm_enc = SSL_eNULL, | 841 | .algorithm_enc = SSL_eNULL, |
@@ -971,12 +846,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
971 | .strength_bits = 0, | 846 | .strength_bits = 0, |
972 | .alg_bits = 0, | 847 | .alg_bits = 0, |
973 | }, | 848 | }, |
974 | |||
975 | /* Cipher C011 */ | ||
976 | { | 849 | { |
977 | .valid = 1, | 850 | .value = 0xc011, |
978 | .name = TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA, | 851 | .name = TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA, |
979 | .id = TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA, | ||
980 | .algorithm_mkey = SSL_kECDHE, | 852 | .algorithm_mkey = SSL_kECDHE, |
981 | .algorithm_auth = SSL_aRSA, | 853 | .algorithm_auth = SSL_aRSA, |
982 | .algorithm_enc = SSL_RC4, | 854 | .algorithm_enc = SSL_RC4, |
@@ -987,12 +859,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
987 | .strength_bits = 128, | 859 | .strength_bits = 128, |
988 | .alg_bits = 128, | 860 | .alg_bits = 128, |
989 | }, | 861 | }, |
990 | |||
991 | /* Cipher C012 */ | ||
992 | { | 862 | { |
993 | .valid = 1, | 863 | .value = 0xc012, |
994 | .name = TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA, | 864 | .name = TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA, |
995 | .id = TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA, | ||
996 | .algorithm_mkey = SSL_kECDHE, | 865 | .algorithm_mkey = SSL_kECDHE, |
997 | .algorithm_auth = SSL_aRSA, | 866 | .algorithm_auth = SSL_aRSA, |
998 | .algorithm_enc = SSL_3DES, | 867 | .algorithm_enc = SSL_3DES, |
@@ -1003,12 +872,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1003 | .strength_bits = 112, | 872 | .strength_bits = 112, |
1004 | .alg_bits = 168, | 873 | .alg_bits = 168, |
1005 | }, | 874 | }, |
1006 | |||
1007 | /* Cipher C013 */ | ||
1008 | { | 875 | { |
1009 | .valid = 1, | 876 | .value = 0xc013, |
1010 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA, | 877 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA, |
1011 | .id = TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA, | ||
1012 | .algorithm_mkey = SSL_kECDHE, | 878 | .algorithm_mkey = SSL_kECDHE, |
1013 | .algorithm_auth = SSL_aRSA, | 879 | .algorithm_auth = SSL_aRSA, |
1014 | .algorithm_enc = SSL_AES128, | 880 | .algorithm_enc = SSL_AES128, |
@@ -1019,12 +885,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1019 | .strength_bits = 128, | 885 | .strength_bits = 128, |
1020 | .alg_bits = 128, | 886 | .alg_bits = 128, |
1021 | }, | 887 | }, |
1022 | |||
1023 | /* Cipher C014 */ | ||
1024 | { | 888 | { |
1025 | .valid = 1, | 889 | .value = 0xc014, |
1026 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA, | 890 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA, |
1027 | .id = TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA, | ||
1028 | .algorithm_mkey = SSL_kECDHE, | 891 | .algorithm_mkey = SSL_kECDHE, |
1029 | .algorithm_auth = SSL_aRSA, | 892 | .algorithm_auth = SSL_aRSA, |
1030 | .algorithm_enc = SSL_AES256, | 893 | .algorithm_enc = SSL_AES256, |
@@ -1035,12 +898,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1035 | .strength_bits = 256, | 898 | .strength_bits = 256, |
1036 | .alg_bits = 256, | 899 | .alg_bits = 256, |
1037 | }, | 900 | }, |
1038 | |||
1039 | /* Cipher C015 */ | ||
1040 | { | 901 | { |
1041 | .valid = 1, | 902 | .value = 0xc015, |
1042 | .name = TLS1_TXT_ECDH_anon_WITH_NULL_SHA, | 903 | .name = TLS1_TXT_ECDH_anon_WITH_NULL_SHA, |
1043 | .id = TLS1_CK_ECDH_anon_WITH_NULL_SHA, | ||
1044 | .algorithm_mkey = SSL_kECDHE, | 904 | .algorithm_mkey = SSL_kECDHE, |
1045 | .algorithm_auth = SSL_aNULL, | 905 | .algorithm_auth = SSL_aNULL, |
1046 | .algorithm_enc = SSL_eNULL, | 906 | .algorithm_enc = SSL_eNULL, |
@@ -1051,12 +911,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1051 | .strength_bits = 0, | 911 | .strength_bits = 0, |
1052 | .alg_bits = 0, | 912 | .alg_bits = 0, |
1053 | }, | 913 | }, |
1054 | |||
1055 | /* Cipher C016 */ | ||
1056 | { | 914 | { |
1057 | .valid = 1, | 915 | .value = 0xc016, |
1058 | .name = TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA, | 916 | .name = TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA, |
1059 | .id = TLS1_CK_ECDH_anon_WITH_RC4_128_SHA, | ||
1060 | .algorithm_mkey = SSL_kECDHE, | 917 | .algorithm_mkey = SSL_kECDHE, |
1061 | .algorithm_auth = SSL_aNULL, | 918 | .algorithm_auth = SSL_aNULL, |
1062 | .algorithm_enc = SSL_RC4, | 919 | .algorithm_enc = SSL_RC4, |
@@ -1067,12 +924,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1067 | .strength_bits = 128, | 924 | .strength_bits = 128, |
1068 | .alg_bits = 128, | 925 | .alg_bits = 128, |
1069 | }, | 926 | }, |
1070 | |||
1071 | /* Cipher C017 */ | ||
1072 | { | 927 | { |
1073 | .valid = 1, | 928 | .value = 0xc017, |
1074 | .name = TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA, | 929 | .name = TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA, |
1075 | .id = TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA, | ||
1076 | .algorithm_mkey = SSL_kECDHE, | 930 | .algorithm_mkey = SSL_kECDHE, |
1077 | .algorithm_auth = SSL_aNULL, | 931 | .algorithm_auth = SSL_aNULL, |
1078 | .algorithm_enc = SSL_3DES, | 932 | .algorithm_enc = SSL_3DES, |
@@ -1083,12 +937,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1083 | .strength_bits = 112, | 937 | .strength_bits = 112, |
1084 | .alg_bits = 168, | 938 | .alg_bits = 168, |
1085 | }, | 939 | }, |
1086 | |||
1087 | /* Cipher C018 */ | ||
1088 | { | 940 | { |
1089 | .valid = 1, | 941 | .value = 0xc018, |
1090 | .name = TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA, | 942 | .name = TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA, |
1091 | .id = TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA, | ||
1092 | .algorithm_mkey = SSL_kECDHE, | 943 | .algorithm_mkey = SSL_kECDHE, |
1093 | .algorithm_auth = SSL_aNULL, | 944 | .algorithm_auth = SSL_aNULL, |
1094 | .algorithm_enc = SSL_AES128, | 945 | .algorithm_enc = SSL_AES128, |
@@ -1099,12 +950,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1099 | .strength_bits = 128, | 950 | .strength_bits = 128, |
1100 | .alg_bits = 128, | 951 | .alg_bits = 128, |
1101 | }, | 952 | }, |
1102 | |||
1103 | /* Cipher C019 */ | ||
1104 | { | 953 | { |
1105 | .valid = 1, | 954 | .value = 0xc019, |
1106 | .name = TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA, | 955 | .name = TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA, |
1107 | .id = TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA, | ||
1108 | .algorithm_mkey = SSL_kECDHE, | 956 | .algorithm_mkey = SSL_kECDHE, |
1109 | .algorithm_auth = SSL_aNULL, | 957 | .algorithm_auth = SSL_aNULL, |
1110 | .algorithm_enc = SSL_AES256, | 958 | .algorithm_enc = SSL_AES256, |
@@ -1116,14 +964,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1116 | .alg_bits = 256, | 964 | .alg_bits = 256, |
1117 | }, | 965 | }, |
1118 | 966 | ||
1119 | 967 | /* | |
1120 | /* HMAC based TLS v1.2 ciphersuites from RFC5289 */ | 968 | * TLSv1.2 Elliptic Curve HMAC cipher suites (RFC 5289, section 3.1). |
1121 | 969 | */ | |
1122 | /* Cipher C023 */ | ||
1123 | { | 970 | { |
1124 | .valid = 1, | 971 | .value = 0xc023, |
1125 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256, | 972 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256, |
1126 | .id = TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256, | ||
1127 | .algorithm_mkey = SSL_kECDHE, | 973 | .algorithm_mkey = SSL_kECDHE, |
1128 | .algorithm_auth = SSL_aECDSA, | 974 | .algorithm_auth = SSL_aECDSA, |
1129 | .algorithm_enc = SSL_AES128, | 975 | .algorithm_enc = SSL_AES128, |
@@ -1134,12 +980,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1134 | .strength_bits = 128, | 980 | .strength_bits = 128, |
1135 | .alg_bits = 128, | 981 | .alg_bits = 128, |
1136 | }, | 982 | }, |
1137 | |||
1138 | /* Cipher C024 */ | ||
1139 | { | 983 | { |
1140 | .valid = 1, | 984 | .value = 0xc024, |
1141 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384, | 985 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384, |
1142 | .id = TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384, | ||
1143 | .algorithm_mkey = SSL_kECDHE, | 986 | .algorithm_mkey = SSL_kECDHE, |
1144 | .algorithm_auth = SSL_aECDSA, | 987 | .algorithm_auth = SSL_aECDSA, |
1145 | .algorithm_enc = SSL_AES256, | 988 | .algorithm_enc = SSL_AES256, |
@@ -1150,12 +993,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1150 | .strength_bits = 256, | 993 | .strength_bits = 256, |
1151 | .alg_bits = 256, | 994 | .alg_bits = 256, |
1152 | }, | 995 | }, |
1153 | |||
1154 | /* Cipher C027 */ | ||
1155 | { | 996 | { |
1156 | .valid = 1, | 997 | .value = 0xc027, |
1157 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256, | 998 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256, |
1158 | .id = TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256, | ||
1159 | .algorithm_mkey = SSL_kECDHE, | 999 | .algorithm_mkey = SSL_kECDHE, |
1160 | .algorithm_auth = SSL_aRSA, | 1000 | .algorithm_auth = SSL_aRSA, |
1161 | .algorithm_enc = SSL_AES128, | 1001 | .algorithm_enc = SSL_AES128, |
@@ -1166,12 +1006,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1166 | .strength_bits = 128, | 1006 | .strength_bits = 128, |
1167 | .alg_bits = 128, | 1007 | .alg_bits = 128, |
1168 | }, | 1008 | }, |
1169 | |||
1170 | /* Cipher C028 */ | ||
1171 | { | 1009 | { |
1172 | .valid = 1, | 1010 | .value = 0xc028, |
1173 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384, | 1011 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384, |
1174 | .id = TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384, | ||
1175 | .algorithm_mkey = SSL_kECDHE, | 1012 | .algorithm_mkey = SSL_kECDHE, |
1176 | .algorithm_auth = SSL_aRSA, | 1013 | .algorithm_auth = SSL_aRSA, |
1177 | .algorithm_enc = SSL_AES256, | 1014 | .algorithm_enc = SSL_AES256, |
@@ -1183,13 +1020,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1183 | .alg_bits = 256, | 1020 | .alg_bits = 256, |
1184 | }, | 1021 | }, |
1185 | 1022 | ||
1186 | /* GCM based TLS v1.2 ciphersuites from RFC5289 */ | 1023 | /* |
1187 | 1024 | * TLSv1.2 Elliptic Curve GCM cipher suites (RFC 5289, section 3.2). | |
1188 | /* Cipher C02B */ | 1025 | */ |
1189 | { | 1026 | { |
1190 | .valid = 1, | 1027 | .value = 0xc02b, |
1191 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, | 1028 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, |
1192 | .id = TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, | ||
1193 | .algorithm_mkey = SSL_kECDHE, | 1029 | .algorithm_mkey = SSL_kECDHE, |
1194 | .algorithm_auth = SSL_aECDSA, | 1030 | .algorithm_auth = SSL_aECDSA, |
1195 | .algorithm_enc = SSL_AES128GCM, | 1031 | .algorithm_enc = SSL_AES128GCM, |
@@ -1200,12 +1036,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1200 | .strength_bits = 128, | 1036 | .strength_bits = 128, |
1201 | .alg_bits = 128, | 1037 | .alg_bits = 128, |
1202 | }, | 1038 | }, |
1203 | |||
1204 | /* Cipher C02C */ | ||
1205 | { | 1039 | { |
1206 | .valid = 1, | 1040 | .value = 0xc02c, |
1207 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, | 1041 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, |
1208 | .id = TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, | ||
1209 | .algorithm_mkey = SSL_kECDHE, | 1042 | .algorithm_mkey = SSL_kECDHE, |
1210 | .algorithm_auth = SSL_aECDSA, | 1043 | .algorithm_auth = SSL_aECDSA, |
1211 | .algorithm_enc = SSL_AES256GCM, | 1044 | .algorithm_enc = SSL_AES256GCM, |
@@ -1216,12 +1049,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1216 | .strength_bits = 256, | 1049 | .strength_bits = 256, |
1217 | .alg_bits = 256, | 1050 | .alg_bits = 256, |
1218 | }, | 1051 | }, |
1219 | |||
1220 | /* Cipher C02F */ | ||
1221 | { | 1052 | { |
1222 | .valid = 1, | 1053 | .value = 0xc02f, |
1223 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256, | 1054 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256, |
1224 | .id = TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256, | ||
1225 | .algorithm_mkey = SSL_kECDHE, | 1055 | .algorithm_mkey = SSL_kECDHE, |
1226 | .algorithm_auth = SSL_aRSA, | 1056 | .algorithm_auth = SSL_aRSA, |
1227 | .algorithm_enc = SSL_AES128GCM, | 1057 | .algorithm_enc = SSL_AES128GCM, |
@@ -1232,12 +1062,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1232 | .strength_bits = 128, | 1062 | .strength_bits = 128, |
1233 | .alg_bits = 128, | 1063 | .alg_bits = 128, |
1234 | }, | 1064 | }, |
1235 | |||
1236 | /* Cipher C030 */ | ||
1237 | { | 1065 | { |
1238 | .valid = 1, | 1066 | .value = 0xc030, |
1239 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384, | 1067 | .name = TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384, |
1240 | .id = TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384, | ||
1241 | .algorithm_mkey = SSL_kECDHE, | 1068 | .algorithm_mkey = SSL_kECDHE, |
1242 | .algorithm_auth = SSL_aRSA, | 1069 | .algorithm_auth = SSL_aRSA, |
1243 | .algorithm_enc = SSL_AES256GCM, | 1070 | .algorithm_enc = SSL_AES256GCM, |
@@ -1249,11 +1076,12 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1249 | .alg_bits = 256, | 1076 | .alg_bits = 256, |
1250 | }, | 1077 | }, |
1251 | 1078 | ||
1252 | /* Cipher CCA8 */ | 1079 | /* |
1080 | * TLSv1.2 ChaCha20-Poly1305 cipher suites (RFC 7905). | ||
1081 | */ | ||
1253 | { | 1082 | { |
1254 | .valid = 1, | 1083 | .value = 0xcca8, |
1255 | .name = TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305, | 1084 | .name = TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305, |
1256 | .id = TLS1_CK_ECDHE_RSA_CHACHA20_POLY1305, | ||
1257 | .algorithm_mkey = SSL_kECDHE, | 1085 | .algorithm_mkey = SSL_kECDHE, |
1258 | .algorithm_auth = SSL_aRSA, | 1086 | .algorithm_auth = SSL_aRSA, |
1259 | .algorithm_enc = SSL_CHACHA20POLY1305, | 1087 | .algorithm_enc = SSL_CHACHA20POLY1305, |
@@ -1264,12 +1092,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1264 | .strength_bits = 256, | 1092 | .strength_bits = 256, |
1265 | .alg_bits = 256, | 1093 | .alg_bits = 256, |
1266 | }, | 1094 | }, |
1267 | |||
1268 | /* Cipher CCA9 */ | ||
1269 | { | 1095 | { |
1270 | .valid = 1, | 1096 | .value = 0xcca9, |
1271 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, | 1097 | .name = TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, |
1272 | .id = TLS1_CK_ECDHE_ECDSA_CHACHA20_POLY1305, | ||
1273 | .algorithm_mkey = SSL_kECDHE, | 1098 | .algorithm_mkey = SSL_kECDHE, |
1274 | .algorithm_auth = SSL_aECDSA, | 1099 | .algorithm_auth = SSL_aECDSA, |
1275 | .algorithm_enc = SSL_CHACHA20POLY1305, | 1100 | .algorithm_enc = SSL_CHACHA20POLY1305, |
@@ -1280,12 +1105,9 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1280 | .strength_bits = 256, | 1105 | .strength_bits = 256, |
1281 | .alg_bits = 256, | 1106 | .alg_bits = 256, |
1282 | }, | 1107 | }, |
1283 | |||
1284 | /* Cipher CCAA */ | ||
1285 | { | 1108 | { |
1286 | .valid = 1, | 1109 | .value = 0xccaa, |
1287 | .name = TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305, | 1110 | .name = TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305, |
1288 | .id = TLS1_CK_DHE_RSA_CHACHA20_POLY1305, | ||
1289 | .algorithm_mkey = SSL_kDHE, | 1111 | .algorithm_mkey = SSL_kDHE, |
1290 | .algorithm_auth = SSL_aRSA, | 1112 | .algorithm_auth = SSL_aRSA, |
1291 | .algorithm_enc = SSL_CHACHA20POLY1305, | 1113 | .algorithm_enc = SSL_CHACHA20POLY1305, |
@@ -1296,8 +1118,6 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
1296 | .strength_bits = 256, | 1118 | .strength_bits = 256, |
1297 | .alg_bits = 256, | 1119 | .alg_bits = 256, |
1298 | }, | 1120 | }, |
1299 | |||
1300 | /* end of list */ | ||
1301 | }; | 1121 | }; |
1302 | 1122 | ||
1303 | int | 1123 | int |
@@ -1316,37 +1136,19 @@ ssl3_get_cipher(unsigned int u) | |||
1316 | } | 1136 | } |
1317 | 1137 | ||
1318 | static int | 1138 | static int |
1319 | ssl3_cipher_id_cmp(const void *id, const void *cipher) | 1139 | ssl3_cipher_value_cmp(const void *value, const void *cipher) |
1320 | { | 1140 | { |
1321 | unsigned long a = *(const unsigned long *)id; | 1141 | uint16_t a = *(const uint16_t *)value; |
1322 | unsigned long b = ((const SSL_CIPHER *)cipher)->id; | 1142 | uint16_t b = ((const SSL_CIPHER *)cipher)->value; |
1323 | 1143 | ||
1324 | return a < b ? -1 : a > b; | 1144 | return a < b ? -1 : a > b; |
1325 | } | 1145 | } |
1326 | 1146 | ||
1327 | const SSL_CIPHER * | 1147 | const SSL_CIPHER * |
1328 | ssl3_get_cipher_by_id(unsigned long id) | ||
1329 | { | ||
1330 | const SSL_CIPHER *cipher; | ||
1331 | |||
1332 | cipher = bsearch(&id, ssl3_ciphers, SSL3_NUM_CIPHERS, sizeof(*cipher), | ||
1333 | ssl3_cipher_id_cmp); | ||
1334 | if (cipher != NULL && cipher->valid == 1) | ||
1335 | return cipher; | ||
1336 | |||
1337 | return NULL; | ||
1338 | } | ||
1339 | |||
1340 | const SSL_CIPHER * | ||
1341 | ssl3_get_cipher_by_value(uint16_t value) | 1148 | ssl3_get_cipher_by_value(uint16_t value) |
1342 | { | 1149 | { |
1343 | return ssl3_get_cipher_by_id(SSL3_CK_ID | value); | 1150 | return bsearch(&value, ssl3_ciphers, SSL3_NUM_CIPHERS, |
1344 | } | 1151 | sizeof(ssl3_ciphers[0]), ssl3_cipher_value_cmp); |
1345 | |||
1346 | uint16_t | ||
1347 | ssl3_cipher_get_value(const SSL_CIPHER *c) | ||
1348 | { | ||
1349 | return (c->id & SSL3_CK_VALUE_MASK); | ||
1350 | } | 1152 | } |
1351 | 1153 | ||
1352 | int | 1154 | int |
diff --git a/src/lib/libssl/ssl_asn1.c b/src/lib/libssl/ssl_asn1.c index ef34cbdb04..fcf4631a59 100644 --- a/src/lib/libssl/ssl_asn1.c +++ b/src/lib/libssl/ssl_asn1.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_asn1.c,v 1.68 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_asn1.c,v 1.69 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2016 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2016 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -51,7 +51,6 @@ SSL_SESSION_encode(SSL_SESSION *s, unsigned char **out, size_t *out_len, | |||
51 | CBB peer_cert, sidctx, verify_result, hostname, lifetime, ticket, value; | 51 | CBB peer_cert, sidctx, verify_result, hostname, lifetime, ticket, value; |
52 | unsigned char *peer_cert_bytes = NULL; | 52 | unsigned char *peer_cert_bytes = NULL; |
53 | int len, rv = 0; | 53 | int len, rv = 0; |
54 | uint16_t cid; | ||
55 | 54 | ||
56 | if (!CBB_init(&cbb, 0)) | 55 | if (!CBB_init(&cbb, 0)) |
57 | goto err; | 56 | goto err; |
@@ -69,11 +68,10 @@ SSL_SESSION_encode(SSL_SESSION *s, unsigned char **out, size_t *out_len, | |||
69 | if (!CBB_add_asn1_uint64(&session, s->ssl_version)) | 68 | if (!CBB_add_asn1_uint64(&session, s->ssl_version)) |
70 | goto err; | 69 | goto err; |
71 | 70 | ||
72 | /* Cipher suite ID. */ | 71 | /* Cipher suite value. */ |
73 | cid = (uint16_t)(s->cipher_id & SSL3_CK_VALUE_MASK); | ||
74 | if (!CBB_add_asn1(&session, &cipher_suite, CBS_ASN1_OCTETSTRING)) | 72 | if (!CBB_add_asn1(&session, &cipher_suite, CBS_ASN1_OCTETSTRING)) |
75 | goto err; | 73 | goto err; |
76 | if (!CBB_add_u16(&cipher_suite, cid)) | 74 | if (!CBB_add_u16(&cipher_suite, s->cipher_value)) |
77 | goto err; | 75 | goto err; |
78 | 76 | ||
79 | /* Session ID - zero length for a ticket. */ | 77 | /* Session ID - zero length for a ticket. */ |
@@ -193,7 +191,7 @@ SSL_SESSION_ticket(SSL_SESSION *ss, unsigned char **out, size_t *out_len) | |||
193 | if (ss == NULL) | 191 | if (ss == NULL) |
194 | return 0; | 192 | return 0; |
195 | 193 | ||
196 | if (ss->cipher_id == 0) | 194 | if (ss->cipher_value == 0) |
197 | return 0; | 195 | return 0; |
198 | 196 | ||
199 | return SSL_SESSION_encode(ss, out, out_len, 1); | 197 | return SSL_SESSION_encode(ss, out, out_len, 1); |
@@ -209,7 +207,7 @@ i2d_SSL_SESSION(SSL_SESSION *ss, unsigned char **pp) | |||
209 | if (ss == NULL) | 207 | if (ss == NULL) |
210 | return 0; | 208 | return 0; |
211 | 209 | ||
212 | if (ss->cipher_id == 0) | 210 | if (ss->cipher_value == 0) |
213 | return 0; | 211 | return 0; |
214 | 212 | ||
215 | if (!SSL_SESSION_encode(ss, &data, &data_len, 0)) | 213 | if (!SSL_SESSION_encode(ss, &data, &data_len, 0)) |
@@ -244,7 +242,6 @@ d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length) | |||
244 | CBS hostname, ticket; | 242 | CBS hostname, ticket; |
245 | uint64_t version, tls_version, stime, timeout, verify_result, lifetime; | 243 | uint64_t version, tls_version, stime, timeout, verify_result, lifetime; |
246 | const unsigned char *peer_cert_bytes; | 244 | const unsigned char *peer_cert_bytes; |
247 | uint16_t cipher_value; | ||
248 | SSL_SESSION *s = NULL; | 245 | SSL_SESSION *s = NULL; |
249 | size_t data_len; | 246 | size_t data_len; |
250 | int present; | 247 | int present; |
@@ -277,14 +274,13 @@ d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length) | |||
277 | goto err; | 274 | goto err; |
278 | s->ssl_version = (int)tls_version; | 275 | s->ssl_version = (int)tls_version; |
279 | 276 | ||
280 | /* Cipher suite. */ | 277 | /* Cipher suite value. */ |
281 | if (!CBS_get_asn1(&session, &cipher_suite, CBS_ASN1_OCTETSTRING)) | 278 | if (!CBS_get_asn1(&session, &cipher_suite, CBS_ASN1_OCTETSTRING)) |
282 | goto err; | 279 | goto err; |
283 | if (!CBS_get_u16(&cipher_suite, &cipher_value)) | 280 | if (!CBS_get_u16(&cipher_suite, &s->cipher_value)) |
284 | goto err; | 281 | goto err; |
285 | if (CBS_len(&cipher_suite) != 0) | 282 | if (CBS_len(&cipher_suite) != 0) |
286 | goto err; | 283 | goto err; |
287 | s->cipher_id = SSL3_CK_ID | cipher_value; | ||
288 | 284 | ||
289 | /* Session ID. */ | 285 | /* Session ID. */ |
290 | if (!CBS_get_asn1(&session, &session_id, CBS_ASN1_OCTETSTRING)) | 286 | if (!CBS_get_asn1(&session, &session_id, CBS_ASN1_OCTETSTRING)) |
diff --git a/src/lib/libssl/ssl_ciph.c b/src/lib/libssl/ssl_ciph.c index 7c32354902..dce141101d 100644 --- a/src/lib/libssl/ssl_ciph.c +++ b/src/lib/libssl/ssl_ciph.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_ciph.c,v 1.145 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_ciph.c,v 1.146 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -373,21 +373,18 @@ static const SSL_CIPHER cipher_aliases[] = { | |||
373 | /* cipher suite aliases */ | 373 | /* cipher suite aliases */ |
374 | #ifdef LIBRESSL_HAS_TLS1_3 | 374 | #ifdef LIBRESSL_HAS_TLS1_3 |
375 | { | 375 | { |
376 | .valid = 1, | 376 | .value = 0x1301, |
377 | .name = "TLS_AES_128_GCM_SHA256", | 377 | .name = "TLS_AES_128_GCM_SHA256", |
378 | .id = TLS1_3_CK_AES_128_GCM_SHA256, | ||
379 | .algorithm_ssl = SSL_TLSV1_3, | 378 | .algorithm_ssl = SSL_TLSV1_3, |
380 | }, | 379 | }, |
381 | { | 380 | { |
382 | .valid = 1, | 381 | .value = 0x1302, |
383 | .name = "TLS_AES_256_GCM_SHA384", | 382 | .name = "TLS_AES_256_GCM_SHA384", |
384 | .id = TLS1_3_CK_AES_256_GCM_SHA384, | ||
385 | .algorithm_ssl = SSL_TLSV1_3, | 383 | .algorithm_ssl = SSL_TLSV1_3, |
386 | }, | 384 | }, |
387 | { | 385 | { |
388 | .valid = 1, | 386 | .value = 0x1303, |
389 | .name = "TLS_CHACHA20_POLY1305_SHA256", | 387 | .name = "TLS_CHACHA20_POLY1305_SHA256", |
390 | .id = TLS1_3_CK_CHACHA20_POLY1305_SHA256, | ||
391 | .algorithm_ssl = SSL_TLSV1_3, | 388 | .algorithm_ssl = SSL_TLSV1_3, |
392 | }, | 389 | }, |
393 | #endif | 390 | #endif |
@@ -619,7 +616,7 @@ ssl_cipher_collect_ciphers(const SSL_METHOD *ssl_method, int num_of_ciphers, | |||
619 | * Drop any invalid ciphers and any which use unavailable | 616 | * Drop any invalid ciphers and any which use unavailable |
620 | * algorithms. | 617 | * algorithms. |
621 | */ | 618 | */ |
622 | if ((c != NULL) && c->valid && | 619 | if ((c != NULL) && |
623 | !(c->algorithm_mkey & disabled_mkey) && | 620 | !(c->algorithm_mkey & disabled_mkey) && |
624 | !(c->algorithm_auth & disabled_auth) && | 621 | !(c->algorithm_auth & disabled_auth) && |
625 | !(c->algorithm_enc & disabled_enc) && | 622 | !(c->algorithm_enc & disabled_enc) && |
@@ -725,7 +722,7 @@ ssl_cipher_collect_aliases(const SSL_CIPHER **ca_list, int num_of_group_aliases, | |||
725 | } | 722 | } |
726 | 723 | ||
727 | static void | 724 | static void |
728 | ssl_cipher_apply_rule(unsigned long cipher_id, unsigned long alg_mkey, | 725 | ssl_cipher_apply_rule(uint16_t cipher_value, unsigned long alg_mkey, |
729 | unsigned long alg_auth, unsigned long alg_enc, unsigned long alg_mac, | 726 | unsigned long alg_auth, unsigned long alg_enc, unsigned long alg_mac, |
730 | unsigned long alg_ssl, unsigned long algo_strength, int rule, | 727 | unsigned long alg_ssl, unsigned long algo_strength, int rule, |
731 | int strength_bits, CIPHER_ORDER **head_p, CIPHER_ORDER **tail_p) | 728 | int strength_bits, CIPHER_ORDER **head_p, CIPHER_ORDER **tail_p) |
@@ -757,7 +754,7 @@ ssl_cipher_apply_rule(unsigned long cipher_id, unsigned long alg_mkey, | |||
757 | 754 | ||
758 | cp = curr->cipher; | 755 | cp = curr->cipher; |
759 | 756 | ||
760 | if (cipher_id && cp->id != cipher_id) | 757 | if (cipher_value != 0 && cp->value != cipher_value) |
761 | continue; | 758 | continue; |
762 | 759 | ||
763 | /* | 760 | /* |
@@ -882,7 +879,7 @@ ssl_cipher_process_rulestr(const char *rule_str, CIPHER_ORDER **head_p, | |||
882 | unsigned long alg_mkey, alg_auth, alg_enc, alg_mac, alg_ssl; | 879 | unsigned long alg_mkey, alg_auth, alg_enc, alg_mac, alg_ssl; |
883 | unsigned long algo_strength; | 880 | unsigned long algo_strength; |
884 | int j, multi, found, rule, retval, ok, buflen; | 881 | int j, multi, found, rule, retval, ok, buflen; |
885 | unsigned long cipher_id = 0; | 882 | uint16_t cipher_value = 0; |
886 | const char *l, *buf; | 883 | const char *l, *buf; |
887 | char ch; | 884 | char ch; |
888 | 885 | ||
@@ -974,7 +971,7 @@ ssl_cipher_process_rulestr(const char *rule_str, CIPHER_ORDER **head_p, | |||
974 | * '\0' terminated.) | 971 | * '\0' terminated.) |
975 | */ | 972 | */ |
976 | j = found = 0; | 973 | j = found = 0; |
977 | cipher_id = 0; | 974 | cipher_value = 0; |
978 | while (ca_list[j]) { | 975 | while (ca_list[j]) { |
979 | if (!strncmp(buf, ca_list[j]->name, buflen) && | 976 | if (!strncmp(buf, ca_list[j]->name, buflen) && |
980 | (ca_list[j]->name[buflen] == '\0')) { | 977 | (ca_list[j]->name[buflen] == '\0')) { |
@@ -1047,13 +1044,13 @@ ssl_cipher_process_rulestr(const char *rule_str, CIPHER_ORDER **head_p, | |||
1047 | SSL_STRONG_MASK; | 1044 | SSL_STRONG_MASK; |
1048 | } | 1045 | } |
1049 | 1046 | ||
1050 | if (ca_list[j]->valid) { | 1047 | if (ca_list[j]->value != 0) { |
1051 | /* | 1048 | /* |
1052 | * explicit ciphersuite found; its protocol | 1049 | * explicit ciphersuite found; its protocol |
1053 | * version does not become part of the search | 1050 | * version does not become part of the search |
1054 | * pattern! | 1051 | * pattern! |
1055 | */ | 1052 | */ |
1056 | cipher_id = ca_list[j]->id; | 1053 | cipher_value = ca_list[j]->value; |
1057 | if (ca_list[j]->algorithm_ssl == SSL_TLSV1_3) | 1054 | if (ca_list[j]->algorithm_ssl == SSL_TLSV1_3) |
1058 | *tls13_seen = 1; | 1055 | *tls13_seen = 1; |
1059 | } else { | 1056 | } else { |
@@ -1109,7 +1106,7 @@ ssl_cipher_process_rulestr(const char *rule_str, CIPHER_ORDER **head_p, | |||
1109 | } else if (found) { | 1106 | } else if (found) { |
1110 | if (alg_ssl == SSL_TLSV1_3) | 1107 | if (alg_ssl == SSL_TLSV1_3) |
1111 | *tls13_seen = 1; | 1108 | *tls13_seen = 1; |
1112 | ssl_cipher_apply_rule(cipher_id, alg_mkey, alg_auth, | 1109 | ssl_cipher_apply_rule(cipher_value, alg_mkey, alg_auth, |
1113 | alg_enc, alg_mac, alg_ssl, algo_strength, rule, | 1110 | alg_enc, alg_mac, alg_ssl, algo_strength, rule, |
1114 | -1, head_p, tail_p); | 1111 | -1, head_p, tail_p); |
1115 | } else { | 1112 | } else { |
@@ -1470,24 +1467,23 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len) | |||
1470 | LSSL_ALIAS(SSL_CIPHER_description); | 1467 | LSSL_ALIAS(SSL_CIPHER_description); |
1471 | 1468 | ||
1472 | const char * | 1469 | const char * |
1473 | SSL_CIPHER_get_version(const SSL_CIPHER *c) | 1470 | SSL_CIPHER_get_version(const SSL_CIPHER *cipher) |
1474 | { | 1471 | { |
1475 | if (c == NULL) | 1472 | if (cipher == NULL) |
1476 | return("(NONE)"); | 1473 | return "(NONE)"; |
1477 | if ((c->id >> 24) == 3) | 1474 | |
1478 | return("TLSv1/SSLv3"); | 1475 | return "TLSv1/SSLv3"; |
1479 | else | ||
1480 | return("unknown"); | ||
1481 | } | 1476 | } |
1482 | LSSL_ALIAS(SSL_CIPHER_get_version); | 1477 | LSSL_ALIAS(SSL_CIPHER_get_version); |
1483 | 1478 | ||
1484 | /* return the actual cipher being used */ | 1479 | /* return the actual cipher being used */ |
1485 | const char * | 1480 | const char * |
1486 | SSL_CIPHER_get_name(const SSL_CIPHER *c) | 1481 | SSL_CIPHER_get_name(const SSL_CIPHER *cipher) |
1487 | { | 1482 | { |
1488 | if (c != NULL) | 1483 | if (cipher == NULL) |
1489 | return (c->name); | 1484 | return "(NONE)"; |
1490 | return("(NONE)"); | 1485 | |
1486 | return cipher->name; | ||
1491 | } | 1487 | } |
1492 | LSSL_ALIAS(SSL_CIPHER_get_name); | 1488 | LSSL_ALIAS(SSL_CIPHER_get_name); |
1493 | 1489 | ||
@@ -1507,16 +1503,16 @@ SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits) | |||
1507 | LSSL_ALIAS(SSL_CIPHER_get_bits); | 1503 | LSSL_ALIAS(SSL_CIPHER_get_bits); |
1508 | 1504 | ||
1509 | unsigned long | 1505 | unsigned long |
1510 | SSL_CIPHER_get_id(const SSL_CIPHER *c) | 1506 | SSL_CIPHER_get_id(const SSL_CIPHER *cipher) |
1511 | { | 1507 | { |
1512 | return c->id; | 1508 | return SSL3_CK_ID | cipher->value; |
1513 | } | 1509 | } |
1514 | LSSL_ALIAS(SSL_CIPHER_get_id); | 1510 | LSSL_ALIAS(SSL_CIPHER_get_id); |
1515 | 1511 | ||
1516 | uint16_t | 1512 | uint16_t |
1517 | SSL_CIPHER_get_value(const SSL_CIPHER *c) | 1513 | SSL_CIPHER_get_value(const SSL_CIPHER *cipher) |
1518 | { | 1514 | { |
1519 | return ssl3_cipher_get_value(c); | 1515 | return cipher->value; |
1520 | } | 1516 | } |
1521 | LSSL_ALIAS(SSL_CIPHER_get_value); | 1517 | LSSL_ALIAS(SSL_CIPHER_get_value); |
1522 | 1518 | ||
diff --git a/src/lib/libssl/ssl_ciphers.c b/src/lib/libssl/ssl_ciphers.c index 4ec1b099bc..503ef9d03c 100644 --- a/src/lib/libssl/ssl_ciphers.c +++ b/src/lib/libssl/ssl_ciphers.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_ciphers.c,v 1.17 2022/11/26 16:08:55 tb Exp $ */ | 1 | /* $OpenBSD: ssl_ciphers.c,v 1.18 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2015-2017 Doug Hogan <doug@openbsd.org> | 3 | * Copyright (c) 2015-2017 Doug Hogan <doug@openbsd.org> |
4 | * Copyright (c) 2015-2018, 2020 Joel Sing <jsing@openbsd.org> | 4 | * Copyright (c) 2015-2018, 2020 Joel Sing <jsing@openbsd.org> |
@@ -28,7 +28,7 @@ ssl_cipher_in_list(STACK_OF(SSL_CIPHER) *ciphers, const SSL_CIPHER *cipher) | |||
28 | int i; | 28 | int i; |
29 | 29 | ||
30 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { | 30 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { |
31 | if (sk_SSL_CIPHER_value(ciphers, i)->id == cipher->id) | 31 | if (sk_SSL_CIPHER_value(ciphers, i)->value == cipher->value) |
32 | return 1; | 32 | return 1; |
33 | } | 33 | } |
34 | 34 | ||
@@ -72,7 +72,7 @@ ssl_cipher_list_to_bytes(SSL *s, STACK_OF(SSL_CIPHER) *ciphers, CBB *cbb) | |||
72 | continue; | 72 | continue; |
73 | if (!ssl_security_cipher_check(s, cipher)) | 73 | if (!ssl_security_cipher_check(s, cipher)) |
74 | continue; | 74 | continue; |
75 | if (!CBB_add_u16(cbb, ssl3_cipher_get_value(cipher))) | 75 | if (!CBB_add_u16(cbb, cipher->value)) |
76 | return 0; | 76 | return 0; |
77 | 77 | ||
78 | num_ciphers++; | 78 | num_ciphers++; |
@@ -165,34 +165,34 @@ ssl_bytes_to_cipher_list(SSL *s, CBS *cbs) | |||
165 | struct ssl_tls13_ciphersuite { | 165 | struct ssl_tls13_ciphersuite { |
166 | const char *name; | 166 | const char *name; |
167 | const char *alias; | 167 | const char *alias; |
168 | unsigned long cid; | 168 | uint16_t value; |
169 | }; | 169 | }; |
170 | 170 | ||
171 | static const struct ssl_tls13_ciphersuite ssl_tls13_ciphersuites[] = { | 171 | static const struct ssl_tls13_ciphersuite ssl_tls13_ciphersuites[] = { |
172 | { | 172 | { |
173 | .name = TLS1_3_RFC_AES_128_GCM_SHA256, | 173 | .name = TLS1_3_RFC_AES_128_GCM_SHA256, |
174 | .alias = TLS1_3_TXT_AES_128_GCM_SHA256, | 174 | .alias = TLS1_3_TXT_AES_128_GCM_SHA256, |
175 | .cid = TLS1_3_CK_AES_128_GCM_SHA256, | 175 | .value = 0x1301, |
176 | }, | 176 | }, |
177 | { | 177 | { |
178 | .name = TLS1_3_RFC_AES_256_GCM_SHA384, | 178 | .name = TLS1_3_RFC_AES_256_GCM_SHA384, |
179 | .alias = TLS1_3_TXT_AES_256_GCM_SHA384, | 179 | .alias = TLS1_3_TXT_AES_256_GCM_SHA384, |
180 | .cid = TLS1_3_CK_AES_256_GCM_SHA384, | 180 | .value = 0x1302, |
181 | }, | 181 | }, |
182 | { | 182 | { |
183 | .name = TLS1_3_RFC_CHACHA20_POLY1305_SHA256, | 183 | .name = TLS1_3_RFC_CHACHA20_POLY1305_SHA256, |
184 | .alias = TLS1_3_TXT_CHACHA20_POLY1305_SHA256, | 184 | .alias = TLS1_3_TXT_CHACHA20_POLY1305_SHA256, |
185 | .cid = TLS1_3_CK_CHACHA20_POLY1305_SHA256, | 185 | .value = 0x1303, |
186 | }, | 186 | }, |
187 | { | 187 | { |
188 | .name = TLS1_3_RFC_AES_128_CCM_SHA256, | 188 | .name = TLS1_3_RFC_AES_128_CCM_SHA256, |
189 | .alias = TLS1_3_TXT_AES_128_CCM_SHA256, | 189 | .alias = TLS1_3_TXT_AES_128_CCM_SHA256, |
190 | .cid = TLS1_3_CK_AES_128_CCM_SHA256, | 190 | .value = 0x1304, |
191 | }, | 191 | }, |
192 | { | 192 | { |
193 | .name = TLS1_3_RFC_AES_128_CCM_8_SHA256, | 193 | .name = TLS1_3_RFC_AES_128_CCM_8_SHA256, |
194 | .alias = TLS1_3_TXT_AES_128_CCM_8_SHA256, | 194 | .alias = TLS1_3_TXT_AES_128_CCM_8_SHA256, |
195 | .cid = TLS1_3_CK_AES_128_CCM_8_SHA256, | 195 | .value = 0x1305, |
196 | }, | 196 | }, |
197 | { | 197 | { |
198 | .name = NULL, | 198 | .name = NULL, |
@@ -234,7 +234,7 @@ ssl_parse_ciphersuites(STACK_OF(SSL_CIPHER) **out_ciphers, const char *str) | |||
234 | goto err; | 234 | goto err; |
235 | 235 | ||
236 | /* We know about the cipher suite, but it is not supported. */ | 236 | /* We know about the cipher suite, but it is not supported. */ |
237 | if ((cipher = ssl3_get_cipher_by_id(ciphersuite->cid)) == NULL) | 237 | if ((cipher = ssl3_get_cipher_by_value(ciphersuite->value)) == NULL) |
238 | continue; | 238 | continue; |
239 | 239 | ||
240 | if (!sk_SSL_CIPHER_push(ciphers, cipher)) | 240 | if (!sk_SSL_CIPHER_push(ciphers, cipher)) |
diff --git a/src/lib/libssl/ssl_clnt.c b/src/lib/libssl/ssl_clnt.c index 7b2e05d23d..593ed553d3 100644 --- a/src/lib/libssl/ssl_clnt.c +++ b/src/lib/libssl/ssl_clnt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_clnt.c,v 1.167 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_clnt.c,v 1.168 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -481,7 +481,7 @@ ssl3_connect(SSL *s) | |||
481 | 481 | ||
482 | s->s3->hs.state = SSL3_ST_CW_FINISHED_A; | 482 | s->s3->hs.state = SSL3_ST_CW_FINISHED_A; |
483 | s->init_num = 0; | 483 | s->init_num = 0; |
484 | s->session->cipher_id = s->s3->hs.cipher->id; | 484 | s->session->cipher_value = s->s3->hs.cipher->value; |
485 | 485 | ||
486 | if (!tls1_setup_key_block(s)) { | 486 | if (!tls1_setup_key_block(s)) { |
487 | ret = -1; | 487 | ret = -1; |
@@ -1016,13 +1016,13 @@ ssl3_get_server_hello(SSL *s) | |||
1016 | * and/or cipher_id values may not be set. Make sure that | 1016 | * and/or cipher_id values may not be set. Make sure that |
1017 | * cipher_id is set and use it for comparison. | 1017 | * cipher_id is set and use it for comparison. |
1018 | */ | 1018 | */ |
1019 | if (s->hit && (s->session->cipher_id != cipher->id)) { | 1019 | if (s->hit && (s->session->cipher_value != cipher->value)) { |
1020 | al = SSL_AD_ILLEGAL_PARAMETER; | 1020 | al = SSL_AD_ILLEGAL_PARAMETER; |
1021 | SSLerror(s, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED); | 1021 | SSLerror(s, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED); |
1022 | goto fatal_err; | 1022 | goto fatal_err; |
1023 | } | 1023 | } |
1024 | s->s3->hs.cipher = cipher; | 1024 | s->s3->hs.cipher = cipher; |
1025 | s->session->cipher_id = cipher->id; | 1025 | s->session->cipher_value = cipher->value; |
1026 | 1026 | ||
1027 | if (!tls1_transcript_hash_init(s)) | 1027 | if (!tls1_transcript_hash_init(s)) |
1028 | goto err; | 1028 | goto err; |
diff --git a/src/lib/libssl/ssl_local.h b/src/lib/libssl/ssl_local.h index 79f41e6dc3..34197e5920 100644 --- a/src/lib/libssl/ssl_local.h +++ b/src/lib/libssl/ssl_local.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_local.h,v 1.21 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_local.h,v 1.22 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -339,9 +339,9 @@ struct ssl_comp_st { | |||
339 | }; | 339 | }; |
340 | 340 | ||
341 | struct ssl_cipher_st { | 341 | struct ssl_cipher_st { |
342 | int valid; | 342 | uint16_t value; /* Cipher suite value. */ |
343 | |||
343 | const char *name; /* text name */ | 344 | const char *name; /* text name */ |
344 | unsigned long id; /* id, 4 bytes, first is version */ | ||
345 | 345 | ||
346 | unsigned long algorithm_mkey; /* key exchange algorithm */ | 346 | unsigned long algorithm_mkey; /* key exchange algorithm */ |
347 | unsigned long algorithm_auth; /* server authentication */ | 347 | unsigned long algorithm_auth; /* server authentication */ |
@@ -438,9 +438,7 @@ struct ssl_session_st { | |||
438 | time_t time; | 438 | time_t time; |
439 | int references; | 439 | int references; |
440 | 440 | ||
441 | unsigned long cipher_id; /* when ASN.1 loaded, this | 441 | uint16_t cipher_value; |
442 | * needs to be used to load | ||
443 | * the 'cipher' structure */ | ||
444 | 442 | ||
445 | char *tlsext_hostname; | 443 | char *tlsext_hostname; |
446 | 444 | ||
@@ -1293,9 +1291,7 @@ int ssl3_get_req_cert_types(SSL *s, CBB *cbb); | |||
1293 | int ssl3_get_message(SSL *s, int st1, int stn, int mt, long max); | 1291 | int ssl3_get_message(SSL *s, int st1, int stn, int mt, long max); |
1294 | int ssl3_num_ciphers(void); | 1292 | int ssl3_num_ciphers(void); |
1295 | const SSL_CIPHER *ssl3_get_cipher(unsigned int u); | 1293 | const SSL_CIPHER *ssl3_get_cipher(unsigned int u); |
1296 | const SSL_CIPHER *ssl3_get_cipher_by_id(unsigned long id); | ||
1297 | const SSL_CIPHER *ssl3_get_cipher_by_value(uint16_t value); | 1294 | const SSL_CIPHER *ssl3_get_cipher_by_value(uint16_t value); |
1298 | uint16_t ssl3_cipher_get_value(const SSL_CIPHER *c); | ||
1299 | int ssl3_renegotiate(SSL *ssl); | 1295 | int ssl3_renegotiate(SSL *ssl); |
1300 | 1296 | ||
1301 | int ssl3_renegotiate_check(SSL *ssl); | 1297 | int ssl3_renegotiate_check(SSL *ssl); |
diff --git a/src/lib/libssl/ssl_pkt.c b/src/lib/libssl/ssl_pkt.c index 7d6785a3de..740fe97192 100644 --- a/src/lib/libssl/ssl_pkt.c +++ b/src/lib/libssl/ssl_pkt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_pkt.c,v 1.67 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_pkt.c,v 1.68 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1235,7 +1235,7 @@ ssl3_do_change_cipher_spec(SSL *s) | |||
1235 | return (0); | 1235 | return (0); |
1236 | } | 1236 | } |
1237 | 1237 | ||
1238 | s->session->cipher_id = s->s3->hs.cipher->id; | 1238 | s->session->cipher_value = s->s3->hs.cipher->value; |
1239 | 1239 | ||
1240 | if (!tls1_setup_key_block(s)) | 1240 | if (!tls1_setup_key_block(s)) |
1241 | return (0); | 1241 | return (0); |
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index c2bd1bf135..5aea990278 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_sess.c,v 1.127 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_sess.c,v 1.128 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -287,7 +287,7 @@ ssl_session_dup(SSL_SESSION *sess, int include_ticket) | |||
287 | copy->time = sess->time; | 287 | copy->time = sess->time; |
288 | copy->references = 1; | 288 | copy->references = 1; |
289 | 289 | ||
290 | copy->cipher_id = sess->cipher_id; | 290 | copy->cipher_value = sess->cipher_value; |
291 | 291 | ||
292 | if (sess->tlsext_hostname != NULL) { | 292 | if (sess->tlsext_hostname != NULL) { |
293 | copy->tlsext_hostname = strdup(sess->tlsext_hostname); | 293 | copy->tlsext_hostname = strdup(sess->tlsext_hostname); |
@@ -984,7 +984,7 @@ LSSL_ALIAS(SSL_SESSION_get_protocol_version); | |||
984 | const SSL_CIPHER * | 984 | const SSL_CIPHER * |
985 | SSL_SESSION_get0_cipher(const SSL_SESSION *s) | 985 | SSL_SESSION_get0_cipher(const SSL_SESSION *s) |
986 | { | 986 | { |
987 | return ssl3_get_cipher_by_id(s->cipher_id); | 987 | return ssl3_get_cipher_by_value(s->cipher_value); |
988 | } | 988 | } |
989 | LSSL_ALIAS(SSL_SESSION_get0_cipher); | 989 | LSSL_ALIAS(SSL_SESSION_get0_cipher); |
990 | 990 | ||
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c index be6bd7402c..302b6bdf0f 100644 --- a/src/lib/libssl/ssl_srvr.c +++ b/src/lib/libssl/ssl_srvr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_srvr.c,v 1.164 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_srvr.c,v 1.165 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -651,7 +651,7 @@ ssl3_accept(SSL *s) | |||
651 | goto end; | 651 | goto end; |
652 | s->s3->hs.state = SSL3_ST_SW_FINISHED_A; | 652 | s->s3->hs.state = SSL3_ST_SW_FINISHED_A; |
653 | s->init_num = 0; | 653 | s->init_num = 0; |
654 | s->session->cipher_id = s->s3->hs.cipher->id; | 654 | s->session->cipher_value = s->s3->hs.cipher->value; |
655 | 655 | ||
656 | if (!tls1_setup_key_block(s)) { | 656 | if (!tls1_setup_key_block(s)) { |
657 | ret = -1; | 657 | ret = -1; |
@@ -781,7 +781,6 @@ ssl3_get_client_hello(SSL *s) | |||
781 | uint8_t comp_method; | 781 | uint8_t comp_method; |
782 | int comp_null; | 782 | int comp_null; |
783 | int i, j, al, ret, cookie_valid = 0; | 783 | int i, j, al, ret, cookie_valid = 0; |
784 | unsigned long id; | ||
785 | SSL_CIPHER *c; | 784 | SSL_CIPHER *c; |
786 | STACK_OF(SSL_CIPHER) *ciphers = NULL; | 785 | STACK_OF(SSL_CIPHER) *ciphers = NULL; |
787 | const SSL_METHOD *method; | 786 | const SSL_METHOD *method; |
@@ -978,11 +977,10 @@ ssl3_get_client_hello(SSL *s) | |||
978 | /* XXX - CBS_len(&cipher_suites) will always be zero here... */ | 977 | /* XXX - CBS_len(&cipher_suites) will always be zero here... */ |
979 | if (s->hit && CBS_len(&cipher_suites) > 0) { | 978 | if (s->hit && CBS_len(&cipher_suites) > 0) { |
980 | j = 0; | 979 | j = 0; |
981 | id = s->session->cipher_id; | ||
982 | 980 | ||
983 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { | 981 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { |
984 | c = sk_SSL_CIPHER_value(ciphers, i); | 982 | c = sk_SSL_CIPHER_value(ciphers, i); |
985 | if (c->id == id) { | 983 | if (c->value == s->session->cipher_value) { |
986 | j = 1; | 984 | j = 1; |
987 | break; | 985 | break; |
988 | } | 986 | } |
@@ -1127,9 +1125,9 @@ ssl3_get_client_hello(SSL *s) | |||
1127 | goto fatal_err; | 1125 | goto fatal_err; |
1128 | } | 1126 | } |
1129 | s->s3->hs.cipher = c; | 1127 | s->s3->hs.cipher = c; |
1130 | s->session->cipher_id = s->s3->hs.cipher->id; | 1128 | s->session->cipher_value = s->s3->hs.cipher->value; |
1131 | } else { | 1129 | } else { |
1132 | s->s3->hs.cipher = ssl3_get_cipher_by_id(s->session->cipher_id); | 1130 | s->s3->hs.cipher = ssl3_get_cipher_by_value(s->session->cipher_value); |
1133 | if (s->s3->hs.cipher == NULL) | 1131 | if (s->s3->hs.cipher == NULL) |
1134 | goto fatal_err; | 1132 | goto fatal_err; |
1135 | } | 1133 | } |
@@ -1269,8 +1267,7 @@ ssl3_send_server_hello(SSL *s) | |||
1269 | goto err; | 1267 | goto err; |
1270 | 1268 | ||
1271 | /* Cipher suite. */ | 1269 | /* Cipher suite. */ |
1272 | if (!CBB_add_u16(&server_hello, | 1270 | if (!CBB_add_u16(&server_hello, s->s3->hs.cipher->value)) |
1273 | ssl3_cipher_get_value(s->s3->hs.cipher))) | ||
1274 | goto err; | 1271 | goto err; |
1275 | 1272 | ||
1276 | /* Compression method (null). */ | 1273 | /* Compression method (null). */ |
diff --git a/src/lib/libssl/ssl_txt.c b/src/lib/libssl/ssl_txt.c index 26b631d5ab..4ed76c95ab 100644 --- a/src/lib/libssl/ssl_txt.c +++ b/src/lib/libssl/ssl_txt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_txt.c,v 1.38 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_txt.c,v 1.39 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -122,9 +122,9 @@ SSL_SESSION_print(BIO *bp, const SSL_SESSION *x) | |||
122 | ssl_version_string(x->ssl_version)) <= 0) | 122 | ssl_version_string(x->ssl_version)) <= 0) |
123 | goto err; | 123 | goto err; |
124 | 124 | ||
125 | if ((cipher = ssl3_get_cipher_by_id(x->cipher_id)) == NULL) { | 125 | if ((cipher = ssl3_get_cipher_by_value(x->cipher_value)) == NULL) { |
126 | if (BIO_printf(bp, " Cipher : %04lX\n", | 126 | if (BIO_printf(bp, " Cipher : %04X\n", |
127 | x->cipher_id & SSL3_CK_VALUE_MASK) <= 0) | 127 | x->cipher_value) <= 0) |
128 | goto err; | 128 | goto err; |
129 | } else { | 129 | } else { |
130 | const char *cipher_name = "unknown"; | 130 | const char *cipher_name = "unknown"; |
diff --git a/src/lib/libssl/tls13_client.c b/src/lib/libssl/tls13_client.c index 8f6894fd88..901b38f860 100644 --- a/src/lib/libssl/tls13_client.c +++ b/src/lib/libssl/tls13_client.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls13_client.c,v 1.103 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: tls13_client.c,v 1.104 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -347,7 +347,7 @@ tls13_client_engage_record_protection(struct tls13_ctx *ctx) | |||
347 | &shared_key_len)) | 347 | &shared_key_len)) |
348 | goto err; | 348 | goto err; |
349 | 349 | ||
350 | s->session->cipher_id = ctx->hs->cipher->id; | 350 | s->session->cipher_value = ctx->hs->cipher->value; |
351 | s->session->ssl_version = ctx->hs->tls13.server_version; | 351 | s->session->ssl_version = ctx->hs->tls13.server_version; |
352 | 352 | ||
353 | if ((ctx->aead = tls13_cipher_aead(ctx->hs->cipher)) == NULL) | 353 | if ((ctx->aead = tls13_cipher_aead(ctx->hs->cipher)) == NULL) |
diff --git a/src/lib/libssl/tls13_server.c b/src/lib/libssl/tls13_server.c index 6bd2993cf3..63b7d92093 100644 --- a/src/lib/libssl/tls13_server.c +++ b/src/lib/libssl/tls13_server.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls13_server.c,v 1.108 2024/07/20 04:04:23 jsing Exp $ */ | 1 | /* $OpenBSD: tls13_server.c,v 1.109 2024/07/22 14:47:15 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2019, 2020 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2019, 2020 Joel Sing <jsing@openbsd.org> |
4 | * Copyright (c) 2020 Bob Beck <beck@openbsd.org> | 4 | * Copyright (c) 2020 Bob Beck <beck@openbsd.org> |
@@ -383,7 +383,7 @@ tls13_server_engage_record_protection(struct tls13_ctx *ctx) | |||
383 | &shared_key_len)) | 383 | &shared_key_len)) |
384 | goto err; | 384 | goto err; |
385 | 385 | ||
386 | s->session->cipher_id = ctx->hs->cipher->id; | 386 | s->session->cipher_value = ctx->hs->cipher->value; |
387 | 387 | ||
388 | if ((ctx->aead = tls13_cipher_aead(ctx->hs->cipher)) == NULL) | 388 | if ((ctx->aead = tls13_cipher_aead(ctx->hs->cipher)) == NULL) |
389 | goto err; | 389 | goto err; |