diff options
| author | tb <> | 2022-07-03 08:15:52 +0000 |
|---|---|---|
| committer | tb <> | 2022-07-03 08:15:52 +0000 |
| commit | 853dcc6a16e74cc7e3853eea90fcf18d3eb66933 (patch) | |
| tree | 2c2c19bee38ffa67b91f4b53fcacb2fa6f3b4db5 /src/lib/libssl/t1_lib.c | |
| parent | 8b969b9cc93279f9450ae6aee0b2cf3d38c700b7 (diff) | |
| download | openbsd-853dcc6a16e74cc7e3853eea90fcf18d3eb66933.tar.gz openbsd-853dcc6a16e74cc7e3853eea90fcf18d3eb66933.tar.bz2 openbsd-853dcc6a16e74cc7e3853eea90fcf18d3eb66933.zip | |
Simplify tls1_ec_nid2group_id()
Replace long switch statement duplicating data from nid_list[] with a
linear scan.
requested by and ok jsing
Diffstat (limited to 'src/lib/libssl/t1_lib.c')
| -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 | /* |
