Hi,
I'm trying to use the Nettle PBKDF2 functionality from Emacs.
This call (assume that the macros and variables are correct):
pbkdf2_hmac_sha1 (SCHARS (key), SDATA (key), XINT (iterations), SCHARS (salt), SDATA (salt), outlength, digest);
works great, but I'd like to be able to use any generic nettle_hash.
I tried this, given alg is a pointer to a nettle_hash:
HMAC_SET_KEY(ctx, alg, SCHARS (key), SDATA (key));
PBKDF2 (ctx, alg->update, alg->digest, alg->digest_size, XINT (iterations), SCHARS (salt), SDATA (salt), outlength, digest);
in many combinations but couldn't get it to work (the tests don't match
up), and the docs don't explain how the PRF needs to be initialized. I
tried to copy what pbkdf2_hmac_sha1() does but wasn't successful. Is
there an example you could provide here or in the Nettle sources?
(The confusing part is that "ctx" is used for both the HMAC context (the
one with inner, outer, and state contexts) and for the hashing state
context itself. At one point in the macro chain the HMAC context is
passed where a hashing state context is expected, I think, and I really
need an example to ensure I'm doing it correctly. I am verifying with
the RFC 6070 test vectors and can provide the full source if necessary.)
Thanks!
Ted