Documentation
# PBKDF2
# From RFC 6070 - PBKDF2 with HMAC SHA-1
# SHA2 from https://github.com/brycx/Test-Vector-Generation/blob/master/PBKDF2/pbkdf2-hmac-sha2-test-vectors.md

# Test Case 1
Hash = SHA224
Plen = 8
Slen = 4
P = "password"
S = "salt"
c = 1
dkLen = 20
DK = 3c198cbdb9464b7857966bd05b7bc92bc1cc4e6e

# Test Case 2
Hash = SHA224
Plen = 8
Slen = 4
P = "password"
S = "salt"
c = 2
dkLen = 20
DK = 93200ffa96c5776d38fa10abdf8f5bfc0054b971

# Test Case 3
Hash = SHA224
Plen = 8
Slen = 4
P = "password"
S = "salt"
c = 4096
dkLen = 20
DK = 218c453bf90635bd0a21a75d172703ff6108ef60

# Test Case 4
Hash = SHA224
Plen = 8
Slen = 4
P = "password"
S = "salt"
c = 16777216
dkLen = 20
DK = b49925184cb4b559f365e94fcafcd4cdb9f7aef4

# Test Case 5
Hash = SHA224
Plen = 24
Slen = 36
P = "passwordPASSWORDpassword"
S = "saltSALTsaltSALTsaltSALTsaltSALTsalt"
c = 4096
dkLen = 25
DK = 056c4ba438ded91fc14e0594e6f52b87e1f3690c0dc0fbc057

# Test Case 6
Hash = SHA224
Plen = 9
Slen = 5
P = "pass\0word"
S = "sa\0lt"
c = 4096
dkLen = 16
DK = 9b4011b641f40a2a500a31d4a392d15c

# Test Case 7
Hash = SHA224
Plen = 6
Slen = 4
P = "passwd"
S = "salt"
c = 1
dkLen = 128
DK = e55bd77cfc18b012ac6362e22d7cdf77c4b03879a6af51fbf0045bc32a03e7f0d829d26b765bff0ca5873e07a8e85804ff4a17683ed706130d51657456bc0ebd07c35ca0675b3113ad9c33fe48a5eb9e9dc6c6a8cf5cf6de1318b414dbe667bfaeb863ef8399ff4a732520dab4ba82336513a25077ddfc11fc618c11efaf04ae

# Test Case 8
Hash = SHA224
Plen = 6
Slen = 4
P = "Password"
S = "NaCl"
c = 80000
dkLen = 128
DK = bebbdf809d53fc84531d0abe06679a8c8526fde47b47245634186908335857334a7578543f9241726d845ee8e575105e4a733b5dcaefa7560af3d028eccf95937535918dbaa84269fc0586711e7a5b9dc0d4c28fc7a89469db7ff5829b8fc1ef709d7ef95c6c7db24cece88f7c1408c8e7cee55c84db0eebb8d8e41
# Test Case 9
Hash = SHA224
Plen = 6
Slen = 4
P = "Password"
S = "sa\0lt"
c = 4096
dkLen = 256
DK = a329a360c825e12e454ad8633a842a06ba1456907770779d1fa4e0b61a5b1c6ce02e71de74ae433bbf14b907690d008d0cab5b01c976c1e627b027a9a809fd001082c809650344ecfcdebdf0d64b92cb1e869bf91b75517ea36918127b1eccc4cac145fb965071292a6dfa388d8ad893d2541f83a0dac1c55d2d90709963b066de985e92974e87b7d8c0e8026d96684bb0425203919b4792962b065e2b2b815ba888b8428ae51f57a74f637a658e27cf5fbc5593e85f775a1f81660850a723e2eb565f30dfc2cf2973ad57ec95b89c0979c7bab81c11d8987540a32badb2f7bbe4ff21a4f0d91dbd911b88ddd928603fd27b0ede994ee99edd2c04667b82067f