aboutsummaryrefslogtreecommitdiff
path: root/drivers/openssl
diff options
context:
space:
mode:
authorJuan Linietsky2014-05-01 09:53:37 -0300
committerJuan Linietsky2014-05-01 09:53:37 -0300
commit4dc4e96c8a4fb7e34ecae3a39ef0f3f3fb275e97 (patch)
tree73da4d4d6d0fa1b4c6761a63ac3674aead8b12e3 /drivers/openssl
parent5ab65f0eadec6a67eda622787206a01c8af2cf7e (diff)
downloadgodot-4dc4e96c8a4fb7e34ecae3a39ef0f3f3fb275e97.tar.gz
godot-4dc4e96c8a4fb7e34ecae3a39ef0f3f3fb275e97.tar.zst
godot-4dc4e96c8a4fb7e34ecae3a39ef0f3f3fb275e97.zip
-OpenSSL Fixes
Diffstat (limited to 'drivers/openssl')
-rw-r--r--drivers/openssl/register_openssl.cpp16
-rw-r--r--drivers/openssl/register_openssl.h11
-rw-r--r--drivers/openssl/stream_peer_openssl.cpp14
-rw-r--r--drivers/openssl/stream_peer_openssl.h7
4 files changed, 42 insertions, 6 deletions
diff --git a/drivers/openssl/register_openssl.cpp b/drivers/openssl/register_openssl.cpp
new file mode 100644
index 000000000..fe12c5565
--- /dev/null
+++ b/drivers/openssl/register_openssl.cpp
@@ -0,0 +1,16 @@
+#include "register_openssl.h"
+
+#include "stream_peer_openssl.h"
+
+void register_openssl() {
+
+ ObjectTypeDB::register_type<StreamPeerOpenSSL>();
+ StreamPeerOpenSSL::initialize_ssl();
+
+}
+
+void unregister_openssl() {
+
+ StreamPeerOpenSSL::finalize_ssl();
+
+}
diff --git a/drivers/openssl/register_openssl.h b/drivers/openssl/register_openssl.h
new file mode 100644
index 000000000..e1c554ca4
--- /dev/null
+++ b/drivers/openssl/register_openssl.h
@@ -0,0 +1,11 @@
+#ifndef REGISTER_OPENSSL_H
+#define REGISTER_OPENSSL_H
+
+#ifdef OPENSSL_ENABLED
+
+void register_openssl();
+void unregister_openssl();
+
+#endif
+
+#endif // REGISTER_OPENSSL_H
diff --git a/drivers/openssl/stream_peer_openssl.cpp b/drivers/openssl/stream_peer_openssl.cpp
index 2414533df..0751c76e3 100644
--- a/drivers/openssl/stream_peer_openssl.cpp
+++ b/drivers/openssl/stream_peer_openssl.cpp
@@ -1,9 +1,6 @@
-#include "stream_peer_openssl.h"
#ifdef OPENSSL_ENABLED
-#include "globals.h"
-#include "os/file_access.h"
-#include "curl_hostcheck.h"
+#include "stream_peer_openssl.h"
//hostname matching code from curl
@@ -109,6 +106,7 @@ int StreamPeerOpenSSL::_cert_verify_callback(X509_STORE_CTX *x509_ctx, void *arg
bool base_cert_valid = X509_verify_cert(x509_ctx);
if (!base_cert_valid) {
print_line("Cause: "+String(X509_verify_cert_error_string(X509_STORE_CTX_get_error(x509_ctx))));
+ ERR_print_errors_fp(stdout);
}
X509 *server_cert = X509_STORE_CTX_get_current_cert(x509_ctx);
@@ -361,7 +359,11 @@ Error StreamPeerOpenSSL::connect(Ref<StreamPeer> p_base, bool p_validate_certs,
// Same as before, try to connect.
int result = SSL_connect( ssl );
+
print_line("CONNECTION RESULT: "+itos(result));
+ if (result<1) {
+ _print_error(result);
+ }
X509 * peer = SSL_get_peer_certificate(ssl);
@@ -547,8 +549,10 @@ void StreamPeerOpenSSL::initialize_ssl() {
}
BIO_free(mem);
}
- print_line("Loaded certs: "+itos(certs.size()));
+ print_line("Loaded certs from '"+certs_path+"': "+itos(certs.size()));
}
+ String config_path =GLOBAL_DEF("ssl/config","");
+ Globals::get_singleton()->set_custom_property_info("ssl/config",PropertyInfo(Variant::STRING,"ssl/config",PROPERTY_HINT_FILE,"*.cnf"));
}
diff --git a/drivers/openssl/stream_peer_openssl.h b/drivers/openssl/stream_peer_openssl.h
index e487cfde7..a66b641dd 100644
--- a/drivers/openssl/stream_peer_openssl.h
+++ b/drivers/openssl/stream_peer_openssl.h
@@ -3,12 +3,17 @@
#ifdef OPENSSL_ENABLED
+
+#include <stdio.h> // If you don't know what this is for stop reading now.
#include "io/stream_peer_ssl.h"
+#include "globals.h"
+#include "os/file_access.h"
+#include "curl_hostcheck.h"
+
#include <openssl/bio.h> // BIO objects for I/O
#include <openssl/ssl.h> // SSL and SSL_CTX for SSL connections
#include <openssl/err.h> // Error reporting
#include <openssl/x509v3.h>
-#include <stdio.h> // If you don't know what this is for stop reading now.
class StreamPeerOpenSSL : public StreamPeerSSL {
private: