X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fprotocol_key.c;h=2a0f2301d98babf2632ffa9d76f8ce8b75a97c55;hb=4124b9682f8f890acb25d0c92f2583eef670274a;hp=06ce733df77c21129c473d100db354bf5a7c450a;hpb=5a132550deb58473285e5f91705d286aef47be71;p=tinc diff --git a/src/protocol_key.c b/src/protocol_key.c index 06ce733d..2a0f2301 100644 --- a/src/protocol_key.c +++ b/src/protocol_key.c @@ -146,8 +146,7 @@ bool send_ans_key(node_t *to) { cp(); cipher_open_by_nid(&to->incipher, cipher_get_nid(&myself->incipher)); - digest_open_by_nid(&to->indigest, digest_get_nid(&myself->indigest)); - to->inmaclength = myself->inmaclength; + digest_open_by_nid(&to->indigest, digest_get_nid(&myself->indigest), digest_length(&myself->indigest)); to->incompression = myself->incompression; randomize(key, keylen); @@ -164,7 +163,8 @@ bool send_ans_key(node_t *to) { return send_request(to->nexthop->connection, "%d %s %s %s %d %d %d %d", ANS_KEY, myself->name, to->name, key, cipher_get_nid(&to->incipher), - digest_get_nid(&to->indigest), to->inmaclength, + digest_get_nid(&to->indigest), + digest_length(&to->indigest), to->incompression); } @@ -228,14 +228,12 @@ bool ans_key_h(connection_t *c, char *request) { return false; } - from->outmaclength = maclength; - - if(!digest_open_by_nid(&from->outdigest, digest)) { + if(!digest_open_by_nid(&from->outdigest, digest, maclength)) { logger(LOG_ERR, _("Node %s (%s) uses unknown digest!"), from->name, from->hostname); return false; } - if(from->outmaclength > digest_length(&from->outdigest) || from->outmaclength < 0) { + if(maclength != digest_length(&from->outdigest)) { logger(LOG_ERR, _("Node %s (%s) uses bogus MAC length!"), from->name, from->hostname); return false; }