#include "prov/provider_ctx.h"
#include "prov/provider_util.h"
#include "prov/implementations.h"
+#include "prov/fipsindicator.h"
static OSSL_FUNC_rand_newctx_fn test_rng_new;
static OSSL_FUNC_rand_freectx_fn test_rng_free;
return 0;
p = OSSL_PARAM_locate(params, OSSL_RAND_PARAM_GENERATE);
- if (p != NULL && OSSL_PARAM_set_uint(p, t->generate))
+ if (p != NULL && !OSSL_PARAM_set_uint(p, t->generate))
return 0;
+
+#ifdef FIPS_MODULE
+ p = OSSL_PARAM_locate(params, OSSL_RAND_PARAM_FIPS_APPROVED_INDICATOR);
+ if (p != NULL && !OSSL_PARAM_set_int(p, 0))
+ return 0;
+#endif /* FIPS_MODULE */
return 1;
}
OSSL_PARAM_uint(OSSL_RAND_PARAM_STRENGTH, NULL),
OSSL_PARAM_size_t(OSSL_RAND_PARAM_MAX_REQUEST, NULL),
OSSL_PARAM_uint(OSSL_RAND_PARAM_GENERATE, NULL),
+ OSSL_FIPS_IND_GETTABLE_CTX_PARAM()
OSSL_PARAM_END
};
return known_gettable_ctx_params;
'RAND_PARAM_TEST_ENTROPY' => "test_entropy",
'RAND_PARAM_TEST_NONCE' => "test_nonce",
'RAND_PARAM_GENERATE' => "generate",
+ 'RAND_PARAM_FIPS_APPROVED_INDICATOR' => '*ALG_PARAM_FIPS_APPROVED_INDICATOR',
# RAND/DRBG names
'DRBG_PARAM_RESEED_REQUESTS' => "reseed_requests",