| Index: openssl/crypto/engine/engine.h
|
| ===================================================================
|
| --- openssl/crypto/engine/engine.h (revision 105093)
|
| +++ openssl/crypto/engine/engine.h (working copy)
|
| @@ -88,16 +88,15 @@
|
| #include <openssl/ecdsa.h>
|
| #endif
|
| #include <openssl/rand.h>
|
| -#include <openssl/store.h>
|
| #include <openssl/ui.h>
|
| #include <openssl/err.h>
|
| #endif
|
|
|
| -#include <openssl/x509.h>
|
| -
|
| #include <openssl/ossl_typ.h>
|
| #include <openssl/symhacks.h>
|
|
|
| +#include <openssl/x509.h>
|
| +
|
| #ifdef __cplusplus
|
| extern "C" {
|
| #endif
|
| @@ -113,6 +112,8 @@
|
| #define ENGINE_METHOD_CIPHERS (unsigned int)0x0040
|
| #define ENGINE_METHOD_DIGESTS (unsigned int)0x0080
|
| #define ENGINE_METHOD_STORE (unsigned int)0x0100
|
| +#define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200
|
| +#define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400
|
| /* Obvious all-or-nothing cases. */
|
| #define ENGINE_METHOD_ALL (unsigned int)0xFFFF
|
| #define ENGINE_METHOD_NONE (unsigned int)0x0000
|
| @@ -297,7 +298,8 @@
|
| * parameter is non-NULL it is set to the size of the returned array. */
|
| typedef int (*ENGINE_CIPHERS_PTR)(ENGINE *, const EVP_CIPHER **, const int **, int);
|
| typedef int (*ENGINE_DIGESTS_PTR)(ENGINE *, const EVP_MD **, const int **, int);
|
| -
|
| +typedef int (*ENGINE_PKEY_METHS_PTR)(ENGINE *, EVP_PKEY_METHOD **, const int **, int);
|
| +typedef int (*ENGINE_PKEY_ASN1_METHS_PTR)(ENGINE *, EVP_PKEY_ASN1_METHOD **, const int **, int);
|
| /* STRUCTURE functions ... all of these functions deal with pointers to ENGINE
|
| * structures where the pointers have a "structural reference". This means that
|
| * their reference is to allowed access to the structure but it does not imply
|
| @@ -329,21 +331,20 @@
|
| void ENGINE_load_atalla(void);
|
| void ENGINE_load_chil(void);
|
| void ENGINE_load_cswift(void);
|
| -#ifndef OPENSSL_NO_GMP
|
| -void ENGINE_load_gmp(void);
|
| -#endif
|
| void ENGINE_load_nuron(void);
|
| void ENGINE_load_sureware(void);
|
| void ENGINE_load_ubsec(void);
|
| -#endif
|
| -void ENGINE_load_cryptodev(void);
|
| void ENGINE_load_padlock(void);
|
| -void ENGINE_load_builtin_engines(void);
|
| -#ifdef OPENSSL_SYS_WIN32
|
| -#ifndef OPENSSL_NO_CAPIENG
|
| void ENGINE_load_capi(void);
|
| +#ifndef OPENSSL_NO_GMP
|
| +void ENGINE_load_gmp(void);
|
| #endif
|
| +#ifndef OPENSSL_NO_GOST
|
| +void ENGINE_load_gost(void);
|
| #endif
|
| +#endif
|
| +void ENGINE_load_cryptodev(void);
|
| +void ENGINE_load_builtin_engines(void);
|
|
|
| /* Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation
|
| * "registry" handling. */
|
| @@ -394,6 +395,14 @@
|
| void ENGINE_unregister_digests(ENGINE *e);
|
| void ENGINE_register_all_digests(void);
|
|
|
| +int ENGINE_register_pkey_meths(ENGINE *e);
|
| +void ENGINE_unregister_pkey_meths(ENGINE *e);
|
| +void ENGINE_register_all_pkey_meths(void);
|
| +
|
| +int ENGINE_register_pkey_asn1_meths(ENGINE *e);
|
| +void ENGINE_unregister_pkey_asn1_meths(ENGINE *e);
|
| +void ENGINE_register_all_pkey_asn1_meths(void);
|
| +
|
| /* These functions register all support from the above categories. Note, use of
|
| * these functions can result in static linkage of code your application may not
|
| * need. If you only need a subset of functionality, consider using more
|
| @@ -473,6 +482,8 @@
|
| ENGINE_SSL_CLIENT_CERT_PTR loadssl_f);
|
| int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f);
|
| int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f);
|
| +int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f);
|
| +int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f);
|
| int ENGINE_set_flags(ENGINE *e, int flags);
|
| int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns);
|
| /* These functions allow control over any per-structure ENGINE data. */
|
| @@ -509,8 +520,16 @@
|
| ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE *e);
|
| ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e);
|
| ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e);
|
| +ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e);
|
| +ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e);
|
| const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid);
|
| const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid);
|
| +const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid);
|
| +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid);
|
| +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e,
|
| + const char *str, int len);
|
| +const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe,
|
| + const char *str, int len);
|
| const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e);
|
| int ENGINE_get_flags(const ENGINE *e);
|
|
|
| @@ -562,6 +581,8 @@
|
| * ciphering or digesting corresponding to "nid". */
|
| ENGINE *ENGINE_get_cipher_engine(int nid);
|
| ENGINE *ENGINE_get_digest_engine(int nid);
|
| +ENGINE *ENGINE_get_pkey_meth_engine(int nid);
|
| +ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid);
|
|
|
| /* This sets a new default ENGINE structure for performing RSA
|
| * operations. If the result is non-zero (success) then the ENGINE
|
| @@ -577,6 +598,8 @@
|
| int ENGINE_set_default_RAND(ENGINE *e);
|
| int ENGINE_set_default_ciphers(ENGINE *e);
|
| int ENGINE_set_default_digests(ENGINE *e);
|
| +int ENGINE_set_default_pkey_meths(ENGINE *e);
|
| +int ENGINE_set_default_pkey_asn1_meths(ENGINE *e);
|
|
|
| /* The combination "set" - the flags are bitwise "OR"d from the
|
| * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()"
|
| @@ -654,6 +677,7 @@
|
| * can be fully instantiated with IMPLEMENT_DYNAMIC_CHECK_FN(). */
|
| typedef unsigned long (*dynamic_v_check_fn)(unsigned long ossl_version);
|
| #define IMPLEMENT_DYNAMIC_CHECK_FN() \
|
| + OPENSSL_EXPORT unsigned long v_check(unsigned long v); \
|
| OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \
|
| if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \
|
| return 0; }
|
| @@ -677,6 +701,8 @@
|
| const dynamic_fns *fns);
|
| #define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
|
| OPENSSL_EXPORT \
|
| + int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \
|
| + OPENSSL_EXPORT \
|
| int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
|
| if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \
|
| if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \
|
| @@ -705,7 +731,7 @@
|
| * values. */
|
| void *ENGINE_get_static_state(void);
|
|
|
| -#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
| +#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV)
|
| void ENGINE_setup_bsd_cryptodev(void);
|
| #endif
|
|
|
| @@ -734,13 +760,15 @@
|
| #define ENGINE_F_ENGINE_GET_DEFAULT_TYPE 177
|
| #define ENGINE_F_ENGINE_GET_DIGEST 186
|
| #define ENGINE_F_ENGINE_GET_NEXT 115
|
| +#define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193
|
| +#define ENGINE_F_ENGINE_GET_PKEY_METH 192
|
| #define ENGINE_F_ENGINE_GET_PREV 116
|
| #define ENGINE_F_ENGINE_INIT 119
|
| #define ENGINE_F_ENGINE_LIST_ADD 120
|
| #define ENGINE_F_ENGINE_LIST_REMOVE 121
|
| #define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150
|
| #define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151
|
| -#define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 192
|
| +#define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194
|
| #define ENGINE_F_ENGINE_NEW 122
|
| #define ENGINE_F_ENGINE_REMOVE 123
|
| #define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189
|
| @@ -769,7 +797,7 @@
|
| #define ENGINE_R_DSO_FAILURE 104
|
| #define ENGINE_R_DSO_NOT_FOUND 132
|
| #define ENGINE_R_ENGINES_SECTION_ERROR 148
|
| -#define ENGINE_R_ENGINE_CONFIGURATION_ERROR 101
|
| +#define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102
|
| #define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105
|
| #define ENGINE_R_ENGINE_SECTION_ERROR 149
|
| #define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128
|
| @@ -796,6 +824,7 @@
|
| #define ENGINE_R_RSA_NOT_IMPLEMENTED 141
|
| #define ENGINE_R_UNIMPLEMENTED_CIPHER 146
|
| #define ENGINE_R_UNIMPLEMENTED_DIGEST 147
|
| +#define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101
|
| #define ENGINE_R_VERSION_INCOMPATIBILITY 145
|
|
|
| #ifdef __cplusplus
|
|
|