public virtual DeriveBytes CreateDeriveBytes(byte[] secret, string label, byte[] seed)
{
if (label != null) {
/* Construct the final seed from (label + seed) */
byte[] labelBytes = Encoding.ASCII.GetBytes(label);
byte[] finalSeed = new byte[labelBytes.Length + seed.Length];
Buffer.BlockCopy(labelBytes, 0, finalSeed, 0, labelBytes.Length);
Buffer.BlockCopy(seed, 0, finalSeed, labelBytes.Length, seed.Length);
return CreateDeriveBytes(secret, finalSeed);
} else {
return CreateDeriveBytes(secret, seed);
}
}