Add RSAX builtin engine. It optimizes RSA1024 sign benchmark.
[openssl.git] / crypto / engine / eng_all.c
index b3030fe5053b08a70d254f26816a7d7e32f7c414..b0a416d2fef4f851faf646ffaad0d26441d9f6c6 100644 (file)
  *
  */
 
-#include <openssl/err.h>
-#include <openssl/engine.h>
+#include "cryptlib.h"
 #include "eng_int.h"
 
 void ENGINE_load_builtin_engines(void)
        {
+       /* Some ENGINEs need this */
+       OPENSSL_cpuid_setup();
+#if 0
        /* There's no longer any need for an "openssl" ENGINE unless, one day,
         * it is the *only* way for standard builtin implementations to be be
         * accessed (ie. it would be possible to statically link binaries with
         * *no* builtin implementations). */
-#if 0
        ENGINE_load_openssl();
+#endif
+#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV)
+       ENGINE_load_cryptodev();
+#endif
+#if !defined(OPENSSL_NO_HW) && !defined(OPENSSL_NO_HW_AESNI)
+       ENGINE_load_aesni();
+#endif
+#ifndef OPENSSL_NO_RSAX
+       ENGINE_load_rsax();
 #endif
        ENGINE_load_dynamic();
+#ifndef OPENSSL_NO_STATIC_ENGINE
 #ifndef OPENSSL_NO_HW
+#ifndef OPENSSL_NO_HW_4758_CCA
+       ENGINE_load_4758cca();
+#endif
+#ifndef OPENSSL_NO_HW_AEP
+       ENGINE_load_aep();
+#endif
+#ifndef OPENSSL_NO_HW_ATALLA
+       ENGINE_load_atalla();
+#endif
 #ifndef OPENSSL_NO_HW_CSWIFT
        ENGINE_load_cswift();
 #endif
 #ifndef OPENSSL_NO_HW_NCIPHER
        ENGINE_load_chil();
 #endif
-#ifndef OPENSSL_NO_HW_ATALLA
-       ENGINE_load_atalla();
-#endif
 #ifndef OPENSSL_NO_HW_NURON
        ENGINE_load_nuron();
 #endif
+#ifndef OPENSSL_NO_HW_SUREWARE
+       ENGINE_load_sureware();
+#endif
 #ifndef OPENSSL_NO_HW_UBSEC
        ENGINE_load_ubsec();
 #endif
-#ifndef OPENSSL_NO_HW_AEP
-       ENGINE_load_aep();
+#ifndef OPENSSL_NO_HW_PADLOCK
+       ENGINE_load_padlock();
 #endif
-#ifndef OPENSSL_NO_HW_SUREWARE
-       ENGINE_load_sureware();
 #endif
-#ifndef OPENSSL_NO_HW_4758_CCA
-       ENGINE_load_4758cca();
+#ifndef OPENSSL_NO_GOST
+       ENGINE_load_gost();
+#endif
+#ifndef OPENSSL_NO_GMP
+       ENGINE_load_gmp();
 #endif
-#ifdef OPENSSL_OPENBSD_DEV_CRYPTO
-       ENGINE_load_openbsd_dev_crypto();
+#if defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_NO_CAPIENG)
+       ENGINE_load_capi();
 #endif
 #endif
+       ENGINE_register_all_complete();
        }
+
+#if defined(__OpenBSD__) || defined(__FreeBSD__)
+void ENGINE_setup_bsd_cryptodev(void) {
+       static int bsd_cryptodev_default_loaded = 0;
+       if (!bsd_cryptodev_default_loaded) {
+               ENGINE_load_cryptodev();
+               ENGINE_register_all_complete();
+       }
+       bsd_cryptodev_default_loaded=1;
+}
+#endif