fix mp_rand() for MP_{8,16}BIT
diff --git a/bn_mp_rand.c b/bn_mp_rand.c
index 073abcc..608a663 100644
--- a/bn_mp_rand.c
+++ b/bn_mp_rand.c
@@ -35,7 +35,7 @@ static mp_digit s_gen_random(void)
d <<= MP_GEN_RANDOM_SHIFT;
d |= ((mp_digit) MP_GEN_RANDOM());
msk <<= MP_GEN_RANDOM_SHIFT;
- msk |= MP_GEN_RANDOM_MAX;
+ msk |= (MP_MASK & MP_GEN_RANDOM_MAX);
} while ((MP_MASK & msk) != MP_MASK);
d &= MP_MASK;
return d;