X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol_key.c;h=f0c9bcc35f9cdfd9dcdfe41740319c3c7febd0fd;hp=421e2a30c52818dda4387febb3f8d51e00a578d4;hb=0e59fb022c6c015a5be7ed70e0378cb011be98b5;hpb=5cb147135184e3748c6f5e6e6203d22ab9f904f8 diff --git a/src/protocol_key.c b/src/protocol_key.c index 421e2a30..f0c9bcc3 100644 --- a/src/protocol_key.c +++ b/src/protocol_key.c @@ -17,11 +17,14 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: protocol_key.c,v 1.1.4.21 2003/07/23 22:17:31 guus Exp $ + $Id: protocol_key.c,v 1.1.4.23 2003/10/11 12:16:13 guus Exp $ */ #include "system.h" +#include +#include + #include "avl_tree.h" #include "connection.h" #include "logger.h" @@ -34,7 +37,7 @@ bool mykeyused = false; -bool send_key_changed(connection_t *c, node_t *n) +bool send_key_changed(connection_t *c, const node_t *n) { cp(); @@ -82,7 +85,7 @@ bool key_changed_h(connection_t *c) return true; } -bool send_req_key(connection_t *c, node_t *from, node_t *to) +bool send_req_key(connection_t *c, const node_t *from, const node_t *to) { cp(); @@ -133,7 +136,7 @@ bool req_key_h(connection_t *c) return true; } -bool send_ans_key(connection_t *c, node_t *from, node_t *to) +bool send_ans_key(connection_t *c, const node_t *from, const node_t *to) { char key[MAX_STRING_SIZE]; @@ -251,7 +254,12 @@ bool ans_key_h(connection_t *c) from->compression = compression; if(from->cipher) - EVP_EncryptInit_ex(&from->packet_ctx, from->cipher, NULL, from->key, from->key + from->cipher->key_len); + if(!EVP_EncryptInit_ex(&from->packet_ctx, from->cipher, NULL, from->key, from->key + from->cipher->key_len)) { + logger(LOG_ERR, _("Error during initialisation of key from %s (%s): %s"), + from->name, from->hostname, ERR_error_string(ERR_get_error(), NULL)); + return false; + } + flush_queue(from);