More CryptoAPI engine code from stable branch.
[openssl.git] / crypto / engine / eng_all.c
index 48ea6b2c34d656a9776ef4bd0deecc3852cabf41..80edead3baa024420799009a6a8ce97b1b7d8bea 100644 (file)
@@ -1,9 +1,9 @@
-/* crypto/engine/engine_all.c -*- mode: C; c-file-style: "eay" -*- */
+/* crypto/engine/eng_all.c -*- mode: C; c-file-style: "eay" -*- */
 /* Written by Richard Levitte <richard@levitte.org> for the OpenSSL
  * project 2000.
  */
 /* ====================================================================
- * Copyright (c) 2000 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 2000-2001 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  *
  */
 
-#include <openssl/err.h>
-#include <openssl/engine.h>
+#include "cryptlib.h"
 #include "eng_int.h"
 
-static int engine_add(ENGINE *e)
-       {
-       int toret = 1;
-       if (!ENGINE_by_id(ENGINE_get_id(e)))
-               {
-               (void)ERR_get_error();
-               toret = ENGINE_add(e);
-               }
-       ENGINE_free(e);
-       return toret;
-       }
-
-void ENGINE_load_cswift(void)
-       {
-#ifndef OPENSSL_NO_HW
-#ifndef OPENSSL_NO_HW_CSWIFT
-       engine_add(ENGINE_cswift());
-#endif /* !OPENSSL_NO_HW_CSWIFT */
-#endif /* !OPENSSL_NO_HW */
-       }
-
-void ENGINE_load_chil(void)
-       {
-#ifndef OPENSSL_NO_HW
-#ifndef OPENSSL_NO_HW_CSWIFT
-       engine_add(ENGINE_ncipher());
-#endif /* !OPENSSL_NO_HW_CSWIFT */
-#endif /* !OPENSSL_NO_HW */
-       }
-
-void ENGINE_load_atalla(void)
-       {
-#ifndef OPENSSL_NO_HW
-#ifndef OPENSSL_NO_HW_CSWIFT
-       engine_add(ENGINE_atalla());
-#endif /* !OPENSSL_NO_HW_CSWIFT */
-#endif /* !OPENSSL_NO_HW */
-       }
-
-void ENGINE_load_nuron(void)
+void ENGINE_load_builtin_engines(void)
        {
+#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). */
+       ENGINE_load_openssl();
+#endif
+#if defined(__OpenBSD__) || defined(__FreeBSD__)
+       ENGINE_load_cryptodev();
+#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_add(ENGINE_nuron());
-#endif /* !OPENSSL_NO_HW_CSWIFT */
-#endif /* !OPENSSL_NO_HW */
-       }
-
-void ENGINE_load_ubsec(void)
-       {
-#ifndef OPENSSL_NO_HW
-#ifndef OPENSSL_NO_HW_UBSEC
-       engine_add(ENGINE_ubsec());
-#endif /* !OPENSSL_NO_HW_UBSEC */
-#endif /* !OPENSSL_NO_HW */
-       }
-
-void ENGINE_load_openbsd_dev_crypto(void)
-       {
-#ifndef OPENSSL_NO_HW
-# ifdef OPENSSL_OPENBSD_DEV_CRYPTO
-       engine_add(ENGINE_openbsd_dev_crypto());
-# endif
-#endif /* !OPENSSL_NO_HW */
-       }
-
-void ENGINE_load_builtin_engines(void)
-       {
-       static int done=0;
-
-       if (done) return;
-       done=1;
-
        ENGINE_load_cswift();
+#endif
+#ifndef OPENSSL_NO_HW_NCIPHER
        ENGINE_load_chil();
-       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();
-       ENGINE_load_openbsd_dev_crypto();
+#endif
+#ifndef OPENSSL_NO_HW_PADLOCK
+       ENGINE_load_padlock();
+#endif
+#endif
+#ifndef OPENSSL_NO_GOST
+       ENGINE_load_gost();
+#endif
+#ifndef OPENSSL_NO_GMP
+       ENGINE_load_gmp();
+#endif
+#endif
+#if defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_NO_CAPIENG)
+       ENGINE_load_capi();
+#endif
+       }
+
+#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