]> WPIA git - gigi.git/commitdiff
Prevent timing attacks against hash check.
authorFelix Dörre <felix@dogcraft.de>
Tue, 15 Jul 2014 22:18:14 +0000 (00:18 +0200)
committerFelix Dörre <felix@dogcraft.de>
Tue, 15 Jul 2014 22:18:31 +0000 (00:18 +0200)
src/org/cacert/gigi/util/PasswordHash.java

index edc1ad53a927782018c31e883be15a847192a243..71f7547979c9ae06c5a83ca2530fd0d9ca4763be 100644 (file)
@@ -6,7 +6,14 @@ import java.security.NoSuchAlgorithmException;
 public class PasswordHash {
        public static boolean verifyHash(String password, String hash) {
                String newhash = sha1(password);
-               return newhash.equals(hash);
+               boolean match = true;
+               if (newhash.length() != hash.length()) {
+                       match = false;
+               }
+               for (int i = 0; i < newhash.length(); i++) {
+                       match &= newhash.charAt(i) == hash.charAt(i);
+               }
+               return match;
        }
 
        private static String sha1(String password) {