randombit/botan

Allow for `<recommended>` Module Dependencies

Open

#5,353 opened on Feb 17, 2026

View on GitHub
 (0 comments) (1 reaction) (0 assignees)C++ (654 forks)auto 404
help wanted

Repository metrics

Stars
 (3,283 stars)
PR merge metrics
 (PR metrics pending)

Description

Sometimes it would be nice to not hard-depend on specific modules. For instance, in TLS: Specialised applications might have a fairly narrow (and predefined) zoo of algorithms that they actually need for TLS within their ecosystem. Nevertheless, TLS info.txt currently pulls in much more than that.

For instance, TLS will really need just AEAD, RNG, and perhaps things like HKDF and maybe even SHA. But it could certainly work without Finite-Field Diffie-Hellman, RSA (currently required in TLS 1.2) and GCM in some contexts.

On the other hand, this makes the module selection much harder and frustrating for novice users. Often times, missing modules show up only at runtime and are fairly hard to debug. Or catching all relevant platform acceleration modules is tricky and also a maintenance burden when updating.

Perhaps an additional <recommended> block of optional module dependencies could help with that? So that one could build along the lines of --minimized-build --enable-modules=tls13 --enable-recommended-dependencies.

Note also the reply in the original discussion: Originally posted by @reneme in https://github.com/randombit/botan/pull/5318#discussion_r2814038141

Contributor guide