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 = SHA512
Plen = 8
Slen = 4
P = "password"
S = "salt"
c = 1
dkLen = 20
DK = 867f70cf1ade02cff3752599a3a53dc4af34c7a6

# Test Case 2
Hash = SHA512
Plen = 8
Slen = 4
P = "password"
S = "salt"
c = 2
dkLen = 20
DK = e1d9c16aa681708a45f5c7c4e215ceb66e011a2e

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

# Test Case 4
Hash = SHA512
Plen = 8
Slen = 4
P = "password"
S = "salt"
c = 16777216
dkLen = 20
DK = 6180a3ceabab45cc3964112c811e0131bca93a35

# Test Case 5
Hash = SHA512
Plen = 24
Slen = 36
P = "passwordPASSWORDpassword"
S = "saltSALTsaltSALTsaltSALTsaltSALTsalt"
c = 4096
dkLen = 25
DK = 8c0511f4c6e597c6ac6315d8f0362e225f3c501495ba23b868

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

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

# Test Case 8
Hash = SHA512
Plen = 6
Slen = 4
P = "Password"
S = "NaCl"
c = 80000
dkLen = 128
DK = e6337d6fbeb645c794d4a9b5b75b7b30dac9ac50376a91df1f4460f6060d5addb2c1fd1f84409abacc67de7eb4056e6bb06c2d82c3ef4ccd1bded0f675ed97c65c33d39f81248454327aa6d03fd049fc5cbb2b5e6dac08e8ace996cdc960b1bd4530b7e754773d75f67a733fdb99baf6470e42ffcb753c15c352d4800fb6f9d6

# Test Case 9
Hash = SHA512
Plen = 6
Slen = 4
P = "Password"
S = "sa\0lt"
c = 4096
dkLen = 256
DK = 10176fb32cb98cd7bb31e2bb5c8f6e425c103333a2e496058e3fd2bd88f657485c89ef92daa0668316bc23ebd1ef88f6dd14157b2320b5d54b5f26377c5dc279b1dcdec044bd6f91b166917c80e1e99ef861b1d2c7bce1b961178125fb86867f6db489a2eae0022e7bc9cf421f044319fac765d70cb89b45c214590e2ffb2c2b565ab3b9d07571fde0027b1dc57f8fd25afa842c1056dd459af4074d7510a0c020b914a5e202445d4d3f151070589dd6a2554fc506018c4f001df6239643dc86771286ae4910769d8385531bba57544d63c3640b90c98f1445ebdd129475e02086b600f0beb5b05cc6ca9b3633b452b7dad634e9336f56ec4c3ac0b4fe54ced8