summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2023-09-27 08:46:46 +0000
committertb <>2023-09-27 08:46:46 +0000
commit7d90a600d0797645d480c64312d7b1bfa6fd7659 (patch)
tree719cb838b20bef98a7212beea365f196a2e9ef12
parent72882765a38f31ef7380ef172db68383286dce75 (diff)
downloadopenbsd-7d90a600d0797645d480c64312d7b1bfa6fd7659.tar.gz
openbsd-7d90a600d0797645d480c64312d7b1bfa6fd7659.tar.bz2
openbsd-7d90a600d0797645d480c64312d7b1bfa6fd7659.zip
Various small tweaks in the RFC 3779 docs
Mention a few more bugs and unify manpage descriptions
-rw-r--r--src/lib/libcrypto/man/ASIdentifiers_new.38
-rw-r--r--src/lib/libcrypto/man/ASRange_new.318
-rw-r--r--src/lib/libcrypto/man/IPAddressRange_new.335
-rw-r--r--src/lib/libcrypto/man/X509v3_addr_add_inherit.342
-rw-r--r--src/lib/libcrypto/man/X509v3_addr_inherits.38
-rw-r--r--src/lib/libcrypto/man/X509v3_asid_add_id_or_range.316
6 files changed, 69 insertions, 58 deletions
diff --git a/src/lib/libcrypto/man/ASIdentifiers_new.3 b/src/lib/libcrypto/man/ASIdentifiers_new.3
index 613fd3ce80..4f6bf67f10 100644
--- a/src/lib/libcrypto/man/ASIdentifiers_new.3
+++ b/src/lib/libcrypto/man/ASIdentifiers_new.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: ASIdentifiers_new.3,v 1.6 2023/09/26 20:42:45 tb Exp $ 1.\" $OpenBSD: ASIdentifiers_new.3,v 1.7 2023/09/27 08:46:46 tb Exp $
2.\" 2.\"
3.\" Copyright (c) 2021 Theo Buehler <tb@openbsd.org> 3.\" Copyright (c) 2021 Theo Buehler <tb@openbsd.org>
4.\" 4.\"
@@ -14,7 +14,7 @@
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\" 16.\"
17.Dd $Mdocdate: September 26 2023 $ 17.Dd $Mdocdate: September 27 2023 $
18.Dt ASIDENTIFIERS_NEW 3 18.Dt ASIDENTIFIERS_NEW 3
19.Os 19.Os
20.Sh NAME 20.Sh NAME
@@ -22,7 +22,7 @@
22.Nm ASIdentifiers_free , 22.Nm ASIdentifiers_free ,
23.Nm d2i_ASIdentifiers , 23.Nm d2i_ASIdentifiers ,
24.Nm i2d_ASIdentifiers 24.Nm i2d_ASIdentifiers
25.Nd X509v3 certificate extension for autonomous system identifier delegation 25.Nd RFC 3779 autonomous system identifier delegation extensions
26.Sh SYNOPSIS 26.Sh SYNOPSIS
27.In openssl/x509v3.h 27.In openssl/x509v3.h
28.Ft ASIdentifiers * 28.Ft ASIdentifiers *
@@ -112,7 +112,7 @@ or a value <= 0 if an error occurs.
112.Xr crypto 3 , 112.Xr crypto 3 ,
113.Xr IPAddressRange_new 3 , 113.Xr IPAddressRange_new 3 ,
114.Xr X509_new 3 , 114.Xr X509_new 3 ,
115.Xr X509v3_asid_add_id_or_range 3 115.Xr X509v3_asid_add_id_or_range 3 ,
116.Xr X509v3_asid_inherits 3 116.Xr X509v3_asid_inherits 3
117.Sh STANDARDS 117.Sh STANDARDS
118RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers: 118RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers:
diff --git a/src/lib/libcrypto/man/ASRange_new.3 b/src/lib/libcrypto/man/ASRange_new.3
index 75b911c588..12eff26792 100644
--- a/src/lib/libcrypto/man/ASRange_new.3
+++ b/src/lib/libcrypto/man/ASRange_new.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: ASRange_new.3,v 1.4 2023/09/26 15:34:23 tb Exp $ 1.\" $OpenBSD: ASRange_new.3,v 1.5 2023/09/27 08:46:46 tb Exp $
2.\" 2.\"
3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org> 3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
4.\" 4.\"
@@ -14,7 +14,7 @@
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\" 16.\"
17.Dd $Mdocdate: September 26 2023 $ 17.Dd $Mdocdate: September 27 2023 $
18.Dt ASRANGE_NEW 3 18.Dt ASRANGE_NEW 3
19.Os 19.Os
20.Sh NAME 20.Sh NAME
@@ -30,7 +30,7 @@
30.Nm ASIdentifierChoice_free , 30.Nm ASIdentifierChoice_free ,
31.Nm d2i_ASIdentifierChoice , 31.Nm d2i_ASIdentifierChoice ,
32.Nm i2d_ASIdentifierChoice 32.Nm i2d_ASIdentifierChoice
33.Nd Autonomous system identifiers and ranges 33.Nd RFC 3779 autonomous system identifiers and ranges
34.Sh SYNOPSIS 34.Sh SYNOPSIS
35.In openssl/x509v3.h 35.In openssl/x509v3.h
36.Ft "ASRange *" 36.Ft "ASRange *"
@@ -87,21 +87,21 @@ are building blocks of the
87.Vt ASIdentifiers 87.Vt ASIdentifiers
88type representing the RFC 3779 88type representing the RFC 3779
89autonomous system identifier delegation extension. 89autonomous system identifier delegation extension.
90See
91.Xr ASIdentifiers_new 3
92and
93.Xr X509v3_asid_add_id_or_range 3
94for more details.
95.Pp 90.Pp
96All 91All
97.Vt ASN1_INTEGER Ns s 92.Vt ASN1_INTEGER Ns s
98in this manual should be representable as unsigned 32-bit integers. 93in this manual should be representable as unsigned 32-bit integers.
94The API performs no corresponding checks.
99The library provides no convenient way of setting the value of an 95The library provides no convenient way of setting the value of an
100.Vt ASN1_INTEGER 96.Vt ASN1_INTEGER
101directly. 97directly.
102A detour via a 98A detour via a
103.Vt BIGNUM 99.Vt BIGNUM
104or a string is unavoidable. 100or a string is unavoidable.
101To retrieve the value of an
102.Vt ASN1_INTEGER ,
103use
104.Xr ASN1_INTEGER_get_uint64 3 .
105.Pp 105.Pp
106The 106The
107.Vt ASRange 107.Vt ASRange
@@ -310,7 +310,7 @@ object of
310.Fn ASRange_new 310.Fn ASRange_new
311returns a new 311returns a new
312.Vt ASRange 312.Vt ASRange
313object or 313object with allocated, empty members, or
314.Dv NULL 314.Dv NULL
315if an error occurs. 315if an error occurs.
316.Pp 316.Pp
diff --git a/src/lib/libcrypto/man/IPAddressRange_new.3 b/src/lib/libcrypto/man/IPAddressRange_new.3
index bee18bc0b4..07c57f3e5d 100644
--- a/src/lib/libcrypto/man/IPAddressRange_new.3
+++ b/src/lib/libcrypto/man/IPAddressRange_new.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: IPAddressRange_new.3,v 1.3 2023/09/26 20:42:45 tb Exp $ 1.\" $OpenBSD: IPAddressRange_new.3,v 1.4 2023/09/27 08:46:46 tb Exp $
2.\" 2.\"
3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org> 3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
4.\" 4.\"
@@ -14,7 +14,7 @@
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\" 16.\"
17.Dd $Mdocdate: September 26 2023 $ 17.Dd $Mdocdate: September 27 2023 $
18.Dt IPADDRESSRANGE_NEW 3 18.Dt IPADDRESSRANGE_NEW 3
19.Os 19.Os
20.Sh NAME 20.Sh NAME
@@ -34,7 +34,7 @@
34.Nm IPAddressFamily_free , 34.Nm IPAddressFamily_free ,
35.Nm d2i_IPAddressFamily , 35.Nm d2i_IPAddressFamily ,
36.Nm i2d_IPAddressFamily 36.Nm i2d_IPAddressFamily
37.Nd IP address prefixes and ranges 37.Nd RFC 3779 IP address prefixes and ranges
38.Sh SYNOPSIS 38.Sh SYNOPSIS
39.In openssl/x509v3.h 39.In openssl/x509v3.h
40.Ft "IPAddressRange *" 40.Ft "IPAddressRange *"
@@ -106,25 +106,21 @@ and
106are building blocks of the RFC 3779 106are building blocks of the RFC 3779
107.Vt IPAddrBlocks 107.Vt IPAddrBlocks
108type representing the IP address delegation extension. 108type representing the IP address delegation extension.
109See
110.Xr X509v3_addr_add_inherit 3
111for more details.
112.Pp 109.Pp
113Per RFC 3779, section 2.1.1, 110Per RFC 3779, section 2.1.1,
114an IPv4 or an IPv6 address is encoded in network byte order in an 111an IPv4 or an IPv6 address is encoded in network byte order in an
115ASN.1 BIT STRING of bit size 32 or 128 bits, respectively. 112ASN.1 BIT STRING of bit size 32 or 128 bits, respectively.
116The bit size of a prefix is its prefix length, 113The bit size of a prefix is its prefix length.
117in other words, all insignificant zero bits are omitted. 114In other words, all insignificant zero bits are omitted
115from the encoding.
118An address range is expressed as a pair of BIT STRINGs 116An address range is expressed as a pair of BIT STRINGs
119where all least significant zero bits of the lower bound 117where all least significant zero bits of the lower bound
120and the all least significant one bits of the upper bound are omitted. 118and the all least significant one bits of the upper bound are omitted.
121Whether a prefix or a range represents a range of IPv4 address or
122an IPv6 address must be derived from the context.
123.Pp 119.Pp
124The library provides no API for directly converting an IP address or 120The library provides no API for directly converting an IP address or
125prefix (in any form) to and from an 121prefix (in any form) to and from an
126.Vt ASN1_BIT_STRING 122.Vt ASN1_BIT_STRING .
127and it also provides no API for directly handling ranges. 123It also provides no API for directly handling ranges.
128The 124The
129.Vt ASN1_BIT_STRING 125.Vt ASN1_BIT_STRING
130internals are subtle and directly manipulating them in the 126internals are subtle and directly manipulating them in the
@@ -175,7 +171,7 @@ is
175.Dv NULL , 171.Dv NULL ,
176no action occurs. 172no action occurs.
177.Pp 173.Pp
178There is no dedicated type to represent the 174There is no dedicated type representing the
179.Vt IPAddress 175.Vt IPAddress
180type defined in RFC 3779 section 2.2.3.8. 176type defined in RFC 3779 section 2.2.3.8.
181The API uses 177The API uses
@@ -404,11 +400,11 @@ structure, see
404.Fn IPAddressRange_new 400.Fn IPAddressRange_new
405returns a new 401returns a new
406.Vt IPAddressRange 402.Vt IPAddressRange
407object or 403object with allocated, empty members, or
408.Dv NULL 404.Dv NULL
409if an error occurs. 405if an error occurs.
410.Pp 406.Pp
411.Fn IPAddressRange_new 407.Fn IPAddressOrRange_new
412returns a new, empty 408returns a new, empty
413.Vt IPAddressOrRange 409.Vt IPAddressOrRange
414object or 410object or
@@ -423,8 +419,8 @@ object or
423if an error occurs. 419if an error occurs.
424.Pp 420.Pp
425.Fn IPAddressFamily_new 421.Fn IPAddressFamily_new
426returns a new, 422returns a new
427.Vt IPAddressChoice 423.Vt IPAddressFamily
428object with allocated, empty members, or 424object with allocated, empty members, or
429.Dv NULL 425.Dv NULL
430if an error occurs. 426if an error occurs.
@@ -513,3 +509,8 @@ However, constructing objects is very error prone, be it
513by hand or using the bug-ridden 509by hand or using the bug-ridden
514.Xr X509v3_addr_add_inherit 3 510.Xr X509v3_addr_add_inherit 3
515API. 511API.
512.Pp
513RFC 3779 has element
514.Dq addressesOrRanges .
515Its type in this API is
516.Vt IPAddressOrRanges .
diff --git a/src/lib/libcrypto/man/X509v3_addr_add_inherit.3 b/src/lib/libcrypto/man/X509v3_addr_add_inherit.3
index 887a5ecb21..3ca9bc59ae 100644
--- a/src/lib/libcrypto/man/X509v3_addr_add_inherit.3
+++ b/src/lib/libcrypto/man/X509v3_addr_add_inherit.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: X509v3_addr_add_inherit.3,v 1.4 2023/09/26 18:35:34 tb Exp $ 1.\" $OpenBSD: X509v3_addr_add_inherit.3,v 1.5 2023/09/27 08:46:46 tb Exp $
2.\" 2.\"
3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org> 3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
4.\" 4.\"
@@ -14,7 +14,7 @@
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\" 16.\"
17.Dd $Mdocdate: September 26 2023 $ 17.Dd $Mdocdate: September 27 2023 $
18.Dt X509V3_ADDR_ADD_INHERIT 3 18.Dt X509V3_ADDR_ADD_INHERIT 3
19.Os 19.Os
20.Sh NAME 20.Sh NAME
@@ -23,8 +23,7 @@
23.Nm X509v3_addr_add_range , 23.Nm X509v3_addr_add_range ,
24.Nm X509v3_addr_canonize , 24.Nm X509v3_addr_canonize ,
25.Nm X509v3_addr_is_canonical 25.Nm X509v3_addr_is_canonical
26.Nd construct X509v3 IP address blocks extensions and 26.Nd RFC 3779 IP address delegation extensions
27bring them into canonical form
28.Sh SYNOPSIS 27.Sh SYNOPSIS
29.In openssl/x509v3.h 28.In openssl/x509v3.h
30.Ft int 29.Ft int
@@ -63,15 +62,18 @@ An
63object represents the content of 62object represents the content of
64an X509v3 IP address blocks delegation extension 63an X509v3 IP address blocks delegation extension
65as defined in RFC 3779, section 2.2.3.1. 64as defined in RFC 3779, section 2.2.3.1.
66It can hold lists of delegated IP address prefixes and 65It holds lists of IP address prefixes and IP address ranges
67IP address ranges. 66delegated from the issuer to the subject of the certificate.
68It can be instantiated as explained in the EXAMPLES section 67It can be instantiated as explained in the EXAMPLES section
69and its internals are documented in 68and its internals are documented in
70.Xr IPAddressRange_new 3 . 69.Xr IPAddressRange_new 3 .
71Each list is uniquely identified by 70.Pp
71Each list in a well-formed
72.Vt IPAddrBlocks
73object is uniquely identified by
72an address family identifier (AFI) and 74an address family identifier (AFI) and
73an optional subsequent address family identifier (SAFI). 75an optional subsequent address family identifier (SAFI).
74Each list can be absent or it can contain a single 76Lists can be absent or can contain an
75.Dq inherit 77.Dq inherit
76marker to indicate that the resources are to be inherited 78marker to indicate that the resources are to be inherited
77from the corresponding list of the issuer certificate. 79from the corresponding list of the issuer certificate.
@@ -171,7 +173,7 @@ In case the range of IP addresses between
171.Fa min 173.Fa min
172and 174and
173.Fa max 175.Fa max
174is a prefix, a prefix will be added. 176is a prefix, a prefix will be added instead of a range.
175It is the caller's responsibility to ensure that 177It is the caller's responsibility to ensure that
176.Fa min 178.Fa min
177is less than or equal to 179is less than or equal to
@@ -190,7 +192,8 @@ An
190.Vt IPAddrBlocks 192.Vt IPAddrBlocks
191object is said to be in canonical form if it conforms 193object is said to be in canonical form if it conforms
192to the ordering specified in RFC 3779: 194to the ordering specified in RFC 3779:
193section 2.2.3.3 requires that the lists be sorted first by increasing 195section 2.2.3.3 requires that
196the list of lists be sorted first by increasing
194.Fa afi 197.Fa afi
195and then by increasing 198and then by increasing
196.Fa safi , 199.Fa safi ,
@@ -397,7 +400,7 @@ is desired.
397.Xr IPAddressRange_new 3 , 400.Xr IPAddressRange_new 3 ,
398.Xr X509_new 3 , 401.Xr X509_new 3 ,
399.Xr X509v3_asid_add_id_or_range 3 , 402.Xr X509v3_asid_add_id_or_range 3 ,
400.Xr X509v3_asid_get_range 3 403.Xr X509v3_addr_get_range 3
401.Sh STANDARDS 404.Sh STANDARDS
402RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers: 405RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers:
403.Bl -dash -compact 406.Bl -dash -compact
@@ -434,12 +437,12 @@ is not public.
434The above examples show how to implement the four missing functions 437The above examples show how to implement the four missing functions
435with public API. 438with public API.
436.Pp 439.Pp
437.Fn X509v3_asid_add_range 440.Fn X509v3_addr_add_range
438should check for inverted range bounds and overlaps 441should check for inverted range bounds and overlaps
439on insertion and fail instead of creating a nonsensical 442on insertion and fail instead of creating a nonsensical
440.Fa asid 443.Fa addr
441that fails to be canonized by 444that fails to be canonized by
442.Fn X509v3_asid_canonize . 445.Fn X509v3_addr_canonize .
443.Pp 446.Pp
444If 447If
445.Dv NULL 448.Dv NULL
@@ -457,4 +460,13 @@ crashes with a
457.Dv NULL 460.Dv NULL
458dereference. 461dereference.
459.Pp 462.Pp
460The only supported AFIs are IPv4 and IPv6, but this is not enforced. 463The code only supports the IPv4 and IPv6 AFIs.
464This is not consistently enforced across implementations.
465.Pp
466.Fn X509v3_addr_add_range
467fails to clear the unused bits set to 1 in the last octet of
468the
469.Vt ASN1_BIT_STRING
470representation of
471.Fa max .
472This confuses some software.
diff --git a/src/lib/libcrypto/man/X509v3_addr_inherits.3 b/src/lib/libcrypto/man/X509v3_addr_inherits.3
index a8465afb38..0c3c35d4a3 100644
--- a/src/lib/libcrypto/man/X509v3_addr_inherits.3
+++ b/src/lib/libcrypto/man/X509v3_addr_inherits.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: X509v3_addr_inherits.3,v 1.1 2023/09/26 20:42:45 tb Exp $ 1.\" $OpenBSD: X509v3_addr_inherits.3,v 1.2 2023/09/27 08:46:46 tb Exp $
2.\" 2.\"
3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org> 3.\" Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
4.\" 4.\"
@@ -14,13 +14,13 @@
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\" 16.\"
17.Dd $Mdocdate: September 26 2023 $ 17.Dd $Mdocdate: September 27 2023 $
18.Dt X509V3_ADDR_INHERITS 3 18.Dt X509V3_ADDR_INHERITS 3
19.Os 19.Os
20.Sh NAME 20.Sh NAME
21.Nm X509v3_addr_inherits , 21.Nm X509v3_addr_inherits ,
22.Nm X509v3_asid_inherits 22.Nm X509v3_asid_inherits
23.Nd inheritance for the IP address and AS number delegation extensions 23.Nd RFC 3779 inheritance
24.Sh SYNOPSIS 24.Sh SYNOPSIS
25.In openssl/x509v3.h 25.In openssl/x509v3.h
26.Ft int 26.Ft int
@@ -96,7 +96,7 @@ and have been available since
96.Fn X509v3_asid_inherits 96.Fn X509v3_asid_inherits
97ignores whether the 97ignores whether the
98.Fa inherit 98.Fa inherit
99is present or absent in the list that is considered to use inheritance. 99element is present or absent in the list that is considered to use inheritance.
100.Pp 100.Pp
101There is no API that determines whether all lists contained in an 101There is no API that determines whether all lists contained in an
102.Vt ASIdentifiers 102.Vt ASIdentifiers
diff --git a/src/lib/libcrypto/man/X509v3_asid_add_id_or_range.3 b/src/lib/libcrypto/man/X509v3_asid_add_id_or_range.3
index 6d554e6a20..c9ff6bf13b 100644
--- a/src/lib/libcrypto/man/X509v3_asid_add_id_or_range.3
+++ b/src/lib/libcrypto/man/X509v3_asid_add_id_or_range.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: X509v3_asid_add_id_or_range.3,v 1.4 2023/09/26 20:42:45 tb Exp $ 1.\" $OpenBSD: X509v3_asid_add_id_or_range.3,v 1.5 2023/09/27 08:46:46 tb Exp $
2.\" 2.\"
3.\" Copyright (c) 2021-2023 Theo Buehler <tb@openbsd.org> 3.\" Copyright (c) 2021-2023 Theo Buehler <tb@openbsd.org>
4.\" 4.\"
@@ -14,7 +14,7 @@
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\" 16.\"
17.Dd $Mdocdate: September 26 2023 $ 17.Dd $Mdocdate: September 27 2023 $
18.Dt X509V3_ASID_ADD_ID_OR_RANGE 3 18.Dt X509V3_ASID_ADD_ID_OR_RANGE 3
19.Os 19.Os
20.Sh NAME 20.Sh NAME
@@ -22,8 +22,7 @@
22.Nm X509v3_asid_add_inherit , 22.Nm X509v3_asid_add_inherit ,
23.Nm X509v3_asid_canonize , 23.Nm X509v3_asid_canonize ,
24.Nm X509v3_asid_is_canonical 24.Nm X509v3_asid_is_canonical
25.Nd construct and validate individual X509v3 certificate extensions for 25.Nd RFC 3779 autonomous system identifier delegation extension
26autonomous system identifier delegation
27.Sh SYNOPSIS 26.Sh SYNOPSIS
28.In openssl/x509v3.h 27.In openssl/x509v3.h
29.Ft int 28.Ft int
@@ -57,7 +56,7 @@ and its internals are documented in
57.Xr ASRange_new 3 . 56.Xr ASRange_new 3 .
58.Pp 57.Pp
59An autonomous system is identified by an unsigned 32-bit integer, 58An autonomous system is identified by an unsigned 32-bit integer,
60called an AS number. 59called an AS identifier or AS number.
61An 60An
62.Vt ASIdentifiers 61.Vt ASIdentifiers
63object can hold two lists: 62object can hold two lists:
@@ -132,15 +131,14 @@ or
132.Dv V3_ASID_RDI ) 131.Dv V3_ASID_RDI )
133in 132in
134.Fa asid 133.Fa asid
135and marks it 134if necessary and marks it
136.Dq inherit . 135.Dq inherit .
137This fails if 136This fails if
138.Fa asid 137.Fa asid
139already contains a list of 138already contains a list of
140.Fa type 139.Fa type
141that isn't marked 140that is not marked
142.Dq inherit , 141.Dq inherit .
143otherwise no action occurs.
144.Pp 142.Pp
145.Fn X509v3_asid_canonize 143.Fn X509v3_asid_canonize
146attempts to bring both lists in 144attempts to bring both lists in