Refactor asn1_d2i_ex_primitive()
authorjsing <jsing@openbsd.org>
Tue, 17 May 2022 19:09:16 +0000 (19:09 +0000)
committerjsing <jsing@openbsd.org>
Tue, 17 May 2022 19:09:16 +0000 (19:09 +0000)
commitf4540edc417b2ee889874d063858e167e9c91529
tree87bb9511df301f4c136b572ceb9589b4a3b7b7ff
parent4f0f0db16cd3b9a7a49a1f2b54f36ccf9057463f
Refactor asn1_d2i_ex_primitive()

Split the object content handling off into asn1_d2i_ex_primitive_content(),
move the handling ov V_ASN1_ANY into asn1_d2i_ex_any() and move the MSTRING
handling into asn1_d2i_ex_mstring(). This way we parse the header once
(rather than twice for ANY and MSTRING), then process the content, while
also avoiding complex special cases in a single code path.

ok tb@
lib/libcrypto/asn1/tasn_dec.c