X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=a4e3b24fb7791a01b8ad4534e9da686b57f515d7;hb=214060ef20499332b0369030b664a8e239518661;hp=7940ab8064976ef6ba15cc628c12f52064356ed4;hpb=7b949262c4c01fdeff30a612d43f4b64f1ad426f;p=meshlink diff --git a/src/protocol_auth.c b/src/protocol_auth.c index 7940ab80..a4e3b24f 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -273,7 +273,8 @@ bool send_metakey(connection_t *c) { key[0] &= 0x7F; - cipher_set_key_from_rsa(c->outcipher, key, len, true); + if(!cipher_set_key_from_rsa(c->outcipher, key, len, true)) + return false; if(debug_level >= DEBUG_SCARY_THINGS) { bin2hex(key, hexkey, len); @@ -403,11 +404,10 @@ bool challenge_h(connection_t *c, const char *request) { return false; } - c->allow_request = CHAL_REPLY; - /* Calculate the hash from the challenge we received */ - digest_create(c->indigest, buffer, len, digest); + if(!digest_create(c->indigest, buffer, len, digest)) + return false; /* Convert the hash to a hexadecimal formatted string */ @@ -415,6 +415,8 @@ bool challenge_h(connection_t *c, const char *request) { /* Send the reply */ + c->allow_request = CHAL_REPLY; + return send_request(c, "%d %s", CHAL_REPLY, buffer); }