diff options
author | tb <> | 2022-07-03 08:15:52 +0000 |
---|---|---|
committer | tb <> | 2022-07-03 08:15:52 +0000 |
commit | 5f45601ea6aa0b2b60618271d2c77b278d5f4cfc (patch) | |
tree | 2c2c19bee38ffa67b91f4b53fcacb2fa6f3b4db5 | |
parent | 25d91012576b69d64d04218e77db56132510dd90 (diff) | |
download | openbsd-5f45601ea6aa0b2b60618271d2c77b278d5f4cfc.tar.gz openbsd-5f45601ea6aa0b2b60618271d2c77b278d5f4cfc.tar.bz2 openbsd-5f45601ea6aa0b2b60618271d2c77b278d5f4cfc.zip |
Simplify tls1_ec_nid2group_id()
Replace long switch statement duplicating data from nid_list[] with a
linear scan.
requested by and ok jsing
-rw-r--r-- | src/lib/libssl/t1_lib.c | 108 |
1 files changed, 10 insertions, 98 deletions
diff --git a/src/lib/libssl/t1_lib.c b/src/lib/libssl/t1_lib.c index 638e81ae82..5a1749c863 100644 --- a/src/lib/libssl/t1_lib.c +++ b/src/lib/libssl/t1_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: t1_lib.c,v 1.192 2022/07/03 08:13:45 tb Exp $ */ | 1 | /* $OpenBSD: t1_lib.c,v 1.193 2022/07/03 08:15:52 tb 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 | * |
@@ -372,109 +372,21 @@ tls1_ec_group_id2bits(uint16_t group_id, int *out_bits) | |||
372 | } | 372 | } |
373 | 373 | ||
374 | int | 374 | int |
375 | tls1_ec_nid2group_id(const int nid, uint16_t *out_group_id) | 375 | tls1_ec_nid2group_id(int nid, uint16_t *out_group_id) |
376 | { | 376 | { |
377 | uint16_t group_id; | 377 | uint16_t group_id; |
378 | 378 | ||
379 | switch (nid) { | 379 | if (nid == 0) |
380 | case NID_sect163k1: | ||
381 | group_id = 1; | ||
382 | break; | ||
383 | case NID_sect163r1: | ||
384 | group_id = 2; | ||
385 | break; | ||
386 | case NID_sect163r2: | ||
387 | group_id = 3; | ||
388 | break; | ||
389 | case NID_sect193r1: | ||
390 | group_id = 4; | ||
391 | break; | ||
392 | case NID_sect193r2: | ||
393 | group_id = 5; | ||
394 | break; | ||
395 | case NID_sect233k1: | ||
396 | group_id = 6; | ||
397 | break; | ||
398 | case NID_sect233r1: | ||
399 | group_id = 7; | ||
400 | break; | ||
401 | case NID_sect239k1: | ||
402 | group_id = 8; | ||
403 | break; | ||
404 | case NID_sect283k1: | ||
405 | group_id = 9; | ||
406 | break; | ||
407 | case NID_sect283r1: | ||
408 | group_id = 10; | ||
409 | break; | ||
410 | case NID_sect409k1: | ||
411 | group_id = 11; | ||
412 | break; | ||
413 | case NID_sect409r1: | ||
414 | group_id = 12; | ||
415 | break; | ||
416 | case NID_sect571k1: | ||
417 | group_id = 13; | ||
418 | break; | ||
419 | case NID_sect571r1: | ||
420 | group_id = 14; | ||
421 | break; | ||
422 | case NID_secp160k1: | ||
423 | group_id = 15; | ||
424 | break; | ||
425 | case NID_secp160r1: | ||
426 | group_id = 16; | ||
427 | break; | ||
428 | case NID_secp160r2: | ||
429 | group_id = 17; | ||
430 | break; | ||
431 | case NID_secp192k1: | ||
432 | group_id = 18; | ||
433 | break; | ||
434 | case NID_X9_62_prime192v1: /* aka secp192r1 */ | ||
435 | group_id = 19; | ||
436 | break; | ||
437 | case NID_secp224k1: | ||
438 | group_id = 20; | ||
439 | break; | ||
440 | case NID_secp224r1: | ||
441 | group_id = 21; | ||
442 | break; | ||
443 | case NID_secp256k1: | ||
444 | group_id = 22; | ||
445 | break; | ||
446 | case NID_X9_62_prime256v1: /* aka secp256r1 */ | ||
447 | group_id = 23; | ||
448 | break; | ||
449 | case NID_secp384r1: | ||
450 | group_id = 24; | ||
451 | break; | ||
452 | case NID_secp521r1: | ||
453 | group_id = 25; | ||
454 | break; | ||
455 | case NID_brainpoolP256r1: | ||
456 | group_id = 26; | ||
457 | break; | ||
458 | case NID_brainpoolP384r1: | ||
459 | group_id = 27; | ||
460 | break; | ||
461 | case NID_brainpoolP512r1: | ||
462 | group_id = 28; | ||
463 | break; | ||
464 | case NID_X25519: | ||
465 | group_id = 29; | ||
466 | break; | ||
467 | default: | ||
468 | group_id = 0; | ||
469 | break; | ||
470 | } | ||
471 | |||
472 | if (group_id == 0) | ||
473 | return 0; | 380 | return 0; |
474 | 381 | ||
475 | *out_group_id = group_id; | 382 | for (group_id = 0; group_id < NID_LIST_LEN; group_id++) { |
383 | if (nid_list[group_id].nid == nid) { | ||
384 | *out_group_id = group_id; | ||
385 | return 1; | ||
386 | } | ||
387 | } | ||
476 | 388 | ||
477 | return 1; | 389 | return 0; |
478 | } | 390 | } |
479 | 391 | ||
480 | /* | 392 | /* |