1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-25 12:26:40 +02:00

Added certificate management in SSL (connection now ok with SSL server)

This commit is contained in:
Sebastien Helleu
2005-06-21 08:05:58 +00:00
parent abe7e08147
commit f4abd0bf59
10 changed files with 24 additions and 26 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2005-06-20
ChangeLog - 2005-06-21
Version 0.1.3 (under dev!):
* kill command now received and displayed
* SSL support (currently in development, NOT WORKING!)
* added SSL support
* channel notify levels are saved in config file (new option
"server_notify_levels" for server sections)
* part message now accepts %v (replaced by WeeChat version), like quit message
+4 -3
View File
@@ -75,7 +75,7 @@ char *local_charset = NULL; /* local charset, for example: ISO-8859-1 */
int server_cmd_line; /* at least one server on WeeChat command line */
gnutls_anon_client_credentials gnutls_anoncred; /* gnutls client credentials */
gnutls_certificate_credentials gnutls_xcred; /* gnutls client credentials */
/*
@@ -522,7 +522,8 @@ wee_init_vars ()
/* init gnutls */
gnutls_global_init ();
gnutls_anon_allocate_client_credentials (&gnutls_anoncred);
gnutls_certificate_allocate_credentials (&gnutls_xcred);
gnutls_certificate_set_x509_trust_file (gnutls_xcred, "ca.pem", GNUTLS_X509_FMT_PEM);
}
/*
@@ -616,7 +617,7 @@ wee_shutdown (int return_code)
if (local_charset)
free (local_charset);
alias_free_all ();
gnutls_anon_free_client_credentials (gnutls_anoncred);
gnutls_certificate_free_credentials (gnutls_xcred);
gnutls_global_deinit();
exit (return_code);
}
+1 -1
View File
@@ -108,7 +108,7 @@
extern int quit_weechat;
extern char *weechat_home;
extern char *local_charset;
extern gnutls_anon_client_credentials gnutls_anoncred;
extern gnutls_certificate_credentials gnutls_xcred;
extern void wee_log_printf (char *, ...);
extern void wee_dump (int);
+3 -5
View File
@@ -878,8 +878,7 @@ server_connect (t_irc_server *server)
{
int child_pipe[2], set;
pid_t pid;
const int proto_prio[] = { GNUTLS_TLS1, GNUTLS_SSL3, 0 };
const int kx_prio[] = { GNUTLS_KX_ANON_DH, 0 };
const int cert_type_prio[] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
irc_display_prefix (server->buffer, PREFIX_INFO);
gui_printf (server->buffer,
@@ -904,9 +903,8 @@ server_connect (t_irc_server *server)
return 0;
}
gnutls_set_default_priority (server->gnutls_sess);
gnutls_protocol_set_priority (server->gnutls_sess, proto_prio);
gnutls_kx_set_priority (server->gnutls_sess, kx_prio);
gnutls_credentials_set (server->gnutls_sess, GNUTLS_CRD_ANON, &gnutls_anoncred);
gnutls_certificate_type_set_priority (server->gnutls_sess, cert_type_prio);
gnutls_credentials_set (server->gnutls_sess, GNUTLS_CRD_CERTIFICATE, gnutls_xcred);
}
/* create pipe for child process */
+2 -2
View File
@@ -145,9 +145,9 @@ struct t_irc_server
char *nick3; /* 2nd alternate nickname */
char *username; /* user name */
char *realname; /* real name */
char *command; /* command to run once connected */
char *command; /* command to run once connected */
int command_delay; /* delay after execution of command */
char *autojoin; /* channels to automatically join */
char *autojoin; /* channels to automatically join */
int autorejoin; /* auto rejoin channels when kicked */
char *notify_levels; /* channels notify levels */
+2 -2
View File
@@ -1,12 +1,12 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
ChangeLog - 2005-06-20
ChangeLog - 2005-06-21
Version 0.1.3 (under dev!):
* kill command now received and displayed
* SSL support (currently in development, NOT WORKING!)
* added SSL support
* channel notify levels are saved in config file (new option
"server_notify_levels" for server sections)
* part message now accepts %v (replaced by WeeChat version), like quit message
+4 -3
View File
@@ -75,7 +75,7 @@ char *local_charset = NULL; /* local charset, for example: ISO-8859-1 */
int server_cmd_line; /* at least one server on WeeChat command line */
gnutls_anon_client_credentials gnutls_anoncred; /* gnutls client credentials */
gnutls_certificate_credentials gnutls_xcred; /* gnutls client credentials */
/*
@@ -522,7 +522,8 @@ wee_init_vars ()
/* init gnutls */
gnutls_global_init ();
gnutls_anon_allocate_client_credentials (&gnutls_anoncred);
gnutls_certificate_allocate_credentials (&gnutls_xcred);
gnutls_certificate_set_x509_trust_file (gnutls_xcred, "ca.pem", GNUTLS_X509_FMT_PEM);
}
/*
@@ -616,7 +617,7 @@ wee_shutdown (int return_code)
if (local_charset)
free (local_charset);
alias_free_all ();
gnutls_anon_free_client_credentials (gnutls_anoncred);
gnutls_certificate_free_credentials (gnutls_xcred);
gnutls_global_deinit();
exit (return_code);
}
+1 -1
View File
@@ -108,7 +108,7 @@
extern int quit_weechat;
extern char *weechat_home;
extern char *local_charset;
extern gnutls_anon_client_credentials gnutls_anoncred;
extern gnutls_certificate_credentials gnutls_xcred;
extern void wee_log_printf (char *, ...);
extern void wee_dump (int);
+3 -5
View File
@@ -878,8 +878,7 @@ server_connect (t_irc_server *server)
{
int child_pipe[2], set;
pid_t pid;
const int proto_prio[] = { GNUTLS_TLS1, GNUTLS_SSL3, 0 };
const int kx_prio[] = { GNUTLS_KX_ANON_DH, 0 };
const int cert_type_prio[] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
irc_display_prefix (server->buffer, PREFIX_INFO);
gui_printf (server->buffer,
@@ -904,9 +903,8 @@ server_connect (t_irc_server *server)
return 0;
}
gnutls_set_default_priority (server->gnutls_sess);
gnutls_protocol_set_priority (server->gnutls_sess, proto_prio);
gnutls_kx_set_priority (server->gnutls_sess, kx_prio);
gnutls_credentials_set (server->gnutls_sess, GNUTLS_CRD_ANON, &gnutls_anoncred);
gnutls_certificate_type_set_priority (server->gnutls_sess, cert_type_prio);
gnutls_credentials_set (server->gnutls_sess, GNUTLS_CRD_CERTIFICATE, gnutls_xcred);
}
/* create pipe for child process */
+2 -2
View File
@@ -145,9 +145,9 @@ struct t_irc_server
char *nick3; /* 2nd alternate nickname */
char *username; /* user name */
char *realname; /* real name */
char *command; /* command to run once connected */
char *command; /* command to run once connected */
int command_delay; /* delay after execution of command */
char *autojoin; /* channels to automatically join */
char *autojoin; /* channels to automatically join */
int autorejoin; /* auto rejoin channels when kicked */
char *notify_levels; /* channels notify levels */