X509V3_ADDR_INHERITS(3) | Library Functions Manual | X509V3_ADDR_INHERITS(3)

# NAME

`X509v3_addr_inherits`, `X509v3_asid_inherits` — RFC 3779 inheritance

# SYNOPSIS

library “libcrypto”
`#include <openssl/x509v3.h>`

int
`X509v3_addr_inherits`(IPAddrBlocks *addrblocks);

int
`X509v3_asid_inherits`(ASIdentifiers *asids);

# DESCRIPTION

`X509v3_addr_inherits`() determines if there is at least one address family in addrblocks that uses inheritance.

`X509v3_asid_inherits`() is intended to determine if at least one of the list of autonomous system numbers or the list of routing domain identifiers uses inheritance.

# RETURN VALUES

`X509v3_addr_inherits`() returns 1 if and only if addrblocks contains at least one IPAddressFamily object that is correctly marked “inherit”: its IPAddressChoice is of type `IPAddressChoice_inherit` and its inherit element is present. Otherwise it returns 0.

`X509v3_asid_inherits`() returns 1 if and only if at least one of the asnum or the rdi lists has type `ASIdentifierChoice_inherit`. Otherwise it returns 0.

# SEE ALSO

ASIdentifiers_new(3), ASRange_new(3), crypto(3), IPAddressRange_new(3), X509_new(3), X509v3_addr_add_inherit(3), X509v3_asid_add_inherit(3)

# STANDARDS

RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers:

- section 2: IP Address delegation extension
- section 2.2.3.5: Element inherit
- section 3: AS identifiers delegation extension
- section 3.2.3.3: Element inherit

# HISTORY

These functions first appeared in OpenSSL 0.9.8e and have been available since OpenBSD 7.1.

# BUGS

`X509v3_asid_inherits`() ignores whether the inherit element is present or absent in the list that is considered to use inheritance.

There is no API that determines whether all lists contained in an ASIdentifiers or an IPAddrBlocks object inherit. See RFC 9287, 5.1.2 for an example where this is relevant.

June 8, 2025 | Debian