diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509_addr.c')
| -rw-r--r-- | src/lib/libcrypto/x509/x509_addr.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/lib/libcrypto/x509/x509_addr.c b/src/lib/libcrypto/x509/x509_addr.c index e15bf821da..ee4e285a77 100644 --- a/src/lib/libcrypto/x509/x509_addr.c +++ b/src/lib/libcrypto/x509/x509_addr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: x509_addr.c,v 1.83 2022/05/25 17:10:30 tb Exp $ */ | 1 | /* $OpenBSD: x509_addr.c,v 1.84 2022/11/14 17:48:49 beck Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Contributed to the OpenSSL Project by the American Registry for | 3 | * Contributed to the OpenSSL Project by the American Registry for |
| 4 | * Internet Numbers ("ARIN"). | 4 | * Internet Numbers ("ARIN"). |
| @@ -215,24 +215,28 @@ d2i_IPAddressRange(IPAddressRange **a, const unsigned char **in, long len) | |||
| 215 | return (IPAddressRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | 215 | return (IPAddressRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, |
| 216 | &IPAddressRange_it); | 216 | &IPAddressRange_it); |
| 217 | } | 217 | } |
| 218 | LCRYPTO_ALIAS(d2i_IPAddressRange) | ||
| 218 | 219 | ||
| 219 | int | 220 | int |
| 220 | i2d_IPAddressRange(IPAddressRange *a, unsigned char **out) | 221 | i2d_IPAddressRange(IPAddressRange *a, unsigned char **out) |
| 221 | { | 222 | { |
| 222 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressRange_it); | 223 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressRange_it); |
| 223 | } | 224 | } |
| 225 | LCRYPTO_ALIAS(i2d_IPAddressRange) | ||
| 224 | 226 | ||
| 225 | IPAddressRange * | 227 | IPAddressRange * |
| 226 | IPAddressRange_new(void) | 228 | IPAddressRange_new(void) |
| 227 | { | 229 | { |
| 228 | return (IPAddressRange *)ASN1_item_new(&IPAddressRange_it); | 230 | return (IPAddressRange *)ASN1_item_new(&IPAddressRange_it); |
| 229 | } | 231 | } |
| 232 | LCRYPTO_ALIAS(IPAddressRange_new) | ||
| 230 | 233 | ||
| 231 | void | 234 | void |
| 232 | IPAddressRange_free(IPAddressRange *a) | 235 | IPAddressRange_free(IPAddressRange *a) |
| 233 | { | 236 | { |
| 234 | ASN1_item_free((ASN1_VALUE *)a, &IPAddressRange_it); | 237 | ASN1_item_free((ASN1_VALUE *)a, &IPAddressRange_it); |
| 235 | } | 238 | } |
| 239 | LCRYPTO_ALIAS(IPAddressRange_free) | ||
| 236 | 240 | ||
| 237 | IPAddressOrRange * | 241 | IPAddressOrRange * |
| 238 | d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len) | 242 | d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len) |
| @@ -240,24 +244,28 @@ d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len) | |||
| 240 | return (IPAddressOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | 244 | return (IPAddressOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, |
| 241 | &IPAddressOrRange_it); | 245 | &IPAddressOrRange_it); |
| 242 | } | 246 | } |
| 247 | LCRYPTO_ALIAS(d2i_IPAddressOrRange) | ||
| 243 | 248 | ||
| 244 | int | 249 | int |
| 245 | i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char **out) | 250 | i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char **out) |
| 246 | { | 251 | { |
| 247 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressOrRange_it); | 252 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressOrRange_it); |
| 248 | } | 253 | } |
| 254 | LCRYPTO_ALIAS(i2d_IPAddressOrRange) | ||
| 249 | 255 | ||
| 250 | IPAddressOrRange * | 256 | IPAddressOrRange * |
| 251 | IPAddressOrRange_new(void) | 257 | IPAddressOrRange_new(void) |
| 252 | { | 258 | { |
| 253 | return (IPAddressOrRange *)ASN1_item_new(&IPAddressOrRange_it); | 259 | return (IPAddressOrRange *)ASN1_item_new(&IPAddressOrRange_it); |
| 254 | } | 260 | } |
| 261 | LCRYPTO_ALIAS(IPAddressOrRange_new) | ||
| 255 | 262 | ||
| 256 | void | 263 | void |
| 257 | IPAddressOrRange_free(IPAddressOrRange *a) | 264 | IPAddressOrRange_free(IPAddressOrRange *a) |
| 258 | { | 265 | { |
| 259 | ASN1_item_free((ASN1_VALUE *)a, &IPAddressOrRange_it); | 266 | ASN1_item_free((ASN1_VALUE *)a, &IPAddressOrRange_it); |
| 260 | } | 267 | } |
| 268 | LCRYPTO_ALIAS(IPAddressOrRange_free) | ||
| 261 | 269 | ||
| 262 | IPAddressChoice * | 270 | IPAddressChoice * |
| 263 | d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len) | 271 | d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len) |
| @@ -265,24 +273,28 @@ d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len) | |||
| 265 | return (IPAddressChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | 273 | return (IPAddressChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, |
| 266 | &IPAddressChoice_it); | 274 | &IPAddressChoice_it); |
| 267 | } | 275 | } |
| 276 | LCRYPTO_ALIAS(d2i_IPAddressChoice) | ||
| 268 | 277 | ||
| 269 | int | 278 | int |
| 270 | i2d_IPAddressChoice(IPAddressChoice *a, unsigned char **out) | 279 | i2d_IPAddressChoice(IPAddressChoice *a, unsigned char **out) |
| 271 | { | 280 | { |
| 272 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressChoice_it); | 281 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressChoice_it); |
| 273 | } | 282 | } |
| 283 | LCRYPTO_ALIAS(i2d_IPAddressChoice) | ||
| 274 | 284 | ||
| 275 | IPAddressChoice * | 285 | IPAddressChoice * |
| 276 | IPAddressChoice_new(void) | 286 | IPAddressChoice_new(void) |
| 277 | { | 287 | { |
| 278 | return (IPAddressChoice *)ASN1_item_new(&IPAddressChoice_it); | 288 | return (IPAddressChoice *)ASN1_item_new(&IPAddressChoice_it); |
| 279 | } | 289 | } |
| 290 | LCRYPTO_ALIAS(IPAddressChoice_new) | ||
| 280 | 291 | ||
| 281 | void | 292 | void |
| 282 | IPAddressChoice_free(IPAddressChoice *a) | 293 | IPAddressChoice_free(IPAddressChoice *a) |
| 283 | { | 294 | { |
| 284 | ASN1_item_free((ASN1_VALUE *)a, &IPAddressChoice_it); | 295 | ASN1_item_free((ASN1_VALUE *)a, &IPAddressChoice_it); |
| 285 | } | 296 | } |
| 297 | LCRYPTO_ALIAS(IPAddressChoice_free) | ||
| 286 | 298 | ||
| 287 | IPAddressFamily * | 299 | IPAddressFamily * |
| 288 | d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len) | 300 | d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len) |
| @@ -290,24 +302,28 @@ d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len) | |||
| 290 | return (IPAddressFamily *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | 302 | return (IPAddressFamily *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, |
| 291 | &IPAddressFamily_it); | 303 | &IPAddressFamily_it); |
| 292 | } | 304 | } |
| 305 | LCRYPTO_ALIAS(d2i_IPAddressFamily) | ||
| 293 | 306 | ||
| 294 | int | 307 | int |
| 295 | i2d_IPAddressFamily(IPAddressFamily *a, unsigned char **out) | 308 | i2d_IPAddressFamily(IPAddressFamily *a, unsigned char **out) |
| 296 | { | 309 | { |
| 297 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressFamily_it); | 310 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressFamily_it); |
| 298 | } | 311 | } |
| 312 | LCRYPTO_ALIAS(i2d_IPAddressFamily) | ||
| 299 | 313 | ||
| 300 | IPAddressFamily * | 314 | IPAddressFamily * |
| 301 | IPAddressFamily_new(void) | 315 | IPAddressFamily_new(void) |
| 302 | { | 316 | { |
| 303 | return (IPAddressFamily *)ASN1_item_new(&IPAddressFamily_it); | 317 | return (IPAddressFamily *)ASN1_item_new(&IPAddressFamily_it); |
| 304 | } | 318 | } |
| 319 | LCRYPTO_ALIAS(IPAddressFamily_new) | ||
| 305 | 320 | ||
| 306 | void | 321 | void |
| 307 | IPAddressFamily_free(IPAddressFamily *a) | 322 | IPAddressFamily_free(IPAddressFamily *a) |
| 308 | { | 323 | { |
| 309 | ASN1_item_free((ASN1_VALUE *)a, &IPAddressFamily_it); | 324 | ASN1_item_free((ASN1_VALUE *)a, &IPAddressFamily_it); |
| 310 | } | 325 | } |
| 326 | LCRYPTO_ALIAS(IPAddressFamily_free) | ||
| 311 | 327 | ||
| 312 | /* | 328 | /* |
| 313 | * Convenience accessors for IPAddressFamily. | 329 | * Convenience accessors for IPAddressFamily. |
| @@ -518,6 +534,7 @@ X509v3_addr_get_afi(const IPAddressFamily *af) | |||
| 518 | 534 | ||
| 519 | return afi; | 535 | return afi; |
| 520 | } | 536 | } |
| 537 | LCRYPTO_ALIAS(X509v3_addr_get_afi) | ||
| 521 | 538 | ||
| 522 | /* | 539 | /* |
| 523 | * Expand the bitstring form (RFC 3779, section 2.1.2) of an address into | 540 | * Expand the bitstring form (RFC 3779, section 2.1.2) of an address into |
| @@ -1093,6 +1110,7 @@ X509v3_addr_add_inherit(IPAddrBlocks *addr, const unsigned afi, | |||
| 1093 | 1110 | ||
| 1094 | return IPAddressFamily_set_inheritance(af); | 1111 | return IPAddressFamily_set_inheritance(af); |
| 1095 | } | 1112 | } |
| 1113 | LCRYPTO_ALIAS(X509v3_addr_add_inherit) | ||
| 1096 | 1114 | ||
| 1097 | /* | 1115 | /* |
| 1098 | * Construct an IPAddressOrRange sequence, or return an existing one. | 1116 | * Construct an IPAddressOrRange sequence, or return an existing one. |
| @@ -1156,6 +1174,7 @@ X509v3_addr_add_prefix(IPAddrBlocks *addr, const unsigned afi, | |||
| 1156 | 1174 | ||
| 1157 | return 1; | 1175 | return 1; |
| 1158 | } | 1176 | } |
| 1177 | LCRYPTO_ALIAS(X509v3_addr_add_prefix) | ||
| 1159 | 1178 | ||
| 1160 | /* | 1179 | /* |
| 1161 | * Add a range. | 1180 | * Add a range. |
| @@ -1183,6 +1202,7 @@ X509v3_addr_add_range(IPAddrBlocks *addr, const unsigned afi, | |||
| 1183 | 1202 | ||
| 1184 | return 1; | 1203 | return 1; |
| 1185 | } | 1204 | } |
| 1205 | LCRYPTO_ALIAS(X509v3_addr_add_range) | ||
| 1186 | 1206 | ||
| 1187 | static int | 1207 | static int |
| 1188 | extract_min_max_bitstr(IPAddressOrRange *aor, ASN1_BIT_STRING **out_min, | 1208 | extract_min_max_bitstr(IPAddressOrRange *aor, ASN1_BIT_STRING **out_min, |
| @@ -1242,6 +1262,7 @@ X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, | |||
| 1242 | 1262 | ||
| 1243 | return afi_len; | 1263 | return afi_len; |
| 1244 | } | 1264 | } |
| 1265 | LCRYPTO_ALIAS(X509v3_addr_get_range) | ||
| 1245 | 1266 | ||
| 1246 | /* | 1267 | /* |
| 1247 | * Check whether an IPAddrBLocks is in canonical form. | 1268 | * Check whether an IPAddrBLocks is in canonical form. |
| @@ -1360,6 +1381,7 @@ X509v3_addr_is_canonical(IPAddrBlocks *addr) | |||
| 1360 | */ | 1381 | */ |
| 1361 | return 1; | 1382 | return 1; |
| 1362 | } | 1383 | } |
| 1384 | LCRYPTO_ALIAS(X509v3_addr_is_canonical) | ||
| 1363 | 1385 | ||
| 1364 | /* | 1386 | /* |
| 1365 | * Whack an IPAddressOrRanges into canonical form. | 1387 | * Whack an IPAddressOrRanges into canonical form. |
| @@ -1466,6 +1488,7 @@ X509v3_addr_canonize(IPAddrBlocks *addr) | |||
| 1466 | 1488 | ||
| 1467 | return X509v3_addr_is_canonical(addr); | 1489 | return X509v3_addr_is_canonical(addr); |
| 1468 | } | 1490 | } |
| 1491 | LCRYPTO_ALIAS(X509v3_addr_canonize) | ||
| 1469 | 1492 | ||
| 1470 | /* | 1493 | /* |
| 1471 | * v2i handler for the IPAddrBlocks extension. | 1494 | * v2i handler for the IPAddrBlocks extension. |
| @@ -1709,6 +1732,7 @@ X509v3_addr_inherits(IPAddrBlocks *addr) | |||
| 1709 | 1732 | ||
| 1710 | return 0; | 1733 | return 0; |
| 1711 | } | 1734 | } |
| 1735 | LCRYPTO_ALIAS(X509v3_addr_inherits) | ||
| 1712 | 1736 | ||
| 1713 | /* | 1737 | /* |
| 1714 | * Figure out whether parent contains child. | 1738 | * Figure out whether parent contains child. |
| @@ -1792,6 +1816,7 @@ X509v3_addr_subset(IPAddrBlocks *child, IPAddrBlocks *parent) | |||
| 1792 | } | 1816 | } |
| 1793 | return 1; | 1817 | return 1; |
| 1794 | } | 1818 | } |
| 1819 | LCRYPTO_ALIAS(X509v3_addr_subset) | ||
| 1795 | 1820 | ||
| 1796 | static int | 1821 | static int |
| 1797 | verify_error(X509_STORE_CTX *ctx, X509 *cert, int error, int depth) | 1822 | verify_error(X509_STORE_CTX *ctx, X509 *cert, int error, int depth) |
| @@ -1997,6 +2022,7 @@ X509v3_addr_validate_path(X509_STORE_CTX *ctx) | |||
| 1997 | } | 2022 | } |
| 1998 | return addr_validate_path_internal(ctx, ctx->chain, NULL); | 2023 | return addr_validate_path_internal(ctx, ctx->chain, NULL); |
| 1999 | } | 2024 | } |
| 2025 | LCRYPTO_ALIAS(X509v3_addr_validate_path) | ||
| 2000 | 2026 | ||
| 2001 | /* | 2027 | /* |
| 2002 | * RFC 3779 2.3 path validation of an extension. | 2028 | * RFC 3779 2.3 path validation of an extension. |
| @@ -2014,5 +2040,6 @@ X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, IPAddrBlocks *ext, | |||
| 2014 | return 0; | 2040 | return 0; |
| 2015 | return addr_validate_path_internal(NULL, chain, ext); | 2041 | return addr_validate_path_internal(NULL, chain, ext); |
| 2016 | } | 2042 | } |
| 2043 | LCRYPTO_ALIAS(X509v3_addr_validate_resource_set) | ||
| 2017 | 2044 | ||
| 2018 | #endif /* OPENSSL_NO_RFC3779 */ | 2045 | #endif /* OPENSSL_NO_RFC3779 */ |
