diff options
| author | tb <> | 2022-01-07 22:46:05 +0000 |
|---|---|---|
| committer | tb <> | 2022-01-07 22:46:05 +0000 |
| commit | 1a32dddf946a2c1991541d3afdc15598c788cd6b (patch) | |
| tree | 87c759168c06fc0e155d7ad90cb207b6c03a84f6 /src | |
| parent | 055ebcfe9857ff4afa7d4647adb0b6c109475eca (diff) | |
| download | openbsd-1a32dddf946a2c1991541d3afdc15598c788cd6b.tar.gz openbsd-1a32dddf946a2c1991541d3afdc15598c788cd6b.tar.bz2 openbsd-1a32dddf946a2c1991541d3afdc15598c788cd6b.zip | |
Add some workarounds to make build_addr_block_test_data const.
Diffstat (limited to 'src')
| -rw-r--r-- | src/regress/lib/libcrypto/x509/rfc3779/rfc3779.c | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/src/regress/lib/libcrypto/x509/rfc3779/rfc3779.c b/src/regress/lib/libcrypto/x509/rfc3779/rfc3779.c index 384d1441e4..d9b3007ac2 100644 --- a/src/regress/lib/libcrypto/x509/rfc3779/rfc3779.c +++ b/src/regress/lib/libcrypto/x509/rfc3779/rfc3779.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rfc3779.c,v 1.5 2022/01/06 14:55:52 tb Exp $ */ | 1 | /* $OpenBSD: rfc3779.c,v 1.6 2022/01/07 22:46:05 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2021 Theo Buehler <tb@openbsd.org> | 3 | * Copyright (c) 2021 Theo Buehler <tb@openbsd.org> |
| 4 | * | 4 | * |
| @@ -471,12 +471,7 @@ struct build_addr_block_test_data { | |||
| 471 | int afi_len; | 471 | int afi_len; |
| 472 | }; | 472 | }; |
| 473 | 473 | ||
| 474 | /* | 474 | const struct build_addr_block_test_data build_addr_block_tests[] = { |
| 475 | * This struct isn't const since the address arguments of | ||
| 476 | * X509v3_addr_add_{prefix,range}() aren't const and it's | ||
| 477 | * not worth working around this. | ||
| 478 | */ | ||
| 479 | struct build_addr_block_test_data build_addr_block_tests[] = { | ||
| 480 | { | 475 | { |
| 481 | .description = "RFC 3779, Appendix B, example 1", | 476 | .description = "RFC 3779, Appendix B, example 1", |
| 482 | .addrs = { | 477 | .addrs = { |
| @@ -791,15 +786,22 @@ addr_block_get_safi(const struct ip_addr_block *addr) | |||
| 791 | 786 | ||
| 792 | static int | 787 | static int |
| 793 | addr_block_add_ipv4_addr(IPAddrBlocks *block, enum choice_type type, | 788 | addr_block_add_ipv4_addr(IPAddrBlocks *block, enum choice_type type, |
| 794 | union ipv4_choice *ipv4, unsigned int *safi) | 789 | const union ipv4_choice *ipv4, unsigned int *safi) |
| 795 | { | 790 | { |
| 791 | unsigned char addr[RAW_ADDRESS_SIZE] = {0}; | ||
| 792 | unsigned char min[RAW_ADDRESS_SIZE]; | ||
| 793 | unsigned char max[RAW_ADDRESS_SIZE]; | ||
| 794 | |||
| 796 | switch (type) { | 795 | switch (type) { |
| 797 | case choice_prefix: | 796 | case choice_prefix: |
| 797 | memcpy(addr, ipv4->prefix.addr, ipv4->prefix.addr_len); | ||
| 798 | return X509v3_addr_add_prefix(block, IANA_AFI_IPV4, safi, | 798 | return X509v3_addr_add_prefix(block, IANA_AFI_IPV4, safi, |
| 799 | ipv4->prefix.addr, ipv4->prefix.prefix_len); | 799 | addr, ipv4->prefix.prefix_len); |
| 800 | case choice_range: | 800 | case choice_range: |
| 801 | memcpy(min, ipv4->range.min, sizeof(ipv4->range.min)); | ||
| 802 | memcpy(max, ipv4->range.max, sizeof(ipv4->range.max)); | ||
| 801 | return X509v3_addr_add_range(block, IANA_AFI_IPV4, safi, | 803 | return X509v3_addr_add_range(block, IANA_AFI_IPV4, safi, |
| 802 | ipv4->range.min, ipv4->range.max); | 804 | min, max); |
| 803 | case choice_inherit: | 805 | case choice_inherit: |
| 804 | return X509v3_addr_add_inherit(block, IANA_AFI_IPV4, safi); | 806 | return X509v3_addr_add_inherit(block, IANA_AFI_IPV4, safi); |
| 805 | case choice_last: | 807 | case choice_last: |
| @@ -810,15 +812,22 @@ addr_block_add_ipv4_addr(IPAddrBlocks *block, enum choice_type type, | |||
| 810 | 812 | ||
| 811 | static int | 813 | static int |
| 812 | addr_block_add_ipv6_addr(IPAddrBlocks *block, enum choice_type type, | 814 | addr_block_add_ipv6_addr(IPAddrBlocks *block, enum choice_type type, |
| 813 | union ipv6_choice *ipv6, unsigned int *safi) | 815 | const union ipv6_choice *ipv6, unsigned int *safi) |
| 814 | { | 816 | { |
| 817 | unsigned char addr[RAW_ADDRESS_SIZE] = {0}; | ||
| 818 | unsigned char min[RAW_ADDRESS_SIZE]; | ||
| 819 | unsigned char max[RAW_ADDRESS_SIZE]; | ||
| 820 | |||
| 815 | switch (type) { | 821 | switch (type) { |
| 816 | case choice_prefix: | 822 | case choice_prefix: |
| 823 | memcpy(addr, ipv6->prefix.addr, ipv6->prefix.addr_len); | ||
| 817 | return X509v3_addr_add_prefix(block, IANA_AFI_IPV6, safi, | 824 | return X509v3_addr_add_prefix(block, IANA_AFI_IPV6, safi, |
| 818 | ipv6->prefix.addr, ipv6->prefix.prefix_len); | 825 | addr, ipv6->prefix.prefix_len); |
| 819 | case choice_range: | 826 | case choice_range: |
| 827 | memcpy(min, ipv6->range.min, sizeof(ipv6->range.min)); | ||
| 828 | memcpy(max, ipv6->range.max, sizeof(ipv6->range.max)); | ||
| 820 | return X509v3_addr_add_range(block, IANA_AFI_IPV6, safi, | 829 | return X509v3_addr_add_range(block, IANA_AFI_IPV6, safi, |
| 821 | ipv6->range.min, ipv6->range.max); | 830 | min, max); |
| 822 | case choice_inherit: | 831 | case choice_inherit: |
| 823 | return X509v3_addr_add_inherit(block, IANA_AFI_IPV6, safi); | 832 | return X509v3_addr_add_inherit(block, IANA_AFI_IPV6, safi); |
| 824 | case choice_last: | 833 | case choice_last: |
| @@ -828,10 +837,10 @@ addr_block_add_ipv6_addr(IPAddrBlocks *block, enum choice_type type, | |||
| 828 | } | 837 | } |
| 829 | 838 | ||
| 830 | static int | 839 | static int |
| 831 | addr_block_add_addrs(IPAddrBlocks *block, struct ip_addr_block addrs[]) | 840 | addr_block_add_addrs(IPAddrBlocks *block, const struct ip_addr_block addrs[]) |
| 832 | { | 841 | { |
| 833 | struct ip_addr_block *addr; | 842 | const struct ip_addr_block *addr; |
| 834 | unsigned int *safi; | 843 | unsigned int *safi; |
| 835 | 844 | ||
| 836 | for (addr = &addrs[0]; addr->type != choice_last; addr++) { | 845 | for (addr = &addrs[0]; addr->type != choice_last; addr++) { |
| 837 | safi = addr_block_get_safi(addr); | 846 | safi = addr_block_get_safi(addr); |
| @@ -856,7 +865,7 @@ addr_block_add_addrs(IPAddrBlocks *block, struct ip_addr_block addrs[]) | |||
| 856 | } | 865 | } |
| 857 | 866 | ||
| 858 | static int | 867 | static int |
| 859 | build_addr_block_test(struct build_addr_block_test_data *test) | 868 | build_addr_block_test(const struct build_addr_block_test_data *test) |
| 860 | { | 869 | { |
| 861 | IPAddrBlocks *addrs = NULL; | 870 | IPAddrBlocks *addrs = NULL; |
| 862 | unsigned char *out = NULL; | 871 | unsigned char *out = NULL; |
