59 lines
2.1 KiB
Diff
59 lines
2.1 KiB
Diff
|
diff -ruNp elinks-0.12pre3.orig/src/network/ssl/ssl.c elinks-0.12pre3/src/network/ssl/ssl.c
|
||
|
--- elinks-0.12pre3.orig/src/network/ssl/ssl.c 2009-04-28 13:12:19.365660000 +0200
|
||
|
+++ elinks-0.12pre3/src/network/ssl/ssl.c 2009-04-28 13:26:39.287600358 +0200
|
||
|
@@ -48,10 +48,16 @@ SSL_CTX *context = NULL;
|
||
|
static void
|
||
|
init_openssl(struct module *module)
|
||
|
{
|
||
|
+ unsigned char *ca_file;
|
||
|
SSLeay_add_ssl_algorithms();
|
||
|
context = SSL_CTX_new(SSLv23_client_method());
|
||
|
SSL_CTX_set_options(context, SSL_OP_ALL);
|
||
|
+#ifdef CONFIG_NSS_COMPAT_OSSL
|
||
|
+ ca_file = get_opt_str("connection.ssl.trusted_ca_file");
|
||
|
+ SSL_CTX_load_verify_locations(context, ca_file, NULL);
|
||
|
+#else
|
||
|
SSL_CTX_set_default_verify_paths(context);
|
||
|
+#endif
|
||
|
}
|
||
|
|
||
|
static void
|
||
|
@@ -61,10 +67,27 @@ done_openssl(struct module *module)
|
||
|
}
|
||
|
|
||
|
static struct option_info openssl_options[] = {
|
||
|
+#ifdef CONFIG_NSS_COMPAT_OSSL
|
||
|
+ INIT_OPT_BOOL("connection.ssl", N_("Verify certificates"),
|
||
|
+ "cert_verify", 0, 0,
|
||
|
+ N_("Verify the peer's SSL certificate.")),
|
||
|
+
|
||
|
+ INIT_OPT_STRING("connection.ssl", N_("Trusted CA file"),
|
||
|
+ "trusted_ca_file", 0, "/etc/pki/tls/certs/ca-bundle.crt",
|
||
|
+ N_("The location of a file containing certificates of "
|
||
|
+ "trusted certification authorities in PEM format. "
|
||
|
+ "ELinks then trusts certificates issued by these CAs.\n"
|
||
|
+ "\n"
|
||
|
+ "If you change this option or the file, you must "
|
||
|
+ "restart ELinks for the changes to take effect. "
|
||
|
+ "This option affects GnuTLS and nss_compat_ossl but not "
|
||
|
+ "OpenSSL.")),
|
||
|
+#else
|
||
|
INIT_OPT_BOOL("connection.ssl", N_("Verify certificates"),
|
||
|
"cert_verify", 0, 0,
|
||
|
N_("Verify the peer's SSL certificate. Note that this "
|
||
|
"needs extensive configuration of OpenSSL by the user.")),
|
||
|
+#endif
|
||
|
|
||
|
INIT_OPT_TREE("connection.ssl", N_("Client Certificates"),
|
||
|
"client_cert", OPT_SORT,
|
||
|
@@ -187,7 +210,8 @@ static struct option_info gnutls_options
|
||
|
"\n"
|
||
|
"If you change this option or the file, you must "
|
||
|
"restart ELinks for the changes to take effect. "
|
||
|
- "This option affects GnuTLS but not OpenSSL.")),
|
||
|
+ "This option affects GnuTLS and nss_compat_ossl but not "
|
||
|
+ "OpenSSL.")),
|
||
|
|
||
|
NULL_OPTION_INFO,
|
||
|
};
|