Add pbkdf2 function and test cases