65 #ifndef HEADER_ENGINE_H
66 # define HEADER_ENGINE_H
68 # include <openssl/opensslconf.h>
70 # ifdef OPENSSL_NO_ENGINE
71 # error ENGINE is disabled.
74 # ifndef OPENSSL_NO_DEPRECATED
75 # include <openssl/bn.h>
76 # ifndef OPENSSL_NO_RSA
77 # include <openssl/rsa.h>
79 # ifndef OPENSSL_NO_DSA
80 # include <openssl/dsa.h>
82 # ifndef OPENSSL_NO_DH
83 # include <openssl/dh.h>
85 # ifndef OPENSSL_NO_ECDH
86 # include <openssl/ecdh.h>
88 # ifndef OPENSSL_NO_ECDSA
89 # include <openssl/ecdsa.h>
91 # include <openssl/rand.h>
92 # include <openssl/ui.h>
93 # include <openssl/err.h>
96 # include <openssl/ossl_typ.h>
97 # include <openssl/symhacks.h>
99 # include <openssl/x509.h>
109 # define ENGINE_METHOD_RSA (unsigned int)0x0001
110 # define ENGINE_METHOD_DSA (unsigned int)0x0002
111 # define ENGINE_METHOD_DH (unsigned int)0x0004
112 # define ENGINE_METHOD_RAND (unsigned int)0x0008
113 # define ENGINE_METHOD_ECDH (unsigned int)0x0010
114 # define ENGINE_METHOD_ECDSA (unsigned int)0x0020
115 # define ENGINE_METHOD_CIPHERS (unsigned int)0x0040
116 # define ENGINE_METHOD_DIGESTS (unsigned int)0x0080
117 # define ENGINE_METHOD_STORE (unsigned int)0x0100
118 # define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200
119 # define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400
121 # define ENGINE_METHOD_ALL (unsigned int)0xFFFF
122 # define ENGINE_METHOD_NONE (unsigned int)0x0000
130 # define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001
142 # define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002
154 # define ENGINE_FLAGS_BY_ID_COPY (int)0x0004
162 # define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008
177 # define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001
182 # define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002
187 # define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004
193 # define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008
212 # define ENGINE_CTRL_SET_LOGSTREAM 1
213 # define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2
214 # define ENGINE_CTRL_HUP 3
217 # define ENGINE_CTRL_SET_USER_INTERFACE 4
218 # define ENGINE_CTRL_SET_CALLBACK_DATA 5
222 # define ENGINE_CTRL_LOAD_CONFIGURATION 6
226 # define ENGINE_CTRL_LOAD_SECTION 7
250 # define ENGINE_CTRL_HAS_CTRL_FUNCTION 10
255 # define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11
260 # define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12
265 # define ENGINE_CTRL_GET_CMD_FROM_NAME 13
274 # define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14
275 # define ENGINE_CTRL_GET_NAME_FROM_CMD 15
277 # define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16
278 # define ENGINE_CTRL_GET_DESC_FROM_CMD 17
284 # define ENGINE_CTRL_GET_CMD_FLAGS 18
290 # define ENGINE_CMD_BASE 200
301 # define ENGINE_CTRL_CHIL_SET_FORKCHECK 100
307 # define ENGINE_CTRL_CHIL_NO_LOCKING 101
323 typedef struct ENGINE_CMD_DEFN_st {
324 unsigned int cmd_num;
325 const char *cmd_name;
326 const char *cmd_desc;
327 unsigned int cmd_flags;
331 typedef int (*ENGINE_GEN_FUNC_PTR) (void);
333 typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *);
335 typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long,
void *,
338 typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *,
const char *,
339 UI_METHOD *ui_method,
340 void *callback_data);
341 typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl,
342 STACK_OF(X509_NAME) *ca_dn,
343 X509 **pcert, EVP_PKEY **pkey,
344 STACK_OF(X509) **pother,
345 UI_METHOD *ui_method,
346 void *callback_data);
362 typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *,
const EVP_CIPHER **,
364 typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *,
const EVP_MD **,
const int **,
366 typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **,
368 typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **,
383 ENGINE *ENGINE_get_first(
void);
384 ENGINE *ENGINE_get_last(
void);
386 ENGINE *ENGINE_get_next(ENGINE *e);
387 ENGINE *ENGINE_get_prev(ENGINE *e);
389 int ENGINE_add(ENGINE *e);
391 int ENGINE_remove(ENGINE *e);
393 ENGINE *ENGINE_by_id(
const char *
id);
395 void ENGINE_load_openssl(
void);
396 void ENGINE_load_dynamic(
void);
397 # ifndef OPENSSL_NO_STATIC_ENGINE
398 void ENGINE_load_4758cca(
void);
399 void ENGINE_load_aep(
void);
400 void ENGINE_load_atalla(
void);
401 void ENGINE_load_chil(
void);
402 void ENGINE_load_cswift(
void);
403 void ENGINE_load_nuron(
void);
404 void ENGINE_load_sureware(
void);
405 void ENGINE_load_ubsec(
void);
406 void ENGINE_load_padlock(
void);
407 void ENGINE_load_capi(
void);
408 # ifndef OPENSSL_NO_GMP
409 void ENGINE_load_gmp(
void);
411 # ifndef OPENSSL_NO_GOST
412 void ENGINE_load_gost(
void);
415 void ENGINE_load_cryptodev(
void);
416 void ENGINE_load_rdrand(
void);
417 void ENGINE_load_builtin_engines(
void);
423 unsigned int ENGINE_get_table_flags(
void);
424 void ENGINE_set_table_flags(
unsigned int flags);
435 int ENGINE_register_RSA(ENGINE *e);
436 void ENGINE_unregister_RSA(ENGINE *e);
437 void ENGINE_register_all_RSA(
void);
439 int ENGINE_register_DSA(ENGINE *e);
440 void ENGINE_unregister_DSA(ENGINE *e);
441 void ENGINE_register_all_DSA(
void);
443 int ENGINE_register_ECDH(ENGINE *e);
444 void ENGINE_unregister_ECDH(ENGINE *e);
445 void ENGINE_register_all_ECDH(
void);
447 int ENGINE_register_ECDSA(ENGINE *e);
448 void ENGINE_unregister_ECDSA(ENGINE *e);
449 void ENGINE_register_all_ECDSA(
void);
451 int ENGINE_register_DH(ENGINE *e);
452 void ENGINE_unregister_DH(ENGINE *e);
453 void ENGINE_register_all_DH(
void);
455 int ENGINE_register_RAND(ENGINE *e);
456 void ENGINE_unregister_RAND(ENGINE *e);
457 void ENGINE_register_all_RAND(
void);
459 int ENGINE_register_STORE(ENGINE *e);
460 void ENGINE_unregister_STORE(ENGINE *e);
461 void ENGINE_register_all_STORE(
void);
463 int ENGINE_register_ciphers(ENGINE *e);
464 void ENGINE_unregister_ciphers(ENGINE *e);
465 void ENGINE_register_all_ciphers(
void);
467 int ENGINE_register_digests(ENGINE *e);
468 void ENGINE_unregister_digests(ENGINE *e);
469 void ENGINE_register_all_digests(
void);
471 int ENGINE_register_pkey_meths(ENGINE *e);
472 void ENGINE_unregister_pkey_meths(ENGINE *e);
473 void ENGINE_register_all_pkey_meths(
void);
475 int ENGINE_register_pkey_asn1_meths(ENGINE *e);
476 void ENGINE_unregister_pkey_asn1_meths(ENGINE *e);
477 void ENGINE_register_all_pkey_asn1_meths(
void);
485 int ENGINE_register_complete(ENGINE *e);
486 int ENGINE_register_all_complete(
void);
498 int ENGINE_ctrl(ENGINE *e,
int cmd,
long i,
void *p,
void (*f) (
void));
506 int ENGINE_cmd_is_executable(ENGINE *e,
int cmd);
514 int ENGINE_ctrl_cmd(ENGINE *e,
const char *cmd_name,
515 long i,
void *p,
void (*f) (
void),
int cmd_optional);
539 int ENGINE_ctrl_cmd_string(ENGINE *e,
const char *cmd_name,
const char *arg,
550 ENGINE *ENGINE_new(
void);
551 int ENGINE_free(ENGINE *e);
552 int ENGINE_up_ref(ENGINE *e);
553 int ENGINE_set_id(ENGINE *e,
const char *
id);
554 int ENGINE_set_name(ENGINE *e,
const char *name);
555 int ENGINE_set_RSA(ENGINE *e,
const RSA_METHOD *rsa_meth);
556 int ENGINE_set_DSA(ENGINE *e,
const DSA_METHOD *dsa_meth);
557 int ENGINE_set_ECDH(ENGINE *e,
const ECDH_METHOD *ecdh_meth);
558 int ENGINE_set_ECDSA(ENGINE *e,
const ECDSA_METHOD *ecdsa_meth);
559 int ENGINE_set_DH(ENGINE *e,
const DH_METHOD *dh_meth);
560 int ENGINE_set_RAND(ENGINE *e,
const RAND_METHOD *rand_meth);
561 int ENGINE_set_STORE(ENGINE *e,
const STORE_METHOD *store_meth);
562 int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f);
563 int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f);
564 int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f);
565 int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f);
566 int ENGINE_set_load_privkey_function(ENGINE *e,
567 ENGINE_LOAD_KEY_PTR loadpriv_f);
568 int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f);
569 int ENGINE_set_load_ssl_client_cert_function(ENGINE *e,
570 ENGINE_SSL_CLIENT_CERT_PTR
572 int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f);
573 int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f);
574 int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f);
575 int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f);
576 int ENGINE_set_flags(ENGINE *e,
int flags);
577 int ENGINE_set_cmd_defns(ENGINE *e,
const ENGINE_CMD_DEFN *defns);
579 int ENGINE_get_ex_new_index(
long argl,
void *argp, CRYPTO_EX_new *new_func,
580 CRYPTO_EX_dup *dup_func,
581 CRYPTO_EX_free *free_func);
582 int ENGINE_set_ex_data(ENGINE *e,
int idx,
void *arg);
583 void *ENGINE_get_ex_data(
const ENGINE *e,
int idx);
591 void ENGINE_cleanup(
void);
599 const char *ENGINE_get_id(
const ENGINE *e);
600 const char *ENGINE_get_name(
const ENGINE *e);
601 const RSA_METHOD *ENGINE_get_RSA(
const ENGINE *e);
602 const DSA_METHOD *ENGINE_get_DSA(
const ENGINE *e);
603 const ECDH_METHOD *ENGINE_get_ECDH(
const ENGINE *e);
604 const ECDSA_METHOD *ENGINE_get_ECDSA(
const ENGINE *e);
605 const DH_METHOD *ENGINE_get_DH(
const ENGINE *e);
606 const RAND_METHOD *ENGINE_get_RAND(
const ENGINE *e);
607 const STORE_METHOD *ENGINE_get_STORE(
const ENGINE *e);
608 ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(
const ENGINE *e);
609 ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(
const ENGINE *e);
610 ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(
const ENGINE *e);
611 ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(
const ENGINE *e);
612 ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(
const ENGINE *e);
613 ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(
const ENGINE *e);
614 ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(
const ENGINE
616 ENGINE_CIPHERS_PTR ENGINE_get_ciphers(
const ENGINE *e);
617 ENGINE_DIGESTS_PTR ENGINE_get_digests(
const ENGINE *e);
618 ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(
const ENGINE *e);
619 ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(
const ENGINE *e);
620 const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e,
int nid);
621 const EVP_MD *ENGINE_get_digest(ENGINE *e,
int nid);
622 const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e,
int nid);
623 const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e,
int nid);
624 const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e,
627 const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe,
630 const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(
const ENGINE *e);
631 int ENGINE_get_flags(
const ENGINE *e);
651 int ENGINE_init(ENGINE *e);
657 int ENGINE_finish(ENGINE *e);
664 EVP_PKEY *ENGINE_load_private_key(ENGINE *e,
const char *key_id,
665 UI_METHOD *ui_method,
void *callback_data);
666 EVP_PKEY *ENGINE_load_public_key(ENGINE *e,
const char *key_id,
667 UI_METHOD *ui_method,
void *callback_data);
668 int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s,
669 STACK_OF(X509_NAME) *ca_dn, X509 **pcert,
670 EVP_PKEY **ppkey, STACK_OF(X509) **pother,
671 UI_METHOD *ui_method,
void *callback_data);
679 ENGINE *ENGINE_get_default_RSA(
void);
681 ENGINE *ENGINE_get_default_DSA(
void);
682 ENGINE *ENGINE_get_default_ECDH(
void);
683 ENGINE *ENGINE_get_default_ECDSA(
void);
684 ENGINE *ENGINE_get_default_DH(
void);
685 ENGINE *ENGINE_get_default_RAND(
void);
690 ENGINE *ENGINE_get_cipher_engine(
int nid);
691 ENGINE *ENGINE_get_digest_engine(
int nid);
692 ENGINE *ENGINE_get_pkey_meth_engine(
int nid);
693 ENGINE *ENGINE_get_pkey_asn1_meth_engine(
int nid);
701 int ENGINE_set_default_RSA(ENGINE *e);
702 int ENGINE_set_default_string(ENGINE *e,
const char *def_list);
704 int ENGINE_set_default_DSA(ENGINE *e);
705 int ENGINE_set_default_ECDH(ENGINE *e);
706 int ENGINE_set_default_ECDSA(ENGINE *e);
707 int ENGINE_set_default_DH(ENGINE *e);
708 int ENGINE_set_default_RAND(ENGINE *e);
709 int ENGINE_set_default_ciphers(ENGINE *e);
710 int ENGINE_set_default_digests(ENGINE *e);
711 int ENGINE_set_default_pkey_meths(ENGINE *e);
712 int ENGINE_set_default_pkey_asn1_meths(ENGINE *e);
721 int ENGINE_set_default(ENGINE *e,
unsigned int flags);
723 void ENGINE_add_conf_module(
void);
733 # define OSSL_DYNAMIC_VERSION (unsigned long)0x00020000
738 # define OSSL_DYNAMIC_OLDEST (unsigned long)0x00020000
751 typedef void *(*dyn_MEM_malloc_cb) (size_t);
752 typedef void *(*dyn_MEM_realloc_cb) (
void *, size_t);
753 typedef void (*dyn_MEM_free_cb) (
void *);
754 typedef struct st_dynamic_MEM_fns {
755 dyn_MEM_malloc_cb malloc_cb;
756 dyn_MEM_realloc_cb realloc_cb;
757 dyn_MEM_free_cb free_cb;
763 typedef void (*dyn_lock_locking_cb) (int, int,
const char *, int);
764 typedef int (*dyn_lock_add_lock_cb) (
int *, int, int,
const char *, int);
765 typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb) (
const char *,
767 typedef void (*dyn_dynlock_lock_cb) (int,
struct CRYPTO_dynlock_value *,
769 typedef void (*dyn_dynlock_destroy_cb) (
struct CRYPTO_dynlock_value *,
771 typedef struct st_dynamic_LOCK_fns {
772 dyn_lock_locking_cb lock_locking_cb;
773 dyn_lock_add_lock_cb lock_add_lock_cb;
774 dyn_dynlock_create_cb dynlock_create_cb;
775 dyn_dynlock_lock_cb dynlock_lock_cb;
776 dyn_dynlock_destroy_cb dynlock_destroy_cb;
779 typedef struct st_dynamic_fns {
781 const ERR_FNS *err_fns;
782 const CRYPTO_EX_DATA_IMPL *ex_data_fns;
783 dynamic_MEM_fns mem_fns;
784 dynamic_LOCK_fns lock_fns;
799 typedef unsigned long (*dynamic_v_check_fn) (
unsigned long ossl_version);
800 # define IMPLEMENT_DYNAMIC_CHECK_FN() \
801 OPENSSL_EXPORT unsigned long v_check(unsigned long v); \
802 OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \
803 if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \
824 typedef int (*dynamic_bind_engine) (ENGINE *e,
const char *id,
825 const dynamic_fns *fns);
826 # define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
828 int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \
830 int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
831 if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \
832 if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \
833 fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \
835 CRYPTO_set_locking_callback(fns->lock_fns.lock_locking_cb); \
836 CRYPTO_set_add_lock_callback(fns->lock_fns.lock_add_lock_cb); \
837 CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \
838 CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \
839 CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \
840 if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \
842 if(!ERR_set_implementation(fns->err_fns)) return 0; \
844 if(!fn(e,id)) return 0; \
858 void *ENGINE_get_static_state(
void);
860 # if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV)
861 void ENGINE_setup_bsd_cryptodev(
void);
869 void ERR_load_ENGINE_strings(
void);
874 # define ENGINE_F_DYNAMIC_CTRL 180
875 # define ENGINE_F_DYNAMIC_GET_DATA_CTX 181
876 # define ENGINE_F_DYNAMIC_LOAD 182
877 # define ENGINE_F_DYNAMIC_SET_DATA_CTX 183
878 # define ENGINE_F_ENGINE_ADD 105
879 # define ENGINE_F_ENGINE_BY_ID 106
880 # define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170
881 # define ENGINE_F_ENGINE_CTRL 142
882 # define ENGINE_F_ENGINE_CTRL_CMD 178
883 # define ENGINE_F_ENGINE_CTRL_CMD_STRING 171
884 # define ENGINE_F_ENGINE_FINISH 107
885 # define ENGINE_F_ENGINE_FREE_UTIL 108
886 # define ENGINE_F_ENGINE_GET_CIPHER 185
887 # define ENGINE_F_ENGINE_GET_DEFAULT_TYPE 177
888 # define ENGINE_F_ENGINE_GET_DIGEST 186
889 # define ENGINE_F_ENGINE_GET_NEXT 115
890 # define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193
891 # define ENGINE_F_ENGINE_GET_PKEY_METH 192
892 # define ENGINE_F_ENGINE_GET_PREV 116
893 # define ENGINE_F_ENGINE_INIT 119
894 # define ENGINE_F_ENGINE_LIST_ADD 120
895 # define ENGINE_F_ENGINE_LIST_REMOVE 121
896 # define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150
897 # define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151
898 # define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194
899 # define ENGINE_F_ENGINE_NEW 122
900 # define ENGINE_F_ENGINE_REMOVE 123
901 # define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189
902 # define ENGINE_F_ENGINE_SET_DEFAULT_TYPE 126
903 # define ENGINE_F_ENGINE_SET_ID 129
904 # define ENGINE_F_ENGINE_SET_NAME 130
905 # define ENGINE_F_ENGINE_TABLE_REGISTER 184
906 # define ENGINE_F_ENGINE_UNLOAD_KEY 152
907 # define ENGINE_F_ENGINE_UNLOCKED_FINISH 191
908 # define ENGINE_F_ENGINE_UP_REF 190
909 # define ENGINE_F_INT_CTRL_HELPER 172
910 # define ENGINE_F_INT_ENGINE_CONFIGURE 188
911 # define ENGINE_F_INT_ENGINE_MODULE_INIT 187
912 # define ENGINE_F_LOG_MESSAGE 141
915 # define ENGINE_R_ALREADY_LOADED 100
916 # define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133
917 # define ENGINE_R_CMD_NOT_EXECUTABLE 134
918 # define ENGINE_R_COMMAND_TAKES_INPUT 135
919 # define ENGINE_R_COMMAND_TAKES_NO_INPUT 136
920 # define ENGINE_R_CONFLICTING_ENGINE_ID 103
921 # define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119
922 # define ENGINE_R_DH_NOT_IMPLEMENTED 139
923 # define ENGINE_R_DSA_NOT_IMPLEMENTED 140
924 # define ENGINE_R_DSO_FAILURE 104
925 # define ENGINE_R_DSO_NOT_FOUND 132
926 # define ENGINE_R_ENGINES_SECTION_ERROR 148
927 # define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102
928 # define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105
929 # define ENGINE_R_ENGINE_SECTION_ERROR 149
930 # define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128
931 # define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129
932 # define ENGINE_R_FINISH_FAILED 106
933 # define ENGINE_R_GET_HANDLE_FAILED 107
934 # define ENGINE_R_ID_OR_NAME_MISSING 108
935 # define ENGINE_R_INIT_FAILED 109
936 # define ENGINE_R_INTERNAL_LIST_ERROR 110
937 # define ENGINE_R_INVALID_ARGUMENT 143
938 # define ENGINE_R_INVALID_CMD_NAME 137
939 # define ENGINE_R_INVALID_CMD_NUMBER 138
940 # define ENGINE_R_INVALID_INIT_VALUE 151
941 # define ENGINE_R_INVALID_STRING 150
942 # define ENGINE_R_NOT_INITIALISED 117
943 # define ENGINE_R_NOT_LOADED 112
944 # define ENGINE_R_NO_CONTROL_FUNCTION 120
945 # define ENGINE_R_NO_INDEX 144
946 # define ENGINE_R_NO_LOAD_FUNCTION 125
947 # define ENGINE_R_NO_REFERENCE 130
948 # define ENGINE_R_NO_SUCH_ENGINE 116
949 # define ENGINE_R_NO_UNLOAD_FUNCTION 126
950 # define ENGINE_R_PROVIDE_PARAMETERS 113
951 # define ENGINE_R_RSA_NOT_IMPLEMENTED 141
952 # define ENGINE_R_UNIMPLEMENTED_CIPHER 146
953 # define ENGINE_R_UNIMPLEMENTED_DIGEST 147
954 # define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101
955 # define ENGINE_R_VERSION_INCOMPATIBILITY 145