|
30 | 30 | #error SHA* WC_LINUXKM_C_FALLBACK_IN_SHIMS is not currently supported. |
31 | 31 | #endif |
32 | 32 |
|
| 33 | +#ifdef NO_LINUXKM_DRBG_GET_RANDOM_BYTES |
| 34 | + #undef LINUXKM_DRBG_GET_RANDOM_BYTES |
| 35 | +/* setup for LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT is in linuxkm_wc_port.h */ |
| 36 | +#elif defined(LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT) && \ |
| 37 | + (defined(WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS) || \ |
| 38 | + defined(WOLFSSL_LINUXKM_USE_GET_RANDOM_KPROBES)) |
| 39 | + #ifndef LINUXKM_DRBG_GET_RANDOM_BYTES |
| 40 | + #define LINUXKM_DRBG_GET_RANDOM_BYTES |
| 41 | + #endif |
| 42 | +#else |
| 43 | + #ifdef LINUXKM_DRBG_GET_RANDOM_BYTES |
| 44 | + #error LINUXKM_DRBG_GET_RANDOM_BYTES configured with no callback model configured. |
| 45 | + #undef LINUXKM_DRBG_GET_RANDOM_BYTES |
| 46 | + #endif |
| 47 | +#endif |
| 48 | + |
33 | 49 | #include <wolfssl/wolfcrypt/sha.h> |
34 | 50 | #include <wolfssl/wolfcrypt/hmac.h> |
35 | 51 |
|
|
94 | 110 | * exhaustion. A caller that really needs PR can pass in seed data in its call |
95 | 111 | * to our rng_alg.generate() implementation. |
96 | 112 | */ |
97 | | -#define WOLFKM_STDRNG_DRIVER ("sha2-256-drbg-nopr" WOLFKM_SHA_DRIVER_SUFFIX) |
| 113 | +#ifdef LINUXKM_DRBG_GET_RANDOM_BYTES |
| 114 | + #define WOLFKM_STDRNG_DRIVER ("sha2-256-drbg-nopr" \ |
| 115 | + WOLFKM_DRIVER_SUFFIX_BASE \ |
| 116 | + "-with-global-replace") |
| 117 | +#else |
| 118 | + #define WOLFKM_STDRNG_DRIVER ("sha2-256-drbg-nopr" \ |
| 119 | + WOLFKM_DRIVER_SUFFIX_BASE) |
| 120 | +#endif |
98 | 121 |
|
99 | 122 | #ifdef LINUXKM_LKCAPI_REGISTER_SHA_ALL |
100 | 123 | #define LINUXKM_LKCAPI_REGISTER_SHA1 |
|
388 | 411 | #else |
389 | 412 | #if defined(LINUXKM_LKCAPI_REGISTER_ALL_KCONFIG) && defined(CONFIG_CRYPTO_DRBG) && \ |
390 | 413 | !defined(LINUXKM_LKCAPI_DONT_REGISTER_HASH_DRBG) |
391 | | - #error Config conflict: target kernel has CONFIG_CRYPTO_SHA3, but module is missing WOLFSSL_SHA3 |
| 414 | + #error Config conflict: target kernel has CONFIG_CRYPTO_DRBG, but module is missing HAVE_HASHDRBG |
392 | 415 | #endif |
393 | 416 | #undef LINUXKM_LKCAPI_REGISTER_HASH_DRBG |
394 | 417 | #endif |
@@ -1257,20 +1280,6 @@ static struct rng_alg wc_linuxkm_drbg = { |
1257 | 1280 | }; |
1258 | 1281 | static int wc_linuxkm_drbg_loaded = 0; |
1259 | 1282 |
|
1260 | | -#ifdef NO_LINUXKM_DRBG_GET_RANDOM_BYTES |
1261 | | - #undef LINUXKM_DRBG_GET_RANDOM_BYTES |
1262 | | -#elif defined(LINUXKM_LKCAPI_REGISTER_HASH_DRBG_DEFAULT) && \ |
1263 | | - (defined(WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS) || defined(WOLFSSL_LINUXKM_USE_GET_RANDOM_KPROBES)) |
1264 | | - #ifndef LINUXKM_DRBG_GET_RANDOM_BYTES |
1265 | | - #define LINUXKM_DRBG_GET_RANDOM_BYTES |
1266 | | - #endif |
1267 | | -#else |
1268 | | - #ifdef LINUXKM_DRBG_GET_RANDOM_BYTES |
1269 | | - #error LINUXKM_DRBG_GET_RANDOM_BYTES configured with no callback model configured. |
1270 | | - #undef LINUXKM_DRBG_GET_RANDOM_BYTES |
1271 | | - #endif |
1272 | | -#endif |
1273 | | - |
1274 | 1283 | #ifdef LINUXKM_DRBG_GET_RANDOM_BYTES |
1275 | 1284 |
|
1276 | 1285 | #ifndef WOLFSSL_SMALL_STACK_CACHE |
|
0 commit comments