Skip to content

Commit

Permalink
tests: reduce number of iterations in PBKDF2 tests from 100000 to 1000
Browse files Browse the repository at this point in the history
This speeds up tests by about 30%.
  • Loading branch information
flashcode committed Apr 19, 2020
1 parent bfe22fc commit d38701f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 54 deletions.
24 changes: 1 addition & 23 deletions tests/unit/core/test-core-crypto.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,18 +54,11 @@ extern "C"
#define DATA_HASH_SALT "this is a salt of 32 bytes xxxxx"
#define DATA_HASH_PBKDF2_SHA1_1000 "85ce23c8873830df8f0a96aa82ae7d7635dad12" \
"7"
#define DATA_HASH_PBKDF2_SHA1_100000 "f2c2a079007523df3a5a5c7b578073dff06ba" \
"49f"
#define DATA_HASH_PBKDF2_SHA256_1000 "0eb0a795537a8c37a2d7d7e50a076e07c9a8e" \
"e9aa281669381af99fad198997c"
#define DATA_HASH_PBKDF2_SHA256_100000 "b243ef60f9d9e7a6315f874053802cfb3b7" \
"b5a3502d47cf7fd76b3ee5661fcff"
#define DATA_HASH_PBKDF2_SHA512_1000 "03d8e9e86f3bbe20b88a600a5aa15f8cfbee0" \
"a402af301e1714c25467a32489c773c71eddf5aa39f42823ecc54c9e9b015517b5f3c0" \
"19bae9463a2d8fe527882"
#define DATA_HASH_PBKDF2_SHA512_100000 "286cca5521b00a7398530fbf11a570401a8" \
"0c901f1584cb493fcb75c49e5c30613c331ce318b34615a08be2fdcb9a3b4d3e9a5b62" \
"e119db6941010533cdf73d3"

#define TOTP_SECRET "secretpasswordbase32"

Expand Down Expand Up @@ -218,7 +211,7 @@ TEST(CoreCrypto, HashPbkdf2)
WEE_CHECK_HASH_PBKDF2(0, NULL, "test", 4, GCRY_MD_SHA1, "salt", 4, 0);

LONGS_EQUAL (0, weecrypto_hash_pbkdf2 (data, data_size, GCRY_MD_SHA256,
salt, salt_size, 100000,
salt, salt_size, 1000,
NULL, NULL));

/* SHA1 */
Expand All @@ -227,35 +220,20 @@ TEST(CoreCrypto, HashPbkdf2)
GCRY_MD_SHA1,
DATA_HASH_SALT, salt_size,
1000);
WEE_CHECK_HASH_PBKDF2(1, DATA_HASH_PBKDF2_SHA1_100000,
data, data_size,
GCRY_MD_SHA1,
DATA_HASH_SALT, salt_size,
100000);

/* SHA256 */
WEE_CHECK_HASH_PBKDF2(1, DATA_HASH_PBKDF2_SHA256_1000,
data, data_size,
GCRY_MD_SHA256,
DATA_HASH_SALT, salt_size,
1000);
WEE_CHECK_HASH_PBKDF2(1, DATA_HASH_PBKDF2_SHA256_100000,
data, data_size,
GCRY_MD_SHA256,
DATA_HASH_SALT, salt_size,
100000);

/* SHA512 */
WEE_CHECK_HASH_PBKDF2(1, DATA_HASH_PBKDF2_SHA512_1000,
data, data_size,
GCRY_MD_SHA512,
DATA_HASH_SALT, salt_size,
1000);
WEE_CHECK_HASH_PBKDF2(1, DATA_HASH_PBKDF2_SHA512_100000,
data, data_size,
GCRY_MD_SHA512,
DATA_HASH_SALT, salt_size,
100000);
}

/*
Expand Down
62 changes: 31 additions & 31 deletions tests/unit/plugins/relay/test-relay-auth.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,48 +148,48 @@ TEST(RelayAuth, ParsePbkdf2)
POINTERS_EQUAL(NULL, hash_pbkdf2);

/* not enough parameters: 2 (expected: 3) */
WEE_CHECK_PARSE_PBKDF2("41424344:100000");
WEE_CHECK_PARSE_PBKDF2("41424344:1000");
POINTERS_EQUAL(NULL, salt_hexa);
POINTERS_EQUAL(NULL, salt);
LONGS_EQUAL(0, salt_size);
LONGS_EQUAL(0, iterations);
POINTERS_EQUAL(NULL, hash_pbkdf2);

/* good parameters */
WEE_CHECK_PARSE_PBKDF2("41424344:100000:01757d53157ca14a1419e3a8cc1563536"
"520a60b76d2d48e7f9ac09afc945a1c");
WEE_CHECK_PARSE_PBKDF2("41424344:1000:8765936466387f2cfcc47d2617423386684"
"a218d64a57f8213e42b0fe60d8849");
STRCMP_EQUAL("41424344", salt_hexa);
MEMCMP_EQUAL(salt_expected, salt, 4);
LONGS_EQUAL(4, salt_size);
LONGS_EQUAL(100000, iterations);
STRCMP_EQUAL("01757d53157ca14a1419e3a8cc1563536520a60b76d2d48e7f9ac09afc9"
"45a1c",
LONGS_EQUAL(1000, iterations);
STRCMP_EQUAL("8765936466387f2cfcc47d2617423386684a218d64a57f8213e42b0fe60"
"d8849",
hash_pbkdf2);
free (salt_hexa);
free (salt);
free (hash_pbkdf2);

/* wrong salt */
WEE_CHECK_PARSE_PBKDF2("Z:100000:01757d53157ca14a1419e3a8cc1563536520a60b"
"76d2d48e7f9ac09afc945a1c");
WEE_CHECK_PARSE_PBKDF2("Z:1000:8765936466387f2cfcc47d2617423386684a218d64"
"a57f8213e42b0fe60d8849");
POINTERS_EQUAL(NULL, salt_hexa);
POINTERS_EQUAL(NULL, salt);
LONGS_EQUAL(0, salt_size);
LONGS_EQUAL(100000, iterations);
STRCMP_EQUAL("01757d53157ca14a1419e3a8cc1563536520a60b76d2d48e7f9ac09afc9"
"45a1c",
LONGS_EQUAL(1000, iterations);
STRCMP_EQUAL("8765936466387f2cfcc47d2617423386684a218d64a57f8213e42b0fe60"
"d8849",
hash_pbkdf2);
free (hash_pbkdf2);

/* wrong iterations */
WEE_CHECK_PARSE_PBKDF2("41424344:abcd:01757d53157ca14a1419e3a8cc156353652"
"0a60b76d2d48e7f9ac09afc945a1c");
WEE_CHECK_PARSE_PBKDF2("41424344:abcd:8765936466387f2cfcc47d2617423386684"
"a218d64a57f8213e42b0fe60d8849");
STRCMP_EQUAL("41424344", salt_hexa);
MEMCMP_EQUAL(salt_expected, salt, 4);
LONGS_EQUAL(4, salt_size);
LONGS_EQUAL(0, iterations);
STRCMP_EQUAL("01757d53157ca14a1419e3a8cc1563536520a60b76d2d48e7f9ac09afc9"
"45a1c",
STRCMP_EQUAL("8765936466387f2cfcc47d2617423386684a218d64a57f8213e42b0fe60"
"d8849",
hash_pbkdf2);
free (salt_hexa);
free (salt);
Expand Down Expand Up @@ -311,30 +311,30 @@ TEST(RelayAuth, CheckHashPbkdf2)
"sha256", salt, sizeof (salt), 0, NULL, NULL));
LONGS_EQUAL(0,
relay_auth_check_hash_pbkdf2 (
"sha256", salt, sizeof (salt), 100000, NULL, NULL));
"sha256", salt, sizeof (salt), 1000, NULL, NULL));
LONGS_EQUAL(0,
relay_auth_check_hash_pbkdf2 (
"sha256", salt, sizeof (salt), 100000, "", ""));
"sha256", salt, sizeof (salt), 1000, "", ""));

/* PBKDF2 (SHA256): hash is for password "wrong" */
LONGS_EQUAL(0,
relay_auth_check_hash_pbkdf2 (
"sha256",
salt,
sizeof (salt),
100000,
"e8f92a75f5956e9dc3499775221e9ef121bf4d09bdca4391b69aa62c"
"50c2bb6b",
1000,
"59f69895354b82a76d0b3030745c54f961de9da4a80b697b3010d749"
"58f452a1",
"password"));
/* PBKDF2 (SHA256): hash is for password "password" */
LONGS_EQUAL(1,
relay_auth_check_hash_pbkdf2 (
"sha256",
salt,
sizeof (salt),
100000,
"323d29f1762dcb5917bc8320c4eb9ea05900fc28e53cbc3e1b7f0980"
"2e35e2d0",
1000,
"1351b6c26ade0de7dc9422e09a0cd44aae9c1e5e9147ad7e91fb117f"
"2f27852d",
"password"));

/* PBKDF2 (SHA512): hash is for password "wrong" */
Expand All @@ -343,20 +343,20 @@ TEST(RelayAuth, CheckHashPbkdf2)
"sha512",
salt,
sizeof (salt),
100000,
"e682a3815a4d1de8d13a223932b6b0467b7d775111aae3794afb9a84"
"ee62bd50755fde725262f75d1211e8497a35c8dca8a6333bcc9f7b53"
"244f6ff567d25cfc",
1000,
"4a7cd751fe20abaf52a92daeb13e571aed2453425a17258b3fa4a536"
"e8b66228f5f44570347aca462ae280de7951b9e90d2ee3d7c3dd455f"
"678e9ec80768d30e",
"password"));
/* PBKDF2 (SHA512): hash is for password "password" */
LONGS_EQUAL(1,
relay_auth_check_hash_pbkdf2 (
"sha512",
salt,
sizeof (salt),
100000,
"db166999c1f415a40570a4bbd3a26d461f87e495da215c75135b77bf"
"910a261d3749f28264d24b546fc898908d4209704700020b8dd2bca6"
"e4698208dd5aa5f2",
1000,
"7b7eca3ea0c75d9218dc5d31cd7a80f752112dc7de86501973ba8723"
"b635d9b1e461273c3a8ad179cb5285b32f0c5ed0360e37b31713977e"
"f53326c3729ffd12",
"password"));
}

0 comments on commit d38701f

Please sign in to comment.