joyent/node — pull request #6557 by bnoordhuis (2013-11-21 12:20:02+00:00)
Title: crypto: support custom pbkdf2 digest methods

Make the HMAC digest method configurable. Update crypto.pbkdf2() and
crypto.pbkdf2Sync() to take an extra, optional digest argument.

Before this commit, SHA-1 (admittedly the most common method) was used
exclusively.

Fixes #6553.

Suggested reviewer: @indutny

While going over the code I realized that crypto.getHashes() indiscriminately removes uppercase spellings of cipher/digest names. That's problematic because some (like DSA) don't have lowercase aliases.

I've added two proposed solutions: one removes the filtering entirely, the other tries various spellings of ciphers/digests. Comments welcome.