doc: It is not possible to use SSL_OP_* value in preprocessor conditions
[openssl.git] / README-ENGINES.md
index 9783a211a5ddc8bb7d4d47c69b50ca9759e48a61..b05ddaa1b69ca8ec7e68873cd7abcbf30fc7a5ba 100644 (file)
@@ -1,14 +1,23 @@
-ENGINES
+Engines
 =======
 
-With OpenSSL 0.9.6, a new component was added to support alternative
-cryptography implementations, most commonly for interfacing with external
-crypto devices (eg. accelerator cards). This component is called ENGINE,
-and its presence in OpenSSL 0.9.6 (and subsequent bug-fix releases)
-caused a little confusion as 0.9.6** releases were rolled in two
-versions, a "standard" and an "engine" version. In development for 0.9.7,
-the ENGINE code has been merged into the main branch and will be present
-in the standard releases from 0.9.7 forwards.
+Deprecation Note
+----------------
+
+The ENGINE API was introduced in OpenSSL version 0.9.6 as a low level
+interface for adding alternative implementations of cryptographic
+primitives, most notably for integrating hardware crypto devices.
+
+The ENGINE interface has its limitations and it has been superseeded
+by the [PROVIDER API](README-PROVIDERS.md), it is deprecated in OpenSSL
+version 3.0. The following documentation is retained as an aid for
+users who need to maintain or support existing ENGINE implementations.
+Support for new hardware devices or new algorithms should be added
+via providers, and existing engines should be converted to providers
+as soon as possible.
+
+Built-in ENGINE implementations
+-------------------------------
 
 There are currently built-in ENGINE implementations for the following
 crypto devices: