Allow setting of get_entropy and get_nonce callbacks outside test mode.
[openssl.git] / fips / rand / fips_drbgvs.c
index c60b80bf2f1a2bcad6dc3535e35fe6e8fa6ad03a..53d4439342ced245b95a3fabbc53111bd8dbbcc1 100644 (file)
@@ -156,9 +156,9 @@ static size_t test_nonce(DRBG_CTX *dctx, unsigned char *out,
 int main(int argc,char **argv)
        {
        FILE *in, *out;
-       DRBG_CTX *dctx;
+       DRBG_CTX *dctx = NULL;
        TEST_ENT t;
-       int r, nid;
+       int r, nid = 0;
        int pr = 0;
        char buf[2048], lbuf[2048];
        unsigned char randout[2048];
@@ -166,7 +166,7 @@ int main(int argc,char **argv)
 
        unsigned char *ent = NULL, *nonce = NULL, *pers = NULL, *adin = NULL;
        long entlen, noncelen, perslen, adinlen;
-       int df;
+       int df = 0;
 
        int randoutlen = 0;
 
@@ -245,13 +245,13 @@ int main(int argc,char **argv)
                if (!strcmp(keyword, "PersonalizationString"))
                        {
                        pers = hex2bin_m(value, &perslen);
-                       dctx = FIPS_drbg_new(nid, df);
+                       dctx = FIPS_drbg_new(nid, df | DRBG_FLAG_TEST);
                        if (!dctx)
                                exit (1);
-                       FIPS_drbg_set_test_mode(dctx, test_entropy, test_nonce);
+                       FIPS_drbg_set_callbacks(dctx, test_entropy, test_nonce);
                        FIPS_drbg_set_app_data(dctx, &t);
                        randoutlen = (int)FIPS_drbg_get_blocklength(dctx);
-                       r = FIPS_drbg_instantiate(dctx, 0, pers, perslen);
+                       r = FIPS_drbg_instantiate(dctx, pers, perslen);
                        if (!r)
                                {
                                fprintf(stderr, "Error instantiating DRBG\n");