diff options
Diffstat (limited to '')
| -rw-r--r-- | src/regress/lib/libcrypto/ec/ec_point_conversion.c | 280 |
1 files changed, 279 insertions, 1 deletions
diff --git a/src/regress/lib/libcrypto/ec/ec_point_conversion.c b/src/regress/lib/libcrypto/ec/ec_point_conversion.c index 9e58018009..2c15f38135 100644 --- a/src/regress/lib/libcrypto/ec/ec_point_conversion.c +++ b/src/regress/lib/libcrypto/ec/ec_point_conversion.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_point_conversion.c,v 1.2 2021/05/03 14:46:18 tb Exp $ */ | 1 | /* $OpenBSD: ec_point_conversion.c,v 1.3 2021/05/03 14:48:10 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2021 Theo Buehler <tb@openbsd.org> | 3 | * Copyright (c) 2021 Theo Buehler <tb@openbsd.org> |
| 4 | * Copyright (c) 2021 Joel Sing <jsing@openbsd.org> | 4 | * Copyright (c) 2021 Joel Sing <jsing@openbsd.org> |
| @@ -549,6 +549,284 @@ static const struct point_conversion { | |||
| 549 | .octets_len = 145, | 549 | .octets_len = 145, |
| 550 | .valid = 0, | 550 | .valid = 0, |
| 551 | }, | 551 | }, |
| 552 | |||
| 553 | { | ||
| 554 | .description = "point at infinity on secp256r1", | ||
| 555 | .nid = NID_X9_62_prime256v1, | ||
| 556 | .octets = { 0x00 }, | ||
| 557 | .octets_len = 1, | ||
| 558 | .valid = 1, | ||
| 559 | }, | ||
| 560 | { | ||
| 561 | .description = "point at infinity on secp256r1 (flipped y_bit)", | ||
| 562 | .nid = NID_X9_62_prime256v1, | ||
| 563 | .octets = { 0x01 }, | ||
| 564 | .octets_len = 1, | ||
| 565 | .valid = 0, | ||
| 566 | }, | ||
| 567 | { | ||
| 568 | .description = "zero x compressed point on secp256r1", | ||
| 569 | .nid = NID_X9_62_prime256v1, | ||
| 570 | .octets = { | ||
| 571 | 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 572 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 573 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 574 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 575 | 0x00, | ||
| 576 | }, | ||
| 577 | .octets_len = 33, | ||
| 578 | .valid = 1, | ||
| 579 | }, | ||
| 580 | { | ||
| 581 | .description = | ||
| 582 | "zero x compressed point on secp256r1 (flipped y_bit)", | ||
| 583 | .nid = NID_X9_62_prime256v1, | ||
| 584 | .octets = { | ||
| 585 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 586 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 587 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 588 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 589 | 0x00, | ||
| 590 | }, | ||
| 591 | .octets_len = 33, | ||
| 592 | .valid = 1, | ||
| 593 | }, | ||
| 594 | { | ||
| 595 | .description = "generic compressed point on secp256r1", | ||
| 596 | .nid = NID_X9_62_prime256v1, | ||
| 597 | .octets = { | ||
| 598 | 0x03, 0xa3, 0x96, 0xa0, 0x42, 0x73, 0x1a, 0x8b, | ||
| 599 | 0x90, 0xd8, 0xcb, 0xae, 0xda, 0x1b, 0x23, 0x11, | ||
| 600 | 0x77, 0x5f, 0x6a, 0x4c, 0xb4, 0x57, 0xbf, 0xe0, | ||
| 601 | 0x65, 0xd4, 0x09, 0x11, 0x5f, 0x54, 0xe4, 0xee, | ||
| 602 | 0xdd, | ||
| 603 | }, | ||
| 604 | .octets_len = 33, | ||
| 605 | .valid = 1, | ||
| 606 | }, | ||
| 607 | { | ||
| 608 | .description = | ||
| 609 | "generic compressed point on secp256r1 (flipped y_bit)", | ||
| 610 | .nid = NID_X9_62_prime256v1, | ||
| 611 | .octets = { | ||
| 612 | 0x02, 0xa3, 0x96, 0xa0, 0x42, 0x73, 0x1a, 0x8b, | ||
| 613 | 0x90, 0xd8, 0xcb, 0xae, 0xda, 0x1b, 0x23, 0x11, | ||
| 614 | 0x77, 0x5f, 0x6a, 0x4c, 0xb4, 0x57, 0xbf, 0xe0, | ||
| 615 | 0x65, 0xd4, 0x09, 0x11, 0x5f, 0x54, 0xe4, 0xee, | ||
| 616 | 0xdd, | ||
| 617 | }, | ||
| 618 | .octets_len = 33, | ||
| 619 | .valid = 1, | ||
| 620 | }, | ||
| 621 | { | ||
| 622 | .description = "zero x uncompressed point #1 on secp256r1", | ||
| 623 | .nid = NID_X9_62_prime256v1, | ||
| 624 | .octets = { | ||
| 625 | 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 626 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 627 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 628 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 629 | 0x00, 0x66, 0x48, 0x5c, 0x78, 0x0e, 0x2f, 0x83, | ||
| 630 | 0xd7, 0x24, 0x33, 0xbd, 0x5d, 0x84, 0xa0, 0x6b, | ||
| 631 | 0xb6, 0x54, 0x1c, 0x2a, 0xf3, 0x1d, 0xae, 0x87, | ||
| 632 | 0x17, 0x28, 0xbf, 0x85, 0x6a, 0x17, 0x4f, 0x93, | ||
| 633 | 0xf4, | ||
| 634 | }, | ||
| 635 | .octets_len = 65, | ||
| 636 | .valid = 1, | ||
| 637 | }, | ||
| 638 | { | ||
| 639 | .description = | ||
| 640 | "zero x uncompressed point #1 on secp256r1 (flipped y_bit)", | ||
| 641 | .nid = NID_X9_62_prime256v1, | ||
| 642 | .octets = { | ||
| 643 | 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 644 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 645 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 646 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 647 | 0x00, 0x66, 0x48, 0x5c, 0x78, 0x0e, 0x2f, 0x83, | ||
| 648 | 0xd7, 0x24, 0x33, 0xbd, 0x5d, 0x84, 0xa0, 0x6b, | ||
| 649 | 0xb6, 0x54, 0x1c, 0x2a, 0xf3, 0x1d, 0xae, 0x87, | ||
| 650 | 0x17, 0x28, 0xbf, 0x85, 0x6a, 0x17, 0x4f, 0x93, | ||
| 651 | 0xf4, | ||
| 652 | }, | ||
| 653 | .octets_len = 65, | ||
| 654 | .valid = 0, | ||
| 655 | }, | ||
| 656 | { | ||
| 657 | .description = "zero x uncompressed point #2 on secp256r1", | ||
| 658 | .nid = NID_X9_62_prime256v1, | ||
| 659 | .octets = { | ||
| 660 | 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 661 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 662 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 663 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 664 | 0x00, 0x99, 0xb7, 0xa3, 0x86, 0xf1, 0xd0, 0x7c, | ||
| 665 | 0x29, 0xdb, 0xcc, 0x42, 0xa2, 0x7b, 0x5f, 0x94, | ||
| 666 | 0x49, 0xab, 0xe3, 0xd5, 0x0d, 0xe2, 0x51, 0x78, | ||
| 667 | 0xe8, 0xd7, 0x40, 0x7a, 0x95, 0xe8, 0xb0, 0x6c, | ||
| 668 | 0x0b, | ||
| 669 | }, | ||
| 670 | .octets_len = 65, | ||
| 671 | .valid = 1, | ||
| 672 | }, | ||
| 673 | { | ||
| 674 | .description = | ||
| 675 | "zero x uncompressed point #2 on secp256r1 (flipped y_bit)", | ||
| 676 | .nid = NID_X9_62_prime256v1, | ||
| 677 | .octets = { | ||
| 678 | 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 679 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 680 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 681 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 682 | 0x00, 0x99, 0xb7, 0xa3, 0x86, 0xf1, 0xd0, 0x7c, | ||
| 683 | 0x29, 0xdb, 0xcc, 0x42, 0xa2, 0x7b, 0x5f, 0x94, | ||
| 684 | 0x49, 0xab, 0xe3, 0xd5, 0x0d, 0xe2, 0x51, 0x78, | ||
| 685 | 0xe8, 0xd7, 0x40, 0x7a, 0x95, 0xe8, 0xb0, 0x6c, | ||
| 686 | 0x0b, | ||
| 687 | }, | ||
| 688 | .octets_len = 65, | ||
| 689 | .valid = 0, | ||
| 690 | }, | ||
| 691 | { | ||
| 692 | .description = "generic uncompressed point on secp256r1", | ||
| 693 | .nid = NID_X9_62_prime256v1, | ||
| 694 | .octets = { | ||
| 695 | 0x04, 0x23, 0xe5, 0x85, 0xa5, 0x4b, 0xda, 0x34, | ||
| 696 | 0x7e, 0xe5, 0x65, 0x53, 0x7f, 0x3b, 0xce, 0xe4, | ||
| 697 | 0x54, 0xd8, 0xa4, 0x5a, 0x53, 0x4b, 0xb0, 0x4c, | ||
| 698 | 0xb9, 0x31, 0x09, 0x29, 0xa2, 0x03, 0x4c, 0x73, | ||
| 699 | 0x20, 0xd2, 0xc6, 0x17, 0xca, 0xe3, 0xcf, 0xc2, | ||
| 700 | 0xd8, 0x31, 0xfe, 0xf1, 0x7c, 0x6f, 0x9d, 0x7a, | ||
| 701 | 0x01, 0x7c, 0x34, 0x65, 0x42, 0x05, 0xaf, 0xcc, | ||
| 702 | 0x04, 0xa3, 0x2f, 0x44, 0x14, 0xbe, 0xd8, 0xc2, | ||
| 703 | 0x03, | ||
| 704 | }, | ||
| 705 | .octets_len = 65, | ||
| 706 | .valid = 1, | ||
| 707 | }, | ||
| 708 | { | ||
| 709 | .description = | ||
| 710 | "generic uncompressed point on secp256r1 (flipped y_bit)", | ||
| 711 | .nid = NID_X9_62_prime256v1, | ||
| 712 | .octets = { | ||
| 713 | 0x05, 0x23, 0xe5, 0x85, 0xa5, 0x4b, 0xda, 0x34, | ||
| 714 | 0x7e, 0xe5, 0x65, 0x53, 0x7f, 0x3b, 0xce, 0xe4, | ||
| 715 | 0x54, 0xd8, 0xa4, 0x5a, 0x53, 0x4b, 0xb0, 0x4c, | ||
| 716 | 0xb9, 0x31, 0x09, 0x29, 0xa2, 0x03, 0x4c, 0x73, | ||
| 717 | 0x20, 0xd2, 0xc6, 0x17, 0xca, 0xe3, 0xcf, 0xc2, | ||
| 718 | 0xd8, 0x31, 0xfe, 0xf1, 0x7c, 0x6f, 0x9d, 0x7a, | ||
| 719 | 0x01, 0x7c, 0x34, 0x65, 0x42, 0x05, 0xaf, 0xcc, | ||
| 720 | 0x04, 0xa3, 0x2f, 0x44, 0x14, 0xbe, 0xd8, 0xc2, | ||
| 721 | 0x03, | ||
| 722 | }, | ||
| 723 | .octets_len = 65, | ||
| 724 | .valid = 0, | ||
| 725 | }, | ||
| 726 | { | ||
| 727 | .description = "zero x hybrid point #1 on secp256r1", | ||
| 728 | .nid = NID_X9_62_prime256v1, | ||
| 729 | .octets = { | ||
| 730 | 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 731 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 732 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 733 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 734 | 0x00, 0x66, 0x48, 0x5c, 0x78, 0x0e, 0x2f, 0x83, | ||
| 735 | 0xd7, 0x24, 0x33, 0xbd, 0x5d, 0x84, 0xa0, 0x6b, | ||
| 736 | 0xb6, 0x54, 0x1c, 0x2a, 0xf3, 0x1d, 0xae, 0x87, | ||
| 737 | 0x17, 0x28, 0xbf, 0x85, 0x6a, 0x17, 0x4f, 0x93, | ||
| 738 | 0xf4, | ||
| 739 | }, | ||
| 740 | .octets_len = 65, | ||
| 741 | .valid = 1, | ||
| 742 | }, | ||
| 743 | { | ||
| 744 | .description = | ||
| 745 | "zero x hybrid point #1 on secp256r1 (flipped y_bit)", | ||
| 746 | .nid = NID_X9_62_prime256v1, | ||
| 747 | .octets = { | ||
| 748 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 749 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 750 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 751 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 752 | 0x00, 0x66, 0x48, 0x5c, 0x78, 0x0e, 0x2f, 0x83, | ||
| 753 | 0xd7, 0x24, 0x33, 0xbd, 0x5d, 0x84, 0xa0, 0x6b, | ||
| 754 | 0xb6, 0x54, 0x1c, 0x2a, 0xf3, 0x1d, 0xae, 0x87, | ||
| 755 | 0x17, 0x28, 0xbf, 0x85, 0x6a, 0x17, 0x4f, 0x93, | ||
| 756 | 0xf4, | ||
| 757 | }, | ||
| 758 | .octets_len = 65, | ||
| 759 | .valid = 0, | ||
| 760 | }, | ||
| 761 | { | ||
| 762 | .description = "zero x hybrid point #2 on secp256r1", | ||
| 763 | .nid = NID_X9_62_prime256v1, | ||
| 764 | .octets = { | ||
| 765 | 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 766 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 767 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 768 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 769 | 0x00, 0x99, 0xb7, 0xa3, 0x86, 0xf1, 0xd0, 0x7c, | ||
| 770 | 0x29, 0xdb, 0xcc, 0x42, 0xa2, 0x7b, 0x5f, 0x94, | ||
| 771 | 0x49, 0xab, 0xe3, 0xd5, 0x0d, 0xe2, 0x51, 0x78, | ||
| 772 | 0xe8, 0xd7, 0x40, 0x7a, 0x95, 0xe8, 0xb0, 0x6c, | ||
| 773 | 0x0b, | ||
| 774 | }, | ||
| 775 | .octets_len = 65, | ||
| 776 | .valid = 1, | ||
| 777 | }, | ||
| 778 | { | ||
| 779 | .description = | ||
| 780 | "zero x hybrid point #2 on secp256r1 (flipped y_bit)", | ||
| 781 | .nid = NID_X9_62_prime256v1, | ||
| 782 | .octets = { | ||
| 783 | 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 784 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 785 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 786 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 787 | 0x00, 0x99, 0xb7, 0xa3, 0x86, 0xf1, 0xd0, 0x7c, | ||
| 788 | 0x29, 0xdb, 0xcc, 0x42, 0xa2, 0x7b, 0x5f, 0x94, | ||
| 789 | 0x49, 0xab, 0xe3, 0xd5, 0x0d, 0xe2, 0x51, 0x78, | ||
| 790 | 0xe8, 0xd7, 0x40, 0x7a, 0x95, 0xe8, 0xb0, 0x6c, | ||
| 791 | 0x0b, | ||
| 792 | }, | ||
| 793 | .octets_len = 65, | ||
| 794 | .valid = 0, | ||
| 795 | }, | ||
| 796 | { | ||
| 797 | .description = "generic hybrid point on secp256r1", | ||
| 798 | .nid = NID_X9_62_prime256v1, | ||
| 799 | .octets = { | ||
| 800 | 0x07, 0x38, 0xb2, 0x98, 0x38, 0x21, 0x6b, 0xec, | ||
| 801 | 0x87, 0xcf, 0x50, 0xbb, 0x65, 0x11, 0x96, 0x63, | ||
| 802 | 0xf3, 0x90, 0x64, 0xc3, 0x5c, 0x59, 0xa5, 0x6f, | ||
| 803 | 0xaf, 0x56, 0x2a, 0x0c, 0xc0, 0x3a, 0x9b, 0x92, | ||
| 804 | 0x85, 0x95, 0x54, 0xf3, 0x08, 0x0f, 0x78, 0x59, | ||
| 805 | 0xa2, 0x44, 0x2f, 0x19, 0x5d, 0xd5, 0xcd, 0xf6, | ||
| 806 | 0xa5, 0xbe, 0x2f, 0x83, 0x70, 0x94, 0xf5, 0xcd, | ||
| 807 | 0x8c, 0x40, 0x7f, 0xd8, 0x97, 0x92, 0x14, 0xf7, | ||
| 808 | 0xc5, | ||
| 809 | }, | ||
| 810 | .octets_len = 65, | ||
| 811 | .valid = 1, | ||
| 812 | }, | ||
| 813 | { | ||
| 814 | .description = "generic hybrid point on secp256r1", | ||
| 815 | .nid = NID_X9_62_prime256v1, | ||
| 816 | .octets = { | ||
| 817 | 0x06, 0x38, 0xb2, 0x98, 0x38, 0x21, 0x6b, 0xec, | ||
| 818 | 0x87, 0xcf, 0x50, 0xbb, 0x65, 0x11, 0x96, 0x63, | ||
| 819 | 0xf3, 0x90, 0x64, 0xc3, 0x5c, 0x59, 0xa5, 0x6f, | ||
| 820 | 0xaf, 0x56, 0x2a, 0x0c, 0xc0, 0x3a, 0x9b, 0x92, | ||
| 821 | 0x85, 0x95, 0x54, 0xf3, 0x08, 0x0f, 0x78, 0x59, | ||
| 822 | 0xa2, 0x44, 0x2f, 0x19, 0x5d, 0xd5, 0xcd, 0xf6, | ||
| 823 | 0xa5, 0xbe, 0x2f, 0x83, 0x70, 0x94, 0xf5, 0xcd, | ||
| 824 | 0x8c, 0x40, 0x7f, 0xd8, 0x97, 0x92, 0x14, 0xf7, | ||
| 825 | 0xc5, | ||
| 826 | }, | ||
| 827 | .octets_len = 65, | ||
| 828 | .valid = 0, | ||
| 829 | }, | ||
| 552 | }; | 830 | }; |
| 553 | 831 | ||
| 554 | static const size_t N_POINT_CONVERSIONS = | 832 | static const size_t N_POINT_CONVERSIONS = |
