diff options
author | jsing <> | 2024-07-22 14:47:15 +0000 |
---|---|---|
committer | jsing <> | 2024-07-22 14:47:15 +0000 |
commit | 4fbee6b90386fa14be274db8ba947f951bc6de4c (patch) | |
tree | 888e24c700579e2d75b6c8c0c8c7543008acc2ae | |
parent | de2497dade37f29dbde49f4162d9cba984e350cf (diff) | |
download | openbsd-4fbee6b90386fa14be274db8ba947f951bc6de4c.tar.gz openbsd-4fbee6b90386fa14be274db8ba947f951bc6de4c.tar.bz2 openbsd-4fbee6b90386fa14be274db8ba947f951bc6de4c.zip |
Use cipher suite values instead of IDs.
OpenSSL has had the concept of cipher IDs, which were a way of working
around overlapping cipher suite values between SSLv2 and SSLv3. Given
that we no longer have to deal with this issue, replace the use of IDs
with cipher suite values. In particular, this means that we can stop
mapping back and forth between the two, simplifying things considerably.
While here, remove the 'valid' member of the SSL_CIPHER. The ssl3_ciphers[]
table is no longer mutable, meaning that ciphers cannot be disabled at
runtime (and we have `#if 0' if we want to do it at compile time).
Clean up the comments and add/update RFC references for cipher suites.
ok tb@
-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; |