Consolidate elliptic curve cofactor handling
authortb <tb@openbsd.org>
Tue, 20 Jun 2023 14:37:15 +0000 (14:37 +0000)
committertb <tb@openbsd.org>
Tue, 20 Jun 2023 14:37:15 +0000 (14:37 +0000)
commit15f1f9a32d4f34bc39118b6aa2531874d14f9d5c
tree27e6f68fe13c67943bfeec4f390620a0de600fc8
parente857c54f12ffaa162a0e320c14c1e5771611d383
Consolidate elliptic curve cofactor handling

The various checks of the cofactor to be set in EC_GROUP_set_generator()
are a bit all over the place. Move them into a single function and clean
things up a little. Instead of calculating directly with the cofactor
member of the group, use a temporary variable and copy this variable only
if all tests passed. In cryptographic contexts the cofactor almost always
fits if not into a single byte then into a word, so copying is cheap.
Also streamline the computations a bit and remove some binary curve
contortions.

ok jsing
lib/libcrypto/ec/ec_lib.c