diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/ssl_sess.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index ee88be2b88..8391d62212 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c | |||
| @@ -59,6 +59,9 @@ | |||
| 59 | #include <stdio.h> | 59 | #include <stdio.h> |
| 60 | #include <openssl/lhash.h> | 60 | #include <openssl/lhash.h> |
| 61 | #include <openssl/rand.h> | 61 | #include <openssl/rand.h> |
| 62 | #ifndef OPENSSL_NO_ENGINE | ||
| 63 | #include <openssl/engine.h> | ||
| 64 | #endif | ||
| 62 | #include "ssl_locl.h" | 65 | #include "ssl_locl.h" |
| 63 | 66 | ||
| 64 | static void SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s); | 67 | static void SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s); |
| @@ -870,6 +873,25 @@ int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx))(SSL * ssl, X509 ** x509 , EVP_PK | |||
| 870 | return ctx->client_cert_cb; | 873 | return ctx->client_cert_cb; |
| 871 | } | 874 | } |
| 872 | 875 | ||
| 876 | #ifndef OPENSSL_NO_ENGINE | ||
| 877 | int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e) | ||
| 878 | { | ||
| 879 | if (!ENGINE_init(e)) | ||
| 880 | { | ||
| 881 | SSLerr(SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE, ERR_R_ENGINE_LIB); | ||
| 882 | return 0; | ||
| 883 | } | ||
| 884 | if(!ENGINE_get_ssl_client_cert_function(e)) | ||
| 885 | { | ||
| 886 | SSLerr(SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE, SSL_R_NO_CLIENT_CERT_METHOD); | ||
| 887 | ENGINE_finish(e); | ||
| 888 | return 0; | ||
| 889 | } | ||
| 890 | ctx->client_cert_engine = e; | ||
| 891 | return 1; | ||
| 892 | } | ||
| 893 | #endif | ||
| 894 | |||
| 873 | void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, | 895 | void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, |
| 874 | int (*cb)(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)) | 896 | int (*cb)(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)) |
| 875 | { | 897 | { |
