public EncryptedData EncryptData(string message, byte[] masterKey, int dataKeyIterations) { var salt = _pbkdf2.GenerateSalt(); var dataKey = _pbkdf2.Compute(masterKey, salt, dataKeyIterations); var initializationVector = _aes.GenerateInitializationVector(); var ciphertext = _aes.Encrypt(message, dataKey, initializationVector); return(new EncryptedData(salt, initializationVector, dataKeyIterations, ciphertext)); }
public void GenerateSalt_SaltSizeIsLessThanOne() { var pbkdf2 = new Pbkdf2 { PlainText = "Test", SaltSize = 0 }; pbkdf2.GenerateSalt(); Assert.Fail(); }
public void GenerateSalt_Ok() { var pbkdf2 = new Pbkdf2 { PlainText = "Test" }; var salt = pbkdf2.GenerateSalt(); Assert.AreEqual(pbkdf2.Salt, salt); var saltContent = pbkdf2.Salt.Split('.'); Assert.IsTrue(saltContent.Length == 3); }
public void GenerateSalt_OkWithArguments() { var pbkdf2 = new Pbkdf2 { PlainText = "Test" }; var salt = pbkdf2.GenerateSalt(42, 16); var saltConent = salt.Split('.'); Assert.AreEqual(42, pbkdf2.HashIterations); Assert.AreEqual(16, pbkdf2.SaltSize); Assert.AreEqual(pbkdf2.Salt, salt); Assert.IsTrue(saltConent.Length == 3); Assert.IsTrue(saltConent[1] == "42"); }
private void generatesalt_button_Click(object sender, EventArgs e) { salt_textBox.Text = Pbkdf2.GenerateSalt(); }
public MasterKey(string secretPassword, int iterations, Pbkdf2 pbkdf2) : this(secretPassword, pbkdf2.GenerateSalt(), iterations, pbkdf2) { }