X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fsptps.c;h=5d0d456297367b687aca430c02b72f91c6d71e66;hb=214060ef20499332b0369030b664a8e239518661;hp=1699b97f2758d00f6444c40d223de0e0afc1bbf3;hpb=7b949262c4c01fdeff30a612d43f4b64f1ad426f;p=meshlink diff --git a/src/sptps.c b/src/sptps.c index 1699b97f..5d0d4562 100644 --- a/src/sptps.c +++ b/src/sptps.c @@ -98,7 +98,9 @@ static bool send_record_priv_datagram(sptps_t *s, uint8_t type, const char *data if(s->outstate) { // If first handshake has finished, encrypt and HMAC - cipher_set_counter(s->outcipher, &seqno, sizeof seqno); + if(!cipher_set_counter(s->outcipher, &seqno, sizeof seqno)) + return false; + if(!cipher_counter_xor(s->outcipher, buffer + 6, len + 1UL, buffer + 6)) return false; @@ -490,7 +492,8 @@ static bool sptps_receive_data_datagram(sptps_t *s, const char *data, size_t len // Decrypt. memcpy(&seqno, buffer + 2, 4); - cipher_set_counter(s->incipher, &seqno, sizeof seqno); + if(!cipher_set_counter(s->incipher, &seqno, sizeof seqno)) + return false; if(!cipher_counter_xor(s->incipher, buffer + 6, len - 4, buffer + 6)) return false;