diff options
author | steve <steve> | 2011-11-05 18:14:41 +0000 |
---|---|---|
committer | steve <steve> | 2011-11-05 18:14:41 +0000 |
commit | 0eacd1e6ac5d7670cb3a2f0829787a9e53f71fd9 (patch) | |
tree | 2685f3de242d5259103bc68dce62bbd466f23382 /fips | |
parent | 3674856198ac736be62faa0aa548a0a4c31a6a26 (diff) | |
download | openssl-0eacd1e6ac5d7670cb3a2f0829787a9e53f71fd9.tar.gz |
make post failure simulation reversible in all cases
Diffstat (limited to 'fips')
-rw-r--r-- | fips/fips.h | 5 | ||||
-rw-r--r-- | fips/fips_test_suite.c | 4 | ||||
-rw-r--r-- | fips/rand/fips_drbg_lib.c | 4 | ||||
-rw-r--r-- | fips/rand/fips_rand.c | 4 | ||||
-rw-r--r-- | fips/rand/fips_rand_selftest.c | 7 |
5 files changed, 12 insertions, 12 deletions
diff --git a/fips/fips.h b/fips/fips.h index 8833dd2e9..b6263575c 100644 --- a/fips/fips.h +++ b/fips/fips.h @@ -97,9 +97,8 @@ int FIPS_selftest_rsa(void); int FIPS_selftest_dsa(void); int FIPS_selftest_ecdsa(void); int FIPS_selftest_ecdh(void); -void FIPS_corrupt_drbg(void); -void FIPS_x931_stick(void); -void FIPS_drbg_stick(void); +void FIPS_x931_stick(int onoff); +void FIPS_drbg_stick(int onoff); int FIPS_selftest_x931(void); int FIPS_selftest_hmac(void); int FIPS_selftest_drbg(void); diff --git a/fips/fips_test_suite.c b/fips/fips_test_suite.c index ee706d8a9..57a1b8a6a 100644 --- a/fips/fips_test_suite.c +++ b/fips/fips_test_suite.c @@ -1104,9 +1104,9 @@ int main(int argc, char **argv) if (!FIPS_module_mode()) return 1; if (do_drbg_stick) - FIPS_drbg_stick(); + FIPS_drbg_stick(1); if (do_rng_stick) - FIPS_x931_stick(); + FIPS_x931_stick(1); /* AES encryption/decryption */ diff --git a/fips/rand/fips_drbg_lib.c b/fips/rand/fips_drbg_lib.c index 1596977fd..e0e1d7509 100644 --- a/fips/rand/fips_drbg_lib.c +++ b/fips/rand/fips_drbg_lib.c @@ -544,9 +544,9 @@ void FIPS_drbg_set_reseed_interval(DRBG_CTX *dctx, int interval) static int drbg_stick = 0; -void FIPS_drbg_stick(void) +void FIPS_drbg_stick(int onoff) { - drbg_stick = 1; + drbg_stick = onoff; } /* Continuous DRBG utility function */ diff --git a/fips/rand/fips_rand.c b/fips/rand/fips_rand.c index cb9184e1f..f80c00575 100644 --- a/fips/rand/fips_rand.c +++ b/fips/rand/fips_rand.c @@ -114,9 +114,9 @@ static FIPS_PRNG_CTX sctx; static int fips_prng_fail = 0; -void FIPS_x931_stick(void) +void FIPS_x931_stick(int onoff) { - fips_prng_fail = 1; + fips_prng_fail = onoff; } static void fips_rand_prng_reset(FIPS_PRNG_CTX *ctx) diff --git a/fips/rand/fips_rand_selftest.c b/fips/rand/fips_rand_selftest.c index bafce719c..ec949cbdb 100644 --- a/fips/rand/fips_rand_selftest.c +++ b/fips/rand/fips_rand_selftest.c @@ -129,15 +129,16 @@ static AES_PRNG_TV aes_256_tv = static int do_x931_test(unsigned char *key, int keylen, AES_PRNG_TV *tv) { - unsigned char R[16]; + unsigned char R[16], V[16]; int rv = 1; + memcpy(V, tv->V, sizeof(V)); if (!FIPS_x931_set_key(key, keylen)) return 0; if (!fips_post_started(FIPS_TEST_X931, keylen, NULL)) return 1; if (!fips_post_corrupt(FIPS_TEST_X931, keylen, NULL)) - tv->V[0]++; - FIPS_x931_seed(tv->V, 16); + V[0]++; + FIPS_x931_seed(V, 16); FIPS_x931_set_dt(tv->DT); FIPS_x931_bytes(R, 16); if (memcmp(R, tv->R, 16)) |