|
@ -1,4 +1,4 @@ |
|
|
/* $OpenBSD: bcrypt.c,v 1.51 2015/01/12 03:20:04 tedu Exp $ */ |
|
|
|
|
|
|
|
|
/* $OpenBSD: bcrypt.c,v 1.52 2015/01/28 23:33:52 tedu Exp $ */ |
|
|
|
|
|
|
|
|
/* |
|
|
/* |
|
|
* Copyright (c) 2014 Ted Unangst <tedu@openbsd.org> |
|
|
* Copyright (c) 2014 Ted Unangst <tedu@openbsd.org> |
|
@ -235,7 +235,7 @@ bcrypt_checkpass(const char *pass, const char *goodhash) |
|
|
|
|
|
|
|
|
/* |
|
|
/* |
|
|
* Measure this system's performance by measuring the time for 8 rounds. |
|
|
* Measure this system's performance by measuring the time for 8 rounds. |
|
|
* We are aiming for something that takes between 0.25 and 0.5 seconds. |
|
|
|
|
|
|
|
|
* We are aiming for something that takes around 0.1s, but not too much over. |
|
|
*/ |
|
|
*/ |
|
|
int |
|
|
int |
|
|
bcrypt_autorounds(void) |
|
|
bcrypt_autorounds(void) |
|
@ -254,12 +254,12 @@ bcrypt_autorounds(void) |
|
|
duration += (after.tv_nsec - before.tv_nsec) / 1000; |
|
|
duration += (after.tv_nsec - before.tv_nsec) / 1000; |
|
|
|
|
|
|
|
|
/* too quick? slow it down. */ |
|
|
/* too quick? slow it down. */ |
|
|
while (r < 16 && duration <= 1000000 / 4) { |
|
|
|
|
|
|
|
|
while (r < 16 && duration <= 60000) { |
|
|
r += 1; |
|
|
r += 1; |
|
|
duration *= 2; |
|
|
duration *= 2; |
|
|
} |
|
|
} |
|
|
/* too slow? speed it up. */ |
|
|
/* too slow? speed it up. */ |
|
|
while (r > 4 && duration > 1000000 / 2) { |
|
|
|
|
|
|
|
|
while (r > 4 && duration > 120000) { |
|
|
r -= 1; |
|
|
r -= 1; |
|
|
duration /= 2; |
|
|
duration /= 2; |
|
|
} |
|
|
} |
|
|