crypto: decouple curve25519 and idgen from random pool

This commit modularizes the curve25519 and idgen implementations in the
crypto subsystem.

Previously, curve25519.c and idgen.c were only compiled when
CONFIG_CRYPTO_RANDOM_POOL was enabled. However, cryptosoft.c (used by
software cipher support) has a direct dependency on curve25519 functions.
This caused linker errors (undefined reference to curve25519) when
software crypto was enabled but the random pool was disabled.

Changes:
- Introduce hidden Kconfig options CRYPTO_CURVE25519 and CRYPTO_IDGEN.
- Make CRYPTO_RANDOM_POOL select both CRYPTO_IDGEN and CRYPTO_CURVE25519.
- Make CRYPTO_CRYPTODEV_SOFTWARE_CRYPTO/KEYMGMT select CRYPTO_CURVE25519.
- Update CMakeLists.txt and Makefile to use the new config flags.

This ensures that required algorithms are automatically included in the
build regardless of whether the entropy pool is enabled.

Signed-off-by: karaketir16 <osmankaraketir@gmail.com>
This commit is contained in:
karaketir16
2026-04-06 13:57:40 +01:00
committed by Xiang Xiao
parent f255cd870b
commit b843d9192e
3 changed files with 22 additions and 2 deletions
+12
View File
@@ -43,11 +43,13 @@ config CRYPTO_CRYPTODEV
config CRYPTO_CRYPTODEV_SOFTWARE_CRYPTO
bool "cryptodev software cipher support"
depends on CRYPTO_CRYPTODEV && CRYPTO_SW_AES
select CRYPTO_CURVE25519
default n
config CRYPTO_CRYPTODEV_SOFTWARE_KEYMGMT
bool "cryptodev software key management support"
depends on CRYPTO_CRYPTODEV && !MTD_CONFIG_NONE
select CRYPTO_CURVE25519
default n
if CRYPTO_CRYPTODEV_SOFTWARE_KEYMGMT
@@ -89,6 +91,8 @@ config CRYPTO_SW_AES
config CRYPTO_RANDOM_POOL
bool "Entropy pool and strong random number generator"
select CRYPTO_IDGEN
select CRYPTO_CURVE25519
default n
---help---
Entropy pool gathers environmental noise from device drivers,
@@ -99,6 +103,14 @@ config CRYPTO_RANDOM_POOL
NOTE: May not actually be cyptographically secure, if
not enough entropy is made available to the entropy pool.
config CRYPTO_CURVE25519
bool
default n
config CRYPTO_IDGEN
bool
default n
if CRYPTO_RANDOM_POOL
config CRYPTO_RANDOM_POOL_COLLECT_IRQ_RANDOMNESS