summaryrefslogtreecommitdiffstats
path: root/providers/fips/fipsprov.c
diff options
context:
space:
mode:
authorShane Lontis <shane.lontis@oracle.com>2019-09-15 19:55:10 +1000
committerShane Lontis <shane.lontis@oracle.com>2019-09-15 19:55:10 +1000
commit7bb82f92d94375e7673fe02cb8186595b2c539f2 (patch)
tree9ad368205615d359374430b91906e4c704135fae /providers/fips/fipsprov.c
parentdd11c5f0fa809063b152cd2851c4c1e56fbd20c8 (diff)
Add fips module integrity check
Add environment variable for setting CONF .include path Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9769)
Diffstat (limited to 'providers/fips/fipsprov.c')
-rw-r--r--providers/fips/fipsprov.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/providers/fips/fipsprov.c b/providers/fips/fipsprov.c
index cff172921c..67ce90ac13 100644
--- a/providers/fips/fipsprov.c
+++ b/providers/fips/fipsprov.c
@@ -464,8 +464,8 @@ int OSSL_provider_init(const OSSL_PROVIDER *provider,
case OSSL_FUNC_BIO_NEW_MEMBUF:
selftest_params.bio_new_buffer_cb = OSSL_get_BIO_new_membuf(in);
break;
- case OSSL_FUNC_BIO_READ:
- selftest_params.bio_read_cb = OSSL_get_BIO_read(in);
+ case OSSL_FUNC_BIO_READ_EX:
+ selftest_params.bio_read_ex_cb = OSSL_get_BIO_read_ex(in);
break;
case OSSL_FUNC_BIO_FREE:
selftest_params.bio_free_cb = OSSL_get_BIO_free(in);
@@ -487,7 +487,15 @@ int OSSL_provider_init(const OSSL_PROVIDER *provider,
OPENSSL_CTX_free(ctx);
return 0;
}
+
fgbl->prov = provider;
+
+ selftest_params.libctx = PROV_LIBRARY_CONTEXT_OF(ctx);
+ if (!SELF_TEST_post(&selftest_params)) {
+ OPENSSL_CTX_free(ctx);
+ return 0;
+ }
+
*out = fips_dispatch_table;
*provctx = ctx;