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]));
|
} while (++i < (sizeof tests) / (sizeof tests[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
static void
|
||||||
main(void)
|
str_tests(void)
|
||||||
{
|
{
|
||||||
char *str_out;
|
char *str_out;
|
||||||
char *str_out2;
|
char *str_out2;
|
||||||
char *salt;
|
char *salt;
|
||||||
const char *passwd = "Correct Horse Battery Staple";
|
const char *passwd = "Correct Horse Battery Staple";
|
||||||
|
|
||||||
tv();
|
|
||||||
tv2();
|
|
||||||
tv3();
|
|
||||||
salt = (char *) sodium_malloc(crypto_pwhash_scryptsalsa208sha256_SALTBYTES);
|
salt = (char *) sodium_malloc(crypto_pwhash_scryptsalsa208sha256_SALTBYTES);
|
||||||
str_out =
|
str_out =
|
||||||
(char *) sodium_malloc(crypto_pwhash_scryptsalsa208sha256_STRBYTES);
|
(char *) sodium_malloc(crypto_pwhash_scryptsalsa208sha256_STRBYTES);
|
||||||
@ -323,6 +320,24 @@ main(void)
|
|||||||
if (strcmp(str_out, str_out2) == 0) {
|
if (strcmp(str_out, str_out2) == 0) {
|
||||||
printf("pwhash_str doesn't generate different salts\n");
|
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,
|
if (crypto_pwhash_scryptsalsa208sha256_str_verify(str_out, passwd,
|
||||||
strlen(passwd)) != 0) {
|
strlen(passwd)) != 0) {
|
||||||
printf("pwhash_str_verify failure\n");
|
printf("pwhash_str_verify failure\n");
|
||||||
@ -339,6 +354,27 @@ main(void)
|
|||||||
str_out[14]--;
|
str_out[14]--;
|
||||||
|
|
||||||
assert(str_out[crypto_pwhash_scryptsalsa208sha256_STRBYTES - 1U] == 0);
|
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_min() > 0U);
|
||||||
assert(crypto_pwhash_scryptsalsa208sha256_bytes_max() >
|
assert(crypto_pwhash_scryptsalsa208sha256_bytes_max() >
|
||||||
crypto_pwhash_scryptsalsa208sha256_bytes_min());
|
crypto_pwhash_scryptsalsa208sha256_bytes_min());
|
||||||
@ -358,10 +394,6 @@ main(void)
|
|||||||
assert(crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive() > 0U);
|
assert(crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive() > 0U);
|
||||||
assert(crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive() > 0U);
|
assert(crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive() > 0U);
|
||||||
|
|
||||||
sodium_free(salt);
|
|
||||||
sodium_free(str_out);
|
|
||||||
sodium_free(str_out2);
|
|
||||||
|
|
||||||
printf("OK\n");
|
printf("OK\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user