Use ASN1_INTEGER to encode/decode BIGNUM_it.
authorjsing <jsing@openbsd.org>
Sat, 30 Jul 2022 13:42:25 +0000 (13:42 +0000)
committerjsing <jsing@openbsd.org>
Sat, 30 Jul 2022 13:42:25 +0000 (13:42 +0000)
commitca0a2a13f9f695d3c424e46d6e6b9bf04e86e413
tree30230d9a2bf8074fe07392308d4066e4f01e215e
parent58bfd18af42f84d5c7ec9ac8def2b18e5d94fa58
Use ASN1_INTEGER to encode/decode BIGNUM_it.

The current code simply shoves the unvalidated ASN.1 bytes into a BIGNUM on
the hope that other things will detect issues (such as negative values
being flipped to positive). Instead of doing this, decode and validate the
ASN.1 data using ASN1_INTEGER, then convert it to a BIGNUM. Similarly, for
encoding convert from BIGNUM to ASN1_INTEGER and use ASN1_INTEGER encoding.

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