mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
Allow disabling DRBG with KCAPI. Add KCAPI /dev/hwrng
support.
This commit is contained in:
@ -3888,8 +3888,8 @@ if test "x$ENABLED_HASHDRBG" = "xyes"
|
|||||||
then
|
then
|
||||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_HASHDRBG"
|
AM_CFLAGS="$AM_CFLAGS -DHAVE_HASHDRBG"
|
||||||
else
|
else
|
||||||
# turn on Hash DRBG if FIPS is on
|
# turn on Hash DRBG if FIPS is on (don't force on for KCAPI)
|
||||||
if test "x$ENABLED_FIPS" = "xyes"
|
if test "x$ENABLED_FIPS" = "xyes" && test "x$ENABLED_KCAPI" = "xno"
|
||||||
then
|
then
|
||||||
AM_CFLAGS="$AM_CFLAGS -DHAVE_HASHDRBG"
|
AM_CFLAGS="$AM_CFLAGS -DHAVE_HASHDRBG"
|
||||||
ENABLED_HASHDRBG=yes
|
ENABLED_HASHDRBG=yes
|
||||||
|
@ -2786,8 +2786,33 @@ int wc_GenerateSeed(OS_Seed* os, byte* output, word32 sz)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* End wc_GenerateSeed */
|
/* End wc_GenerateSeed */
|
||||||
|
|
||||||
|
#if defined(CUSTOM_RAND_GENERATE_BLOCK) && defined(WOLFSSL_KCAPI)
|
||||||
|
#include <fcntl.h>
|
||||||
|
int wc_hwrng_generate_block(byte *output, word32 sz)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
int len;
|
||||||
|
int ret = 0;
|
||||||
|
fd = open("/dev/hwrng", O_RDONLY);
|
||||||
|
if (fd == -1)
|
||||||
|
return OPEN_RAN_E;
|
||||||
|
while(sz)
|
||||||
|
{
|
||||||
|
len = (int)read(fd, output, sz);
|
||||||
|
if (len == -1)
|
||||||
|
{
|
||||||
|
ret = READ_RAN_E;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sz -= len;
|
||||||
|
output += len;
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* WC_NO_RNG */
|
#endif /* WC_NO_RNG */
|
||||||
#endif /* HAVE_FIPS */
|
#endif /* HAVE_FIPS */
|
||||||
|
@ -99,6 +99,11 @@
|
|||||||
* #define CUSTOM_RAND_GENERATE_BLOCK myRngFunc
|
* #define CUSTOM_RAND_GENERATE_BLOCK myRngFunc
|
||||||
* extern int myRngFunc(byte* output, word32 sz);
|
* extern int myRngFunc(byte* output, word32 sz);
|
||||||
*/
|
*/
|
||||||
|
#if defined(CUSTOM_RAND_GENERATE_BLOCK) && defined(WOLFSSL_KCAPI)
|
||||||
|
#undef CUSTOM_RAND_GENERATE_BLOCK
|
||||||
|
#define CUSTOM_RAND_GENERATE_BLOCK wc_hwrng_generate_block
|
||||||
|
WOLFSSL_LOCAL int wc_hwrng_generate_block(byte *output, word32 sz);
|
||||||
|
#endif
|
||||||
#elif defined(HAVE_HASHDRBG)
|
#elif defined(HAVE_HASHDRBG)
|
||||||
#ifdef NO_SHA256
|
#ifdef NO_SHA256
|
||||||
#error "Hash DRBG requires SHA-256."
|
#error "Hash DRBG requires SHA-256."
|
||||||
|
Reference in New Issue
Block a user