mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-04 00:00:14 -04:00
This registers support for the ML_KEM_{512,768,1024} key exchange algorithms in the `openssl` plugin when built using AWS-LC as the libcrypto. To do this, we introduce the `openssl_kem` source files which implement the key exchange algorithm using the Key Encapsulation Mechanism (KEM) API. Future KEM algorithms can be implemented generically using this interface by substituting the appropriate NIDs. It also supports both seeded (via DRBG) and unseeded modes depending on the user's requirements for KATs or entropy sources. It should be noted that this does not add support for KEM algorithms within upstream OpenSSL and is API incompatible. Future work will need to condition out the incompatibilities as-appropriate. However, the high-level logic should be the same for all KEMs and KEM APIs. References strongswan/strongswan#2228 Closes strongswan/strongswan#2490