The x9.62 tests replace the PRNG with specific numbers,

so don't run them if BN_DEBUG_RAND is defined.

Also, fix another small bug.

Submitted by: Nils Larsch
This commit is contained in:
Ulf Möller 2003-11-16 12:24:45 +00:00
parent 1a01733047
commit ac9c6e10a4

View File

@ -328,6 +328,8 @@ int test_builtin(BIO *out)
/* now create and verify a signature for every curve */ /* now create and verify a signature for every curve */
for (n = 0; n < crv_len; n++) for (n = 0; n < crv_len; n++)
{ {
unsigned char dirt, offset;
nid = curves[n].nid; nid = curves[n].nid;
/* create new ecdsa key (== EC_KEY) */ /* create new ecdsa key (== EC_KEY) */
if ((eckey = EC_KEY_new()) == NULL) if ((eckey = EC_KEY_new()) == NULL)
@ -406,9 +408,10 @@ int test_builtin(BIO *out)
} }
BIO_printf(out, "."); BIO_printf(out, ".");
BIO_flush(out); BIO_flush(out);
/* modify signature */ /* modify a single byte of the signature */
signature[((int)signature[0])%sig_len] ^= offset = signature[10] % sig_len;
signature[((int)signature[1])%sig_len]; dirt = signature[11];
signature[offset] ^= dirt ? dirt : 1;
if (ECDSA_verify(0, digest, 20, signature, sig_len, eckey) == 1) if (ECDSA_verify(0, digest, 20, signature, sig_len, eckey) == 1)
{ {
BIO_printf(out, " failed\n"); BIO_printf(out, " failed\n");
@ -468,7 +471,9 @@ int main(void)
RAND_seed(rnd_seed, sizeof(rnd_seed)); RAND_seed(rnd_seed, sizeof(rnd_seed));
/* the tests */ /* the tests */
#ifndef BN_DEBUG_RAND
if (!x9_62_tests(out)) goto err; if (!x9_62_tests(out)) goto err;
#endif
if (!test_builtin(out)) goto err; if (!test_builtin(out)) goto err;
ret = 1; ret = 1;