Fix an off-by-one in dsa_check_key()
authortb <tb@openbsd.org>
Sat, 11 Mar 2023 15:29:03 +0000 (15:29 +0000)
committertb <tb@openbsd.org>
Sat, 11 Mar 2023 15:29:03 +0000 (15:29 +0000)
commit54339fe5b2356b1d99f7c91e10d2c804de525011
treebb9cfb727c71bc23f190ddc077b5b56d9a565364
parent3e826b62b9b23c67bc85fc954d2c20480b2667da
Fix an off-by-one in dsa_check_key()

The private key is a random number in [1, q-1], so 1 must be allowed.
Since q is at least an 160-bit prime and 2^159 + 1 is not prime (159
is not a power of 2), the probability that this is hit is < 2^-159,
but a tiny little bit wrong is still wrong.

Found while investigating a report by bluhm
ok jsing
lib/libcrypto/dsa/dsa_lib.c