comparison packet.c @ 817:a625f9e135a4

Constant time memcmp for the hmac and password crypt
author Matt Johnston <matt@ucc.asn.au>
date Thu, 03 Oct 2013 22:25:30 +0800
parents 0bf76f54de6f
children c19acba28590
comparison
equal deleted inserted replaced
816:84e4259dae3e 817:a625f9e135a4
374 buf_setpos(ses.readbuf, 0); 374 buf_setpos(ses.readbuf, 0);
375 make_mac(ses.recvseq, &ses.keys->recv, ses.readbuf, contents_len, mac_bytes); 375 make_mac(ses.recvseq, &ses.keys->recv, ses.readbuf, contents_len, mac_bytes);
376 376
377 /* compare the hash */ 377 /* compare the hash */
378 buf_setpos(ses.readbuf, contents_len); 378 buf_setpos(ses.readbuf, contents_len);
379 if (memcmp(mac_bytes, buf_getptr(ses.readbuf, mac_size), mac_size) != 0) { 379 if (constant_time_memcmp(mac_bytes, buf_getptr(ses.readbuf, mac_size), mac_size) != 0) {
380 return DROPBEAR_FAILURE; 380 return DROPBEAR_FAILURE;
381 } else { 381 } else {
382 return DROPBEAR_SUCCESS; 382 return DROPBEAR_SUCCESS;
383 } 383 }
384 } 384 }