ENGINE uses a very opaque design, so we can predeclare the structure type
authorGeoff Thorpe <geoff@openssl.org>
Wed, 12 Sep 2001 02:34:20 +0000 (02:34 +0000)
committerGeoff Thorpe <geoff@openssl.org>
Wed, 12 Sep 2001 02:34:20 +0000 (02:34 +0000)
in "types.h" so that very few headers will need to include engine.h,
generally only C files using API functions will need it (reducing
the header dependencies quite a lot).

crypto/engine/engine.h
crypto/types.h

index 644f00c7789e29328000024b7fdf60a786970eb4..99b378c9d465da9f9420d020d8532ca43ce5c600 100644 (file)
@@ -259,13 +259,6 @@ typedef int (*BN_MOD_EXP_CRT)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
                const BIGNUM *q, const BIGNUM *dmp1, const BIGNUM *dmq1,
                const BIGNUM *iqmp, BN_CTX *ctx);
 
-/* The list of "engine" types is a static array of (const ENGINE*)
- * pointers (not dynamic because static is fine for now and we otherwise
- * have to hook an appropriate load/unload function in to initialise and
- * cleanup). */
-struct engine_st;
-typedef struct engine_st ENGINE;
-
 /* Generic function pointer */
 typedef int (*ENGINE_GEN_FUNC_PTR)();
 /* Generic function pointer taking no arguments */
index 310cf42f54ad09136eed6708cfee296309a72247..b3aa586b18d2f9650ad0e4f2705ab46c2acaa631 100644 (file)
@@ -106,6 +106,8 @@ typedef struct X509_name_st X509_NAME;
 typedef struct x509_store_st X509_STORE;
 typedef struct x509_store_ctx_st X509_STORE_CTX;
 
+typedef struct engine_st ENGINE;
+
   /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */
 #define DECLARE_PKCS12_STACK_OF(type) /* Nothing */
 #define IMPLEMENT_PKCS12_STACK_OF(type) /* Nothing */