diff options
author | Fredrik Thulin <fredrik@thulin.net> | 2012-11-28 22:35:18 +0100 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2012-11-28 22:35:18 +0100 |
commit | e67b8b3bf7559f2f7cc8f4178e3359c391b441be (patch) | |
tree | b3628da88ecd2b4cf537c8355d49b06532a4f2d6 /testsuite/pbkdf2-test.c | |
parent | 1c7d767b4ca224e26b7d7d3875d2d89201accb29 (diff) | |
download | nettle-e67b8b3bf7559f2f7cc8f4178e3359c391b441be.tar.gz |
Add PBKDF2-HMAC-SHA512 test cases.
Diffstat (limited to 'testsuite/pbkdf2-test.c')
-rw-r--r-- | testsuite/pbkdf2-test.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/testsuite/pbkdf2-test.c b/testsuite/pbkdf2-test.c index c0d2eaec..ffb55807 100644 --- a/testsuite/pbkdf2-test.c +++ b/testsuite/pbkdf2-test.c @@ -20,7 +20,7 @@ ASSERT(dk[expect->length] == 17); \ } while (0) -#define MAX_DKLEN 25 +#define MAX_DKLEN SHA512_DIGEST_SIZE void test_main (void) @@ -28,6 +28,7 @@ test_main (void) uint8_t dk[MAX_DKLEN + 1]; struct hmac_sha1_ctx sha1ctx; struct hmac_sha256_ctx sha256ctx; + struct hmac_sha512_ctx sha512ctx; /* Test vectors for PBKDF2 from RFC 6070. */ @@ -78,6 +79,30 @@ test_main (void) SHA256_DIGEST_SIZE, 80000, LDATA("NaCl"), SHEX("4ddcd8f60b98be21830cee5ef22701f9")); + /* PBKDF2-HMAC-SHA-512 test vectors confirmed with another + implementation (python-pbkdf2). + + >>> from pbkdf2 import PBKDF2 + >>> import hmac as HMAC + >>> from hashlib import sha512 as SHA512 + >>> PBKDF2("password", "salt", 50, macmodule=HMAC, digestmodule=SHA512).read(64).encode('hex') + */ + + hmac_sha512_set_key (&sha512ctx, 8, "password"); + PBKDF2_TEST (&sha512ctx, hmac_sha512_update, hmac_sha512_digest, + SHA512_DIGEST_SIZE, 1, LDATA("NaCL"), + SHEX("73decfa58aa2e84f94771a75736bb88bd3c7b38270cfb50cb390ed78b305656af8148e52452b2216b2b8098b761fc6336060a09f76415e9f71ea47f9e9064306")); + + hmac_sha512_set_key (&sha512ctx, 9, "pass\0word"); + PBKDF2_TEST (&sha512ctx, hmac_sha512_update, hmac_sha512_digest, + SHA512_DIGEST_SIZE, 1, LDATA("sa\0lt"), + SHEX("71a0ec842abd5c678bcfd145f09d83522f93361560563c4d0d63b88329871090e76604a49af08fe7c9f57156c8790996b20f06bc535e5ab5440df7e878296fa7")); + + hmac_sha512_set_key (&sha512ctx, 24, "passwordPASSWORDpassword"); + PBKDF2_TEST (&sha512ctx, hmac_sha512_update, hmac_sha512_digest, + SHA512_DIGEST_SIZE, 50, LDATA("salt\0\0\0"), + SHEX("016871a4c4b75f96857fd2b9f8ca28023b30ee2a39f5adcac8c9375f9bda1ccd1b6f0b2fc3adda505412e79d890056c62e524c7d51154b1a8534575bd02dee39")); + /* Test convenience functions. */ PBKDF2_HMAC_TEST(pbkdf2_hmac_sha1, LDATA("password"), 1, LDATA("salt"), |