df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi mode - v1.0 or v2.0
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi hash - hash_method_lookup return value
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi password - private password for generation
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi password_len - length of password in octets
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi salt - salt for generation
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi salt_len - length of salt in octets
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi iterations - number of iterations to hash (use at least 1000, a very large number => very very slow)
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi dk_len - number of bytes to return from derived key
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi result - buffer_t to hold the result, either use dynamic or make sure it fits dk_len
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi non-zero return value indicates that either iterations was less than 1 or dk_len was too large
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi Sample code:
c147bff818798a979d93537f72f5c1f68f5d5ba8Aki Tuomi buffer_t *result = t_buffer_create(256);
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi if (pkcs5_pbkdf(PKCS5_PBKDF2, hash_method_lookup("sha256"), "password", 8, "salt", 4, 4096, 256, result) != 0) { // error }
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomiint pkcs5_pbkdf(enum pkcs5_pbkdf_mode mode, const struct hash_method *hash,
df74b8f6ff432d9a26727669dfed9a15d77efb55Aki Tuomi const unsigned char *password, size_t password_len,