Refactor and fix bn_mod_exp test
authortb <tb@openbsd.org>
Sat, 3 Dec 2022 09:37:02 +0000 (09:37 +0000)
committertb <tb@openbsd.org>
Sat, 3 Dec 2022 09:37:02 +0000 (09:37 +0000)
commit60711a8f46880dbec63d873f5552686569224343
treee6500fedf337e8b5d2c2f359a8e6010f691d15d4
parentbe81e840102a8585ca51151a1db4012ecfa1afa4
Refactor and fix bn_mod_exp test

The amount of copy-paste in this test led to a few bugs and it was hard to
spot them since things were done in random order. Use a different approach:
compute the result of a^b (mod m) according to BN_mod_exp_simple(), then
compare the results of all the other *_mod_exp* functions to that.

Reuse the test structure from bn_mod_exp_zero.c to loop over the list of
functions. This way we test more functions and don't forget to check some
crucial bits.
regress/lib/libcrypto/bn/bn_mod_exp.c