Skip to content

Commit 83f7204

Browse files
authored
Merge pull request #9597 from sameehj/rhel9_linuxkm_sign
linuxkm: handle RHEL9 disabled akcipher sign/decrypt ops
2 parents a20d5f7 + d27c04b commit 83f7204

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

.wolfssl_known_macro_extras

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,7 @@ REDIRECTION_OUT2_KEYELMID
478478
REDIRECTION_OUT2_KEYID
479479
RENESAS_T4_USE
480480
RHEL_MAJOR
481+
RHEL_RELEASE_CODE
481482
RTC_ALARMSUBSECONDMASK_ALL
482483
RTE_CMSIS_RTOS_RTX
483484
RTOS_MODULE_NET_AVAIL

linuxkm/lkcapi_rsa_glue.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
#error lkcapi_rsa_glue.c included in non-LINUXKM_LKCAPI_REGISTER project.
2828
#endif
2929

30+
#ifndef RHEL_RELEASE_VERSION
31+
#define RHEL_RELEASE_VERSION(a, b) (((a) << 8) + (b))
32+
#endif
33+
3034
#if !defined(NO_RSA)
3135
#if (defined(LINUXKM_LKCAPI_REGISTER_ALL) || \
3236
(defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_RSA))) && \
@@ -2347,6 +2351,14 @@ static int linuxkm_test_rsa_driver(const char * driver, int nbits)
23472351

23482352
memset(dec, 0, key_len);
23492353
ret = crypto_akcipher_decrypt(req);
2354+
#if defined(RHEL_RELEASE_CODE) && \
2355+
(RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9, 6))
2356+
if (ret == -ENOSYS) {
2357+
pr_info("info: ignoring failure from crypto_akcipher_decrypt (disabled by RHEL policy)\n");
2358+
test_rc = 0;
2359+
goto test_rsa_end;
2360+
}
2361+
#endif
23502362
if (ret) {
23512363
pr_err("error: crypto_akcipher_decrypt returned: %d\n", ret);
23522364
goto test_rsa_end;
@@ -2721,6 +2733,14 @@ static int linuxkm_test_pkcs1pad_driver(const char * driver, int nbits,
27212733
akcipher_request_set_crypt(req, &src, &dst, hash_len, key_len);
27222734

27232735
ret = crypto_akcipher_sign(req);
2736+
#if defined(RHEL_RELEASE_CODE) && \
2737+
(RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9, 6))
2738+
if (ret == -ENOSYS) {
2739+
pr_info("info: ignoring failure from crypto_akcipher_sign (disabled by RHEL policy)\n");
2740+
test_rc = 0;
2741+
goto test_pkcs1_end;
2742+
}
2743+
#endif
27242744
if (ret) {
27252745
pr_err("error: crypto_akcipher_sign returned: %d\n", ret);
27262746
test_rc = BAD_FUNC_ARG;
@@ -2847,6 +2867,14 @@ static int linuxkm_test_pkcs1pad_driver(const char * driver, int nbits,
28472867
}
28482868

28492869
ret = crypto_akcipher_decrypt(req);
2870+
#if defined(RHEL_RELEASE_CODE) && \
2871+
(RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9, 6))
2872+
if (ret == -ENOSYS) {
2873+
pr_info("info: ignoring failure from crypto_akcipher_decrypt (disabled by RHEL policy)\n");
2874+
test_rc = 0;
2875+
goto test_pkcs1_end;
2876+
}
2877+
#endif
28502878
if (ret) {
28512879
pr_err("error: crypto_akcipher_decrypt returned: %d\n", ret);
28522880
test_rc = BAD_FUNC_ARG;

0 commit comments

Comments
 (0)