64 #ifndef HEADER_ENGINE_H
65 #define HEADER_ENGINE_H
67 #include <openssl/opensslconf.h>
69 #ifdef OPENSSL_NO_ENGINE
70 #error ENGINE is disabled.
73 #ifndef OPENSSL_NO_DEPRECATED
74 #include <openssl/bn.h>
75 #ifndef OPENSSL_NO_RSA
76 #include <openssl/rsa.h>
78 #ifndef OPENSSL_NO_DSA
79 #include <openssl/dsa.h>
82 #include <openssl/dh.h>
84 #ifndef OPENSSL_NO_ECDH
85 #include <openssl/ecdh.h>
87 #ifndef OPENSSL_NO_ECDSA
88 #include <openssl/ecdsa.h>
90 #include <openssl/rand.h>
91 #include <openssl/ui.h>
92 #include <openssl/err.h>
95 #include <openssl/ossl_typ.h>
96 #include <openssl/symhacks.h>
98 #include <openssl/x509.h>
106 #define ENGINE_METHOD_RSA (unsigned int)0x0001
107 #define ENGINE_METHOD_DSA (unsigned int)0x0002
108 #define ENGINE_METHOD_DH (unsigned int)0x0004
109 #define ENGINE_METHOD_RAND (unsigned int)0x0008
110 #define ENGINE_METHOD_ECDH (unsigned int)0x0010
111 #define ENGINE_METHOD_ECDSA (unsigned int)0x0020
112 #define ENGINE_METHOD_CIPHERS (unsigned int)0x0040
113 #define ENGINE_METHOD_DIGESTS (unsigned int)0x0080
114 #define ENGINE_METHOD_STORE (unsigned int)0x0100
115 #define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200
116 #define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400
118 #define ENGINE_METHOD_ALL (unsigned int)0xFFFF
119 #define ENGINE_METHOD_NONE (unsigned int)0x0000
125 #define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001
133 #define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002
142 #define ENGINE_FLAGS_BY_ID_COPY (int)0x0004
149 #define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008
162 #define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001
165 #define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002
168 #define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004
172 #define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008
187 #define ENGINE_CTRL_SET_LOGSTREAM 1
188 #define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2
189 #define ENGINE_CTRL_HUP 3
191 #define ENGINE_CTRL_SET_USER_INTERFACE 4
192 #define ENGINE_CTRL_SET_CALLBACK_DATA 5
196 #define ENGINE_CTRL_LOAD_CONFIGURATION 6
199 #define ENGINE_CTRL_LOAD_SECTION 7
220 #define ENGINE_CTRL_HAS_CTRL_FUNCTION 10
223 #define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11
226 #define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12
229 #define ENGINE_CTRL_GET_CMD_FROM_NAME 13
236 #define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14
237 #define ENGINE_CTRL_GET_NAME_FROM_CMD 15
239 #define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16
240 #define ENGINE_CTRL_GET_DESC_FROM_CMD 17
244 #define ENGINE_CTRL_GET_CMD_FLAGS 18
248 #define ENGINE_CMD_BASE 200
257 #define ENGINE_CTRL_CHIL_SET_FORKCHECK 100
262 #define ENGINE_CTRL_CHIL_NO_LOCKING 101
276 unsigned int cmd_num;
277 const char *cmd_name;
278 const char *cmd_desc;
279 unsigned int cmd_flags;
283 typedef int (*ENGINE_GEN_FUNC_PTR)(void);
285 typedef int (*ENGINE_GEN_INT_FUNC_PTR)(ENGINE *);
287 typedef int (*ENGINE_CTRL_FUNC_PTR)(ENGINE *, int, long,
void *, void (*f)(void));
289 typedef EVP_PKEY * (*ENGINE_LOAD_KEY_PTR)(ENGINE *,
const char *,
290 UI_METHOD *ui_method,
void *callback_data);
291 typedef int (*ENGINE_SSL_CLIENT_CERT_PTR)(ENGINE *,
SSL *ssl,
293 STACK_OF(
X509) **pother, UI_METHOD *ui_method,
void *callback_data);
306 typedef int (*ENGINE_CIPHERS_PTR)(ENGINE *,
const EVP_CIPHER **,
const int **, int);
307 typedef int (*ENGINE_DIGESTS_PTR)(ENGINE *,
const EVP_MD **,
const int **, int);
308 typedef int (*ENGINE_PKEY_METHS_PTR)(ENGINE *, EVP_PKEY_METHOD **,
const int **, int);
309 typedef int (*ENGINE_PKEY_ASN1_METHS_PTR)(ENGINE *, EVP_PKEY_ASN1_METHOD **,
const int **, int);
321 ENGINE *ENGINE_get_first(
void);
322 ENGINE *ENGINE_get_last(
void);
324 ENGINE *ENGINE_get_next(ENGINE *e);
325 ENGINE *ENGINE_get_prev(ENGINE *e);
327 int ENGINE_add(ENGINE *e);
329 int ENGINE_remove(ENGINE *e);
331 ENGINE *ENGINE_by_id(
const char *
id);
333 void ENGINE_load_openssl(
void);
334 void ENGINE_load_dynamic(
void);
335 #ifndef OPENSSL_NO_STATIC_ENGINE
336 void ENGINE_load_4758cca(
void);
337 void ENGINE_load_aep(
void);
338 void ENGINE_load_atalla(
void);
339 void ENGINE_load_chil(
void);
340 void ENGINE_load_cswift(
void);
341 void ENGINE_load_nuron(
void);
342 void ENGINE_load_sureware(
void);
343 void ENGINE_load_ubsec(
void);
344 void ENGINE_load_padlock(
void);
345 void ENGINE_load_capi(
void);
346 #ifndef OPENSSL_NO_GMP
347 void ENGINE_load_gmp(
void);
349 #ifndef OPENSSL_NO_GOST
350 void ENGINE_load_gost(
void);
353 void ENGINE_load_cryptodev(
void);
354 void ENGINE_load_rsax(
void);
355 void ENGINE_load_rdrand(
void);
356 void ENGINE_load_builtin_engines(
void);
360 unsigned int ENGINE_get_table_flags(
void);
361 void ENGINE_set_table_flags(
unsigned int flags);
371 int ENGINE_register_RSA(ENGINE *e);
372 void ENGINE_unregister_RSA(ENGINE *e);
373 void ENGINE_register_all_RSA(
void);
375 int ENGINE_register_DSA(ENGINE *e);
376 void ENGINE_unregister_DSA(ENGINE *e);
377 void ENGINE_register_all_DSA(
void);
379 int ENGINE_register_ECDH(ENGINE *e);
380 void ENGINE_unregister_ECDH(ENGINE *e);
381 void ENGINE_register_all_ECDH(
void);
383 int ENGINE_register_ECDSA(ENGINE *e);
384 void ENGINE_unregister_ECDSA(ENGINE *e);
385 void ENGINE_register_all_ECDSA(
void);
387 int ENGINE_register_DH(ENGINE *e);
388 void ENGINE_unregister_DH(ENGINE *e);
389 void ENGINE_register_all_DH(
void);
391 int ENGINE_register_RAND(ENGINE *e);
392 void ENGINE_unregister_RAND(ENGINE *e);
393 void ENGINE_register_all_RAND(
void);
395 int ENGINE_register_STORE(ENGINE *e);
396 void ENGINE_unregister_STORE(ENGINE *e);
397 void ENGINE_register_all_STORE(
void);
399 int ENGINE_register_ciphers(ENGINE *e);
400 void ENGINE_unregister_ciphers(ENGINE *e);
401 void ENGINE_register_all_ciphers(
void);
403 int ENGINE_register_digests(ENGINE *e);
404 void ENGINE_unregister_digests(ENGINE *e);
405 void ENGINE_register_all_digests(
void);
407 int ENGINE_register_pkey_meths(ENGINE *e);
408 void ENGINE_unregister_pkey_meths(ENGINE *e);
409 void ENGINE_register_all_pkey_meths(
void);
411 int ENGINE_register_pkey_asn1_meths(ENGINE *e);
412 void ENGINE_unregister_pkey_asn1_meths(ENGINE *e);
413 void ENGINE_register_all_pkey_asn1_meths(
void);
419 int ENGINE_register_complete(ENGINE *e);
420 int ENGINE_register_all_complete(
void);
429 int ENGINE_ctrl(ENGINE *e,
int cmd,
long i,
void *p,
void (*f)(
void));
435 int ENGINE_cmd_is_executable(ENGINE *e,
int cmd);
441 int ENGINE_ctrl_cmd(ENGINE *e,
const char *cmd_name,
442 long i,
void *p,
void (*f)(
void),
int cmd_optional);
463 int ENGINE_ctrl_cmd_string(ENGINE *e,
const char *cmd_name,
const char *arg,
472 ENGINE *ENGINE_new(
void);
473 int ENGINE_free(ENGINE *e);
474 int ENGINE_up_ref(ENGINE *e);
475 int ENGINE_set_id(ENGINE *e,
const char *
id);
476 int ENGINE_set_name(ENGINE *e,
const char *name);
477 int ENGINE_set_RSA(ENGINE *e,
const RSA_METHOD *rsa_meth);
478 int ENGINE_set_DSA(ENGINE *e,
const DSA_METHOD *dsa_meth);
479 int ENGINE_set_ECDH(ENGINE *e,
const ECDH_METHOD *ecdh_meth);
480 int ENGINE_set_ECDSA(ENGINE *e,
const ECDSA_METHOD *ecdsa_meth);
481 int ENGINE_set_DH(ENGINE *e,
const DH_METHOD *dh_meth);
482 int ENGINE_set_RAND(ENGINE *e,
const RAND_METHOD *rand_meth);
483 int ENGINE_set_STORE(ENGINE *e,
const STORE_METHOD *store_meth);
484 int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f);
485 int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f);
486 int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f);
487 int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f);
488 int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f);
489 int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f);
490 int ENGINE_set_load_ssl_client_cert_function(ENGINE *e,
491 ENGINE_SSL_CLIENT_CERT_PTR loadssl_f);
492 int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f);
493 int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f);
494 int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f);
495 int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f);
496 int ENGINE_set_flags(ENGINE *e,
int flags);
499 int ENGINE_get_ex_new_index(
long argl,
void *argp, CRYPTO_EX_new *new_func,
500 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
501 int ENGINE_set_ex_data(ENGINE *e,
int idx,
void *arg);
502 void *ENGINE_get_ex_data(
const ENGINE *e,
int idx);
508 void ENGINE_cleanup(
void);
514 const char *ENGINE_get_id(
const ENGINE *e);
515 const char *ENGINE_get_name(
const ENGINE *e);
516 const RSA_METHOD *ENGINE_get_RSA(
const ENGINE *e);
517 const DSA_METHOD *ENGINE_get_DSA(
const ENGINE *e);
518 const ECDH_METHOD *ENGINE_get_ECDH(
const ENGINE *e);
519 const ECDSA_METHOD *ENGINE_get_ECDSA(
const ENGINE *e);
520 const DH_METHOD *ENGINE_get_DH(
const ENGINE *e);
521 const RAND_METHOD *ENGINE_get_RAND(
const ENGINE *e);
522 const STORE_METHOD *ENGINE_get_STORE(
const ENGINE *e);
523 ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(
const ENGINE *e);
524 ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(
const ENGINE *e);
525 ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(
const ENGINE *e);
526 ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(
const ENGINE *e);
527 ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(
const ENGINE *e);
528 ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(
const ENGINE *e);
529 ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(
const ENGINE *e);
530 ENGINE_CIPHERS_PTR ENGINE_get_ciphers(
const ENGINE *e);
531 ENGINE_DIGESTS_PTR ENGINE_get_digests(
const ENGINE *e);
532 ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(
const ENGINE *e);
533 ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(
const ENGINE *e);
534 const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e,
int nid);
535 const EVP_MD *ENGINE_get_digest(ENGINE *e,
int nid);
536 const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e,
int nid);
537 const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e,
int nid);
538 const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e,
539 const char *str,
int len);
540 const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe,
541 const char *str,
int len);
543 int ENGINE_get_flags(
const ENGINE *e);
560 int ENGINE_init(ENGINE *e);
564 int ENGINE_finish(ENGINE *e);
569 EVP_PKEY *ENGINE_load_private_key(ENGINE *e,
const char *key_id,
570 UI_METHOD *ui_method,
void *callback_data);
571 EVP_PKEY *ENGINE_load_public_key(ENGINE *e,
const char *key_id,
572 UI_METHOD *ui_method,
void *callback_data);
573 int ENGINE_load_ssl_client_cert(ENGINE *e,
SSL *s,
575 STACK_OF(
X509) **pother,
576 UI_METHOD *ui_method,
void *callback_data);
582 ENGINE *ENGINE_get_default_RSA(
void);
584 ENGINE *ENGINE_get_default_DSA(
void);
585 ENGINE *ENGINE_get_default_ECDH(
void);
586 ENGINE *ENGINE_get_default_ECDSA(
void);
587 ENGINE *ENGINE_get_default_DH(
void);
588 ENGINE *ENGINE_get_default_RAND(
void);
591 ENGINE *ENGINE_get_cipher_engine(
int nid);
592 ENGINE *ENGINE_get_digest_engine(
int nid);
593 ENGINE *ENGINE_get_pkey_meth_engine(
int nid);
594 ENGINE *ENGINE_get_pkey_asn1_meth_engine(
int nid);
600 int ENGINE_set_default_RSA(ENGINE *e);
601 int ENGINE_set_default_string(ENGINE *e,
const char *def_list);
603 int ENGINE_set_default_DSA(ENGINE *e);
604 int ENGINE_set_default_ECDH(ENGINE *e);
605 int ENGINE_set_default_ECDSA(ENGINE *e);
606 int ENGINE_set_default_DH(ENGINE *e);
607 int ENGINE_set_default_RAND(ENGINE *e);
608 int ENGINE_set_default_ciphers(ENGINE *e);
609 int ENGINE_set_default_digests(ENGINE *e);
610 int ENGINE_set_default_pkey_meths(ENGINE *e);
611 int ENGINE_set_default_pkey_asn1_meths(ENGINE *e);
618 int ENGINE_set_default(ENGINE *e,
unsigned int flags);
620 void ENGINE_add_conf_module(
void);
630 #define OSSL_DYNAMIC_VERSION (unsigned long)0x00020000
633 #define OSSL_DYNAMIC_OLDEST (unsigned long)0x00020000
644 typedef void *(*dyn_MEM_malloc_cb)(size_t);
645 typedef void *(*dyn_MEM_realloc_cb)(
void *, size_t);
646 typedef void (*dyn_MEM_free_cb)(
void *);
648 dyn_MEM_malloc_cb malloc_cb;
649 dyn_MEM_realloc_cb realloc_cb;
650 dyn_MEM_free_cb free_cb;
654 typedef void (*dyn_lock_locking_cb)(int,int,
const char *,int);
655 typedef int (*dyn_lock_add_lock_cb)(
int*,int,int,
const char *,int);
656 typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb)(
658 typedef void (*dyn_dynlock_lock_cb)(int,
struct CRYPTO_dynlock_value *,
660 typedef void (*dyn_dynlock_destroy_cb)(
struct CRYPTO_dynlock_value *,
663 dyn_lock_locking_cb lock_locking_cb;
664 dyn_lock_add_lock_cb lock_add_lock_cb;
665 dyn_dynlock_create_cb dynlock_create_cb;
666 dyn_dynlock_lock_cb dynlock_lock_cb;
667 dyn_dynlock_destroy_cb dynlock_destroy_cb;
672 const ERR_FNS *err_fns;
673 const CRYPTO_EX_DATA_IMPL *ex_data_fns;
687 typedef unsigned long (*dynamic_v_check_fn)(
unsigned long ossl_version);
688 #define IMPLEMENT_DYNAMIC_CHECK_FN() \
689 OPENSSL_EXPORT unsigned long v_check(unsigned long v); \
690 OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \
691 if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \
709 typedef int (*dynamic_bind_engine)(ENGINE *e,
const char *id,
711 #define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
713 int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \
715 int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
716 if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \
717 if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \
718 fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \
720 CRYPTO_set_locking_callback(fns->lock_fns.lock_locking_cb); \
721 CRYPTO_set_add_lock_callback(fns->lock_fns.lock_add_lock_cb); \
722 CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \
723 CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \
724 CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \
725 if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \
727 if(!ERR_set_implementation(fns->err_fns)) return 0; \
729 if(!fn(e,id)) return 0; \
741 void *ENGINE_get_static_state(
void);
743 #if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV)
744 void ENGINE_setup_bsd_cryptodev(
void);
751 void ERR_load_ENGINE_strings(
void);
756 #define ENGINE_F_DYNAMIC_CTRL 180
757 #define ENGINE_F_DYNAMIC_GET_DATA_CTX 181
758 #define ENGINE_F_DYNAMIC_LOAD 182
759 #define ENGINE_F_DYNAMIC_SET_DATA_CTX 183
760 #define ENGINE_F_ENGINE_ADD 105
761 #define ENGINE_F_ENGINE_BY_ID 106
762 #define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170
763 #define ENGINE_F_ENGINE_CTRL 142
764 #define ENGINE_F_ENGINE_CTRL_CMD 178
765 #define ENGINE_F_ENGINE_CTRL_CMD_STRING 171
766 #define ENGINE_F_ENGINE_FINISH 107
767 #define ENGINE_F_ENGINE_FREE_UTIL 108
768 #define ENGINE_F_ENGINE_GET_CIPHER 185
769 #define ENGINE_F_ENGINE_GET_DEFAULT_TYPE 177
770 #define ENGINE_F_ENGINE_GET_DIGEST 186
771 #define ENGINE_F_ENGINE_GET_NEXT 115
772 #define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193
773 #define ENGINE_F_ENGINE_GET_PKEY_METH 192
774 #define ENGINE_F_ENGINE_GET_PREV 116
775 #define ENGINE_F_ENGINE_INIT 119
776 #define ENGINE_F_ENGINE_LIST_ADD 120
777 #define ENGINE_F_ENGINE_LIST_REMOVE 121
778 #define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150
779 #define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151
780 #define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194
781 #define ENGINE_F_ENGINE_NEW 122
782 #define ENGINE_F_ENGINE_REMOVE 123
783 #define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189
784 #define ENGINE_F_ENGINE_SET_DEFAULT_TYPE 126
785 #define ENGINE_F_ENGINE_SET_ID 129
786 #define ENGINE_F_ENGINE_SET_NAME 130
787 #define ENGINE_F_ENGINE_TABLE_REGISTER 184
788 #define ENGINE_F_ENGINE_UNLOAD_KEY 152
789 #define ENGINE_F_ENGINE_UNLOCKED_FINISH 191
790 #define ENGINE_F_ENGINE_UP_REF 190
791 #define ENGINE_F_INT_CTRL_HELPER 172
792 #define ENGINE_F_INT_ENGINE_CONFIGURE 188
793 #define ENGINE_F_INT_ENGINE_MODULE_INIT 187
794 #define ENGINE_F_LOG_MESSAGE 141
797 #define ENGINE_R_ALREADY_LOADED 100
798 #define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133
799 #define ENGINE_R_CMD_NOT_EXECUTABLE 134
800 #define ENGINE_R_COMMAND_TAKES_INPUT 135
801 #define ENGINE_R_COMMAND_TAKES_NO_INPUT 136
802 #define ENGINE_R_CONFLICTING_ENGINE_ID 103
803 #define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119
804 #define ENGINE_R_DH_NOT_IMPLEMENTED 139
805 #define ENGINE_R_DSA_NOT_IMPLEMENTED 140
806 #define ENGINE_R_DSO_FAILURE 104
807 #define ENGINE_R_DSO_NOT_FOUND 132
808 #define ENGINE_R_ENGINES_SECTION_ERROR 148
809 #define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102
810 #define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105
811 #define ENGINE_R_ENGINE_SECTION_ERROR 149
812 #define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128
813 #define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129
814 #define ENGINE_R_FINISH_FAILED 106
815 #define ENGINE_R_GET_HANDLE_FAILED 107
816 #define ENGINE_R_ID_OR_NAME_MISSING 108
817 #define ENGINE_R_INIT_FAILED 109
818 #define ENGINE_R_INTERNAL_LIST_ERROR 110
819 #define ENGINE_R_INVALID_ARGUMENT 143
820 #define ENGINE_R_INVALID_CMD_NAME 137
821 #define ENGINE_R_INVALID_CMD_NUMBER 138
822 #define ENGINE_R_INVALID_INIT_VALUE 151
823 #define ENGINE_R_INVALID_STRING 150
824 #define ENGINE_R_NOT_INITIALISED 117
825 #define ENGINE_R_NOT_LOADED 112
826 #define ENGINE_R_NO_CONTROL_FUNCTION 120
827 #define ENGINE_R_NO_INDEX 144
828 #define ENGINE_R_NO_LOAD_FUNCTION 125
829 #define ENGINE_R_NO_REFERENCE 130
830 #define ENGINE_R_NO_SUCH_ENGINE 116
831 #define ENGINE_R_NO_UNLOAD_FUNCTION 126
832 #define ENGINE_R_PROVIDE_PARAMETERS 113
833 #define ENGINE_R_RSA_NOT_IMPLEMENTED 141
834 #define ENGINE_R_UNIMPLEMENTED_CIPHER 146
835 #define ENGINE_R_UNIMPLEMENTED_DIGEST 147
836 #define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101
837 #define ENGINE_R_VERSION_INCOMPATIBILITY 145