mirror of https://github.com/wolfSSL/wolfssl.git
sanity check on q value with DSA sign
parent
60adf22ce1
commit
c07a7deec2
|
@ -19594,6 +19594,9 @@ static int test_wc_DsaSignVerify (void)
|
||||||
mp_free(&key.q);
|
mp_free(&key.q);
|
||||||
mp_init(&key.q);
|
mp_init(&key.q);
|
||||||
AssertIntEQ(wc_DsaSign(hash, signature, &key, &rng), BAD_FUNC_ARG);
|
AssertIntEQ(wc_DsaSign(hash, signature, &key, &rng), BAD_FUNC_ARG);
|
||||||
|
|
||||||
|
mp_set_int(&key.q, 1);
|
||||||
|
AssertIntEQ(wc_DsaSign(hash, signature, &key, &rng), BAD_FUNC_ARG);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (wc_FreeRng(&rng) && ret == 0) {
|
if (wc_FreeRng(&rng) && ret == 0) {
|
||||||
|
|
|
@ -762,6 +762,12 @@ int wc_DsaSign(const byte* digest, byte* out, DsaKey* key, WC_RNG* rng)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* if q-1 is 0 or smaller, k will never end up being less than it */
|
||||||
|
if (mp_iszero(qMinus1) || mp_isneg(qMinus1)) {
|
||||||
|
ret = BAD_FUNC_ARG;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
/* Step 4: generate k */
|
/* Step 4: generate k */
|
||||||
if ((ret = wc_RNG_GenerateBlock(rng, buffer, halfSz))) {
|
if ((ret = wc_RNG_GenerateBlock(rng, buffer, halfSz))) {
|
||||||
|
|
Loading…
Reference in New Issue