Rewrite rsc.c using ASN.1 templates
authortb <tb@openbsd.org>
Tue, 31 May 2022 18:40:15 +0000 (18:40 +0000)
committertb <tb@openbsd.org>
Tue, 31 May 2022 18:40:15 +0000 (18:40 +0000)
commit8d52700175baced3ca303395ea533145ac80993d
tree8f3ef9ae350faddfaa0d8af601fcef29e300008d
parent565a9191f8c6e19e7e8ac875bccd4670899a00f9
Rewrite rsc.c using ASN.1 templates

This implements the constrained versions of the RFC 3779 structures
since OpenSSL's 3779 API doesn't expose IPAddrBlocks. This way we can
also avoid extra checks after walking the structs. Use the previously
exposed sbgp_as_{id,range}() and sbgp_addr{,_range}() to remove a lot
of copy-pasted code.

While parsing ConstrainedASIdentifiers allocate only once and for
ConstrainedIPAddrBlocks allocate once per address family instead of
doing a reallocation for each asid or prefix.

This removes the last explicit use of ASN1_TYPE and ASN1_SEQUENCE_ANY
from rpki-client.

ok claudio job
usr.sbin/rpki-client/rsc.c