public static Pbkdf2 GetStream(byte[] key, byte[] salt, int cost, int blockSize, int parallel, int? maxThreads) { byte[] B = GetEffectivePbkdf2Salt(key, salt, cost, blockSize, parallel, maxThreads); var kdf = new Pbkdf2(key, B, 1, HmacCallback, HLen); Clear(B); return kdf; }
public static void ComputeKey(byte[] key, byte[] salt, int iterations, ComputeHmacCallback computeHmacCallback, int hmacLength, byte[] output) { using (Pbkdf2 kdf = new Pbkdf2(key, salt, iterations, computeHmacCallback, hmacLength)) { kdf.Read(output); } }