Commit Graph
35 Commits
Author SHA1 Message Date
Gerardo Ravago ec982171d9 openssl: Add ML-KEM support with AWS-LC
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
2024-11-22 14:04:02 +01:00
Tobias Brunner a8bab0ee15 openssl: Move ENGINE-specific code into a separate file
This way we can compile it with OPENSSL_SUPPRESS_DEPRECATED for
OpenSSL 3.0, which deprecated the ENGINE API.
2022-04-14 19:05:44 +02:00
Tobias Brunner 2b9b579af9 openssl: Add a prf+ implementation based on OpenSSL's HKDF implementation
The HKDF-Expand() function defined in RFC 5869 is basically the same as
IKEv2's prf+(), so we can use the former to implement the latter.
However, we can only support HMAC-based PRFs this way, which should be
fine as others are rarely used.
2022-04-14 18:54:24 +02:00
Tobias Brunner 55df5e9797 openssl: Avoid conflicts with wincrypt.h on Windows
There are several conflicts with newer versions of OpenSSL (> 1.0).
2021-01-27 16:32:43 +01:00
Tobias Brunner 9f91f0b3c8 openssl: Add support for SHAKE128/256 2020-03-10 14:12:34 +01:00
Tobias Brunner 8fc6b2d0e0 openssl: Generalize the GCM implementation a bit
This will allow us to use the implementation also for other algorithms.
2019-03-08 15:55:52 +01:00
Tobias Brunner cbf07ab5b0 openssl: Add support for Ed25519/Ed448 2018-11-30 15:35:01 +01:00
Tobias Brunner 57cb4c8d2c openssl: Add support for X25519 and X448
While X25519 was already added with 1.1.0a, its use would be a lot more
complicated, as the helpers like EVP_PKEY_new_raw_public_key() were only
added in 1.1.1, which also added X448.
2018-11-30 14:53:38 +01:00
Martin Willi b7a4d44bd0 openssl: Check and link against libeay32 instead of libcrypto on Windows
Most Windows OpenSSL builds come with the crypto library named libeay32.
2014-06-04 15:53:02 +02:00
Martin Willi 4163421f91 plugins: Don't link with -rdynamic on Windows 2014-06-04 15:53:02 +02:00
Martin Willi 19cb07b890 automake: replace INCLUDES by AM_CPPFLAGS
INCLUDES are now deprecated and throw warnings when using automake 1.13.
We now also differentiate AM_CPPFLAGS and AM_CFLAGS, where includes and
defines are passed to AM_CPPFLAGS only.
2013-07-18 14:59:19 +02:00
Tobias Brunner 780900ab0e openssl: Add PKCS#12 parsing via OpenSSL 2013-05-08 15:02:40 +02:00
Andreas Steffen f4de6496a2 support of OpenSSL FIPS-140-2 library 2013-04-16 12:37:04 +02:00
Tobias Brunner 81f9cd39fd openssl: Provide AES-GCM implementation 2013-02-28 18:17:42 +01:00
Martin Willi 568ad938d1 Add a stub for OpenSSL PKCS#7 parsing 2012-12-19 10:32:08 +01:00
Tobias Brunner 73d032e412 Use simple wrappers for HMAC based PRF and signer in openssl plugin 2012-06-25 16:35:06 +02:00
Tobias Brunner 8391c1d0b1 Refactored OpenSSL based HMAC implementation 2012-06-25 16:35:06 +02:00
Aleksandr Grinberg 54081897cf Adding OpenSSL HMAC signer functions to openssl plugin 2012-06-25 16:35:05 +02:00
Aleksandr Grinberg 0504b0a09f Adding OpenSSL HMAC pseudo random functions to openssl plugin 2012-06-25 16:35:05 +02:00
Aleksandr Grinberg 4faece7b1e Adding OpenSSL random number functions to openssl plugin 2012-06-25 16:35:05 +02:00
Martin Willi 6d7eed9a37 Implemented X.509 CRL reading using OpenSSL 2010-05-21 16:25:51 +02:00
Martin Willi 5728c6aa7e Implemented X.509 certificate reading using OpenSSL 2010-05-21 16:25:51 +02:00
Martin Willi 40f130dab3 Implemented the PRF_KEYED_SHA1 algorithm in the openssl plugin 2010-03-08 13:16:12 +01:00
Tobias Brunner afb364fff9 Reverting eba28948a5 which was only necessary when cross-compiling the plugins for Android 2.0.
With the coming monolithic build using Android.mk files this won't be
necessary anymore.
2010-03-02 12:03:44 +01:00
Tobias Brunner 4e657051f7 Streamlined the source file list formatting in plugin makefiles. 2010-03-02 10:40:50 +01:00
Tobias Brunner 6ec60bb92b Link all enabled libstrongswan plugins into the library, link all enabled charon plugins into libcharon. 2010-03-02 10:38:52 +01:00
Tobias Brunner eba28948a5 Link all plugins to libstrongswan. 2010-02-25 13:51:05 +01:00
Martin Willi 00fcc0f8f3 added -avoid-version to LDFLAGS, plugins are not versioned 2009-07-03 08:57:11 +02:00
Tobias Brunner ea0823dffd ECDSA with OpenSSL 2008-06-10 09:08:27 +00:00
Martin Willi e581a31d6a link against openssl crypto library only 2008-06-06 08:04:42 +00:00
Tobias Brunner fc1a31d54b added ECDH with OpenSSL (see RFC 4753) 2008-05-22 11:39:17 +00:00
Tobias Brunner 84770ded1e RSA with OpenSSL 2008-05-15 12:41:06 +00:00
Tobias Brunner ae7e837c30 adding diffie hellman with OpenSSL 2008-04-29 15:42:34 +00:00
Tobias Brunner 63cdbca211 added wrapper for OpenSSL hashers 2008-04-28 15:56:44 +00:00
Tobias Brunner 17353034f3 added a wrapper plugin for OpenSSL crypters (AES, 3DES, Blowfish etc.) 2008-04-28 14:25:19 +00:00