summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/regress/lib/libcrypto/x509/rfc3779/rfc3779.c43
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/* 474const 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 */
479struct 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
792static int 787static int
793addr_block_add_ipv4_addr(IPAddrBlocks *block, enum choice_type type, 788addr_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
811static int 813static int
812addr_block_add_ipv6_addr(IPAddrBlocks *block, enum choice_type type, 814addr_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
830static int 839static int
831addr_block_add_addrs(IPAddrBlocks *block, struct ip_addr_block addrs[]) 840addr_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
858static int 867static int
859build_addr_block_test(struct build_addr_block_test_data *test) 868build_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;