projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove redundant definitions. Give error code if DRBG sefltest fails.
[openssl.git]
/
fips
/
rand
/
fips_drbg_selftest.c
diff --git
a/fips/rand/fips_drbg_selftest.c
b/fips/rand/fips_drbg_selftest.c
index 31b7a0be58529f0a34ab3f9bbac7aa7e44c3e256..c46fe58521c706a6bd5cbd4dd671d7be1e56097f 100644
(file)
--- a/
fips/rand/fips_drbg_selftest.c
+++ b/
fips/rand/fips_drbg_selftest.c
@@
-732,20
+732,20
@@
typedef struct
int noncecnt;
} TEST_ENT;
int noncecnt;
} TEST_ENT;
-static size_t test_entropy(DRBG_CTX *dctx, unsigned char *out,
+static size_t test_entropy(DRBG_CTX *dctx, unsigned char *
*p
out,
int entropy, size_t min_len, size_t max_len)
{
TEST_ENT *t = FIPS_drbg_get_app_data(dctx);
int entropy, size_t min_len, size_t max_len)
{
TEST_ENT *t = FIPS_drbg_get_app_data(dctx);
-
memcpy(out, t->ent, t->entlen)
;
+
*pout = (unsigned char *)t->ent
;
t->entcnt++;
return t->entlen;
}
t->entcnt++;
return t->entlen;
}
-static size_t test_nonce(DRBG_CTX *dctx, unsigned char *out,
+static size_t test_nonce(DRBG_CTX *dctx, unsigned char *
*p
out,
int entropy, size_t min_len, size_t max_len)
{
TEST_ENT *t = FIPS_drbg_get_app_data(dctx);
int entropy, size_t min_len, size_t max_len)
{
TEST_ENT *t = FIPS_drbg_get_app_data(dctx);
-
memcpy(out, t->nonce, t->noncelen)
;
+
*pout = (unsigned char *)t->nonce
;
t->noncecnt++;
return t->noncelen;
}
t->noncecnt++;
return t->noncelen;
}
@@
-762,7
+762,7
@@
static int fips_drbg_single_kat(DRBG_CTX *dctx, DRBG_SELFTEST_DATA *td)
unsigned char randout[1024];
if (!FIPS_drbg_init(dctx, td->nid, td->flags))
return 0;
unsigned char randout[1024];
if (!FIPS_drbg_init(dctx, td->nid, td->flags))
return 0;
- if (!FIPS_drbg_set_callbacks(dctx, test_entropy,
test_nonce
))
+ if (!FIPS_drbg_set_callbacks(dctx, test_entropy,
0, test_nonce, 0
))
return 0;
FIPS_drbg_set_app_data(dctx, &t);
return 0;
FIPS_drbg_set_app_data(dctx, &t);
@@
-797,6
+797,8
@@
static int fips_drbg_single_kat(DRBG_CTX *dctx, DRBG_SELFTEST_DATA *td)
rv = 1;
err:
rv = 1;
err:
+ if (rv == 0)
+ FIPSerr(FIPS_F_FIPS_DRBG_SINGLE_KAT, FIPS_R_SELFTEST_FAILED);
FIPS_drbg_uninstantiate(dctx);
return rv;
FIPS_drbg_uninstantiate(dctx);
return rv;
@@
-818,7
+820,7
@@
static int fips_drbg_health_check(DRBG_CTX *dctx, DRBG_SELFTEST_DATA *td)
if (!FIPS_drbg_init(dctx, td->nid, td->flags))
goto err;
if (!FIPS_drbg_init(dctx, td->nid, td->flags))
goto err;
- if (!FIPS_drbg_set_callbacks(dctx, test_entropy,
test_nonce
))
+ if (!FIPS_drbg_set_callbacks(dctx, test_entropy,
0, test_nonce, 0
))
goto err;
FIPS_drbg_set_app_data(dctx, &t);
goto err;
FIPS_drbg_set_app_data(dctx, &t);
@@
-860,7
+862,7
@@
static int fips_drbg_health_check(DRBG_CTX *dctx, DRBG_SELFTEST_DATA *td)
/* Instantiate with valid data. NB: errors now reported again */
if (!FIPS_drbg_init(dctx, td->nid, td->flags))
goto err;
/* Instantiate with valid data. NB: errors now reported again */
if (!FIPS_drbg_init(dctx, td->nid, td->flags))
goto err;
- if (!FIPS_drbg_set_callbacks(dctx, test_entropy,
test_nonce
))
+ if (!FIPS_drbg_set_callbacks(dctx, test_entropy,
0, test_nonce, 0
))
goto err;
FIPS_drbg_set_app_data(dctx, &t);
goto err;
FIPS_drbg_set_app_data(dctx, &t);
@@
-914,7
+916,7
@@
static int fips_drbg_health_check(DRBG_CTX *dctx, DRBG_SELFTEST_DATA *td)
if (!FIPS_drbg_init(dctx, td->nid, td->flags))
goto err;
if (!FIPS_drbg_init(dctx, td->nid, td->flags))
goto err;
- if (!FIPS_drbg_set_callbacks(dctx, test_entropy,
test_nonce
))
+ if (!FIPS_drbg_set_callbacks(dctx, test_entropy,
0, test_nonce, 0
))
goto err;
FIPS_drbg_set_app_data(dctx, &t);
goto err;
FIPS_drbg_set_app_data(dctx, &t);