Add tests for scrypt rehash
This commit is contained in:
parent
2a2b85eeea
commit
390f865e35
@ -294,17 +294,14 @@ tv3(void)
|
||||
} while (++i < (sizeof tests) / (sizeof tests[0]));
|
||||
}
|
||||
|
||||
int
|
||||
main(void)
|
||||
static void
|
||||
str_tests(void)
|
||||
{
|
||||
char *str_out;
|
||||
char *str_out2;
|
||||
char *salt;
|
||||
const char *passwd = "Correct Horse Battery Staple";
|
||||
|
||||
tv();
|
||||
tv2();
|
||||
tv3();
|
||||
salt = (char *) sodium_malloc(crypto_pwhash_scryptsalsa208sha256_SALTBYTES);
|
||||
str_out =
|
||||
(char *) sodium_malloc(crypto_pwhash_scryptsalsa208sha256_STRBYTES);
|
||||
@ -323,6 +320,24 @@ main(void)
|
||||
if (strcmp(str_out, str_out2) == 0) {
|
||||
printf("pwhash_str doesn't generate different salts\n");
|
||||
}
|
||||
if (crypto_pwhash_scryptsalsa208sha256_str_needs_rehash
|
||||
(str_out, OPSLIMIT, MEMLIMIT) != 0) {
|
||||
printf("needs_rehash() false positive\n");
|
||||
}
|
||||
if (crypto_pwhash_scryptsalsa208sha256_str_needs_rehash
|
||||
(str_out, OPSLIMIT, MEMLIMIT / 2) != 1 ||
|
||||
crypto_pwhash_scryptsalsa208sha256_str_needs_rehash
|
||||
(str_out, OPSLIMIT / 2, MEMLIMIT) != 1 ||
|
||||
crypto_pwhash_scryptsalsa208sha256_str_needs_rehash
|
||||
(str_out, OPSLIMIT, MEMLIMIT * 2) != 1 ||
|
||||
crypto_pwhash_scryptsalsa208sha256_str_needs_rehash
|
||||
(str_out, OPSLIMIT * 2, MEMLIMIT) != 1) {
|
||||
printf("needs_rehash() false negative\n");
|
||||
}
|
||||
if (crypto_pwhash_scryptsalsa208sha256_str_needs_rehash
|
||||
(str_out + 1, OPSLIMIT, MEMLIMIT) != -1) {
|
||||
printf("needs_rehash() didn't fail with an invalid hash string\n");
|
||||
}
|
||||
if (crypto_pwhash_scryptsalsa208sha256_str_verify(str_out, passwd,
|
||||
strlen(passwd)) != 0) {
|
||||
printf("pwhash_str_verify failure\n");
|
||||
@ -339,6 +354,27 @@ main(void)
|
||||
str_out[14]--;
|
||||
|
||||
assert(str_out[crypto_pwhash_scryptsalsa208sha256_STRBYTES - 1U] == 0);
|
||||
|
||||
assert(crypto_pwhash_scryptsalsa208sha256_str_needs_rehash
|
||||
(str_out, 0, 0) == 1);
|
||||
assert(crypto_pwhash_str_needs_rehash(str_out, 0, 0) == -1);
|
||||
assert(crypto_pwhash_str_needs_rehash(str_out, OPSLIMIT, MEMLIMIT) == -1);
|
||||
assert(crypto_pwhash_scryptsalsa208sha256_str_needs_rehash
|
||||
("", OPSLIMIT, MEMLIMIT) == -1);
|
||||
|
||||
sodium_free(salt);
|
||||
sodium_free(str_out);
|
||||
sodium_free(str_out2);
|
||||
}
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
tv();
|
||||
tv2();
|
||||
tv3();
|
||||
str_tests();
|
||||
|
||||
assert(crypto_pwhash_scryptsalsa208sha256_bytes_min() > 0U);
|
||||
assert(crypto_pwhash_scryptsalsa208sha256_bytes_max() >
|
||||
crypto_pwhash_scryptsalsa208sha256_bytes_min());
|
||||
@ -358,10 +394,6 @@ main(void)
|
||||
assert(crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive() > 0U);
|
||||
assert(crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive() > 0U);
|
||||
|
||||
sodium_free(salt);
|
||||
sodium_free(str_out);
|
||||
sodium_free(str_out2);
|
||||
|
||||
printf("OK\n");
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user