Skip to content

Commit f82cf75

Browse files
committed
Add new feature to force failure if environment variable is set
1 parent ec27f8e commit f82cf75

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

include/wolfprovider/settings.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@
155155
#ifdef HAVE_ED448
156156
#define WP_HAVE_ED448
157157
#endif
158+
#ifndef WP_NO_FORCE_FAIL
159+
#define WP_CHECK_FORCE_FAIL
160+
#endif
158161

159162
#endif /* WOLFPROV_SETTINGS_H */
160163

src/wp_wolfprov.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ static const OSSL_PARAM wolfssl_param_types[] = {
5151
OSSL_PARAM_END
5252
};
5353

54+
#ifdef WP_CHECK_FORCE_FAIL
55+
static int forceFail = 0;
56+
#endif
57+
5458
/*
5559
* Get he table of parameters supported by wolfProv.
5660
*
@@ -74,6 +78,12 @@ static const OSSL_PARAM* wolfprov_gettable_params(void* provCtx)
7478
*/
7579
int wolfssl_prov_is_running(void)
7680
{
81+
#ifdef WP_CHECK_FORCE_FAIL
82+
if (forceFail) {
83+
WOLFPROV_LEAVE(WP_LOG_PROVIDER, __FILE__ ":" WOLFPROV_STRINGIZE(__LINE__), 0);
84+
return 0;
85+
}
86+
#endif
7787
/* Always running. */
7888
WOLFPROV_LEAVE(WP_LOG_PROVIDER, __FILE__ ":" WOLFPROV_STRINGIZE(__LINE__), 1);
7989
return 1;
@@ -1185,6 +1195,19 @@ int wolfssl_provider_init(const OSSL_CORE_HANDLE* handle,
11851195
wolfCrypt_SetCb_fips(wp_fipsCb);
11861196
#endif
11871197

1198+
#ifdef WP_CHECK_FORCE_FAIL
1199+
char *forceFailEnv = NULL;
1200+
#if defined(XGETENV) && !defined(NO_GETENV)
1201+
forceFailEnv = XGETENV("WOLFPROV_FORCE_FAIL");
1202+
if (forceFailEnv != NULL && XATOI(forceFailEnv) == 1) {
1203+
WOLFPROV_MSG(WP_LOG_PROVIDER, "WOLFPROV_FORCE_FAIL=1, Forcing failure\n");
1204+
forceFail = 1;
1205+
}
1206+
#else
1207+
#error "Force failure check enabled but impossible to perform without XGETENV, use -DWP_NO_FORCE_FAIL"
1208+
#endif
1209+
#endif
1210+
11881211
for (; in->function_id != 0; in++) {
11891212
switch (in->function_id) {
11901213
case OSSL_FUNC_CORE_GETTABLE_PARAMS:

0 commit comments

Comments
 (0)