size_t len);
/* Standard initialisation options */
-# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x000001
-# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x000002
-# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x000004
-# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x000008
-# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x000010
-# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x000020
-# define OPENSSL_INIT_LOAD_CONFIG 0x000040
-# define OPENSSL_INIT_NO_LOAD_CONFIG 0x000080
-# define OPENSSL_INIT_ASYNC 0x000100
-# define OPENSSL_INIT_ENGINE_RDRAND 0x000200
-# define OPENSSL_INIT_ENGINE_DYNAMIC 0x000400
-# define OPENSSL_INIT_ENGINE_OPENSSL 0x000800
-# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x001000
-# define OPENSSL_INIT_ENGINE_CAPI 0x002000
-# define OPENSSL_INIT_ENGINE_PADLOCK 0x004000
-# define OPENSSL_INIT_ENGINE_DASYNC 0x008000
-/* OPENSSL_INIT flag 0x010000 reserved for internal use */
+# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L
+# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L
+# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L
+# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L
+# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L
+# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L
+# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L
+# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L
+# define OPENSSL_INIT_ASYNC 0x00000100L
+# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L
+# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L
+# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L
+# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L
+# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L
+# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L
+# define OPENSSL_INIT_ENGINE_DASYNC 0x00008000L
+/* OPENSSL_INIT flag 0x00010000 reserved for internal use */
+/* OPENSSL_INIT flag range 0xfff00000 reserved for OPENSSL_init_ssl() */
/* Max OPENSSL_INIT flag value is 0x80000000 */
/* openssl and dasync not counted as builtin */
OPENSSL_INIT_ENGINE_PADLOCK)
-
-/* Optional settings for initialisation */
-# define OPENSSL_INIT_SET_END 0
-# define OPENSSL_INIT_SET_CONF_FILENAME 1
-
-typedef struct ossl_init_settings_st {
- int name;
- union {
- int type_int;
- long type_long;
- int32_t type_int32_t;
- uint32_t type_uint32_t;
- int64_t type_int64_t;
- uint64_t type_uint64_t;
- size_t type_size_t;
- const char *type_string;
- void *type_void_ptr;
- } value;
-} OPENSSL_INIT_SETTINGS;
-
-typedef struct ossl_init_stop_st OPENSSL_INIT_STOP;
-
/* Library initialisation functions */
void OPENSSL_cleanup(void);
int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings);
int OPENSSL_atexit(void (*handler)(void));
void OPENSSL_thread_stop(void);
+/* Low-level control of initialization */
+OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void);
+void OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,
+ const char *config_file);
+void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings);
+
/* BEGIN ERROR CODES */
/*
* The following lines are auto generated by the script mkerr.pl. Any changes