Fix field element encoding for elliptic curve coefficients
authortb <tb@openbsd.org>
Mon, 14 Oct 2024 12:50:18 +0000 (12:50 +0000)
committertb <tb@openbsd.org>
Mon, 14 Oct 2024 12:50:18 +0000 (12:50 +0000)
commit22b55b0b9cd9bc475c3f48959939e31a06d92cbe
treed15a430adbe137c25c4082775b1ce0d03d57b92f
parent5909419fb417f12a2b51f2b762b8b75ea966ca84
Fix field element encoding for elliptic curve coefficients

SEC 1, section 2.3.5, is explicit that the encoding of an element of the
field of definition for an elliptic curve needs to be a zero-padded octet
string whose length matches the byte size of the field's degree. So use
BN_bn2binpad() to fix this. Factor things into a simple helper to avoid
copy-pasting.

This gets rid of some of the most grotesque code in this file.

ok jsing
lib/libcrypto/ec/ec_asn1.c