]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Use rad_digest_cmp() to avoid timing attacks
authorAlan T. DeKok <aland@freeradius.org>
Wed, 23 Feb 2011 10:01:02 +0000 (11:01 +0100)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 23 Feb 2011 10:01:02 +0000 (11:01 +0100)
src/modules/rlm_chap/rlm_chap.c

index 83e47d0c5a1101f0d29f1c2319b369d626f70c19..213a5c6c84a2733d33274b0a28e60aaa4977ff16 100644 (file)
@@ -114,8 +114,8 @@ static int chap_authenticate(void *instance, REQUEST *request)
        rad_chap_encode(request->packet,pass_str,
                        chap->vp_octets[0],passwd_item);
 
-       if (memcmp(pass_str + 1, chap->vp_octets + 1,
-                  CHAP_VALUE_LENGTH) != 0){
+       if (rad_digest_cmp(pass_str + 1, chap->vp_octets + 1,
+                          CHAP_VALUE_LENGTH) != 0) {
                RDEBUG("Password check failed");
                snprintf(module_fmsg, sizeof(module_fmsg),
                         "rlm_chap: Wrong user password");