# [−][src]Function ring::pbkdf2::derive

pub fn derive(

algorithm: Algorithm,

iterations: NonZeroU32,

salt: &[u8],

secret: &[u8],

out: &mut [u8]

)

Fills `out`

with the key derived using PBKDF2 with the given inputs.

Do not use `derive`

as part of verifying a secret; use `verify`

instead, to
minimize the effectiveness of timing attacks.

`out.len()`

must be no larger than the digest length * (2**32 - 1), per the
PBKDF2 specification.

Parameter | RFC 2898 Section 5.2 Term |
---|---|

digest_alg | PRF (HMAC with the given digest algorithm) |

iterations | c (iteration count) |

salt | S (salt) |

secret | P (password) |

out | dk (derived key) |

out.len() | dkLen (derived key length) |

# Panics

`derive`

panics if `out.len()`

is larger than (2**32 - 1) * the digest
algorithm's output length, per the PBKDF2 specification.