Added a method to change the password
This commit is contained in:
parent
8b117c5e6c
commit
fa4ce31491
@ -99,7 +99,7 @@ namespace Encrypter_Tests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public async Task TestChangedPassword()
|
public async Task TestAlteredPassword()
|
||||||
{
|
{
|
||||||
var message = "This is a test with umlauts äüö.";
|
var message = "This is a test with umlauts äüö.";
|
||||||
var password1 = "password!";
|
var password1 = "password!";
|
||||||
@ -164,5 +164,41 @@ namespace Encrypter_Tests
|
|||||||
Assert.That(true);
|
Assert.That(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public async Task TestChangedPasswordBehaviour()
|
||||||
|
{
|
||||||
|
var message = "This is a test with umlauts äüö.";
|
||||||
|
var previousPassword = "test password";
|
||||||
|
var newPassword = "test password!!!";
|
||||||
|
var iterations = 1_000;
|
||||||
|
|
||||||
|
var previousEncryptedData = await CryptoProcessor.EncryptString(message, previousPassword, iterations);
|
||||||
|
var reEncryptedData = await CryptoProcessor.ChangePassword(previousEncryptedData, previousPassword, newPassword, iterations);
|
||||||
|
Assert.That(previousEncryptedData, Is.Not.EqualTo(reEncryptedData));
|
||||||
|
|
||||||
|
var decryptedMessage = await CryptoProcessor.DecryptString(reEncryptedData, newPassword, iterations);
|
||||||
|
Assert.That(decryptedMessage, Is.EqualTo(message));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var decryptedMessage2 = await CryptoProcessor.DecryptString(reEncryptedData, previousPassword, iterations);
|
||||||
|
Assert.Fail("Should not be reached!");
|
||||||
|
}
|
||||||
|
catch (CryptographicException e)
|
||||||
|
{
|
||||||
|
Assert.That(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var decryptedMessage2 = await CryptoProcessor.DecryptString(previousEncryptedData, newPassword, iterations);
|
||||||
|
Assert.Fail("Should not be reached!");
|
||||||
|
}
|
||||||
|
catch (CryptographicException e)
|
||||||
|
{
|
||||||
|
Assert.That(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -176,5 +176,22 @@ namespace Encrypter
|
|||||||
// Encrypt the data with the new settings:
|
// Encrypt the data with the new settings:
|
||||||
return await CryptoProcessor.EncryptString(decryptedData, password, upgradedIterations);
|
return await CryptoProcessor.EncryptString(decryptedData, password, upgradedIterations);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Changes the password of the encryption.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="encryptedDataBeforeChange">With the previous password encrypted data.</param>
|
||||||
|
/// <param name="previousPassword">The previous password.</param>
|
||||||
|
/// <param name="newPassword">The new password.</param>
|
||||||
|
/// <param name="iterations">The used iterations.</param>
|
||||||
|
/// <returns>The re-encrypted data.</returns>
|
||||||
|
public static async Task<string> ChangePassword(string encryptedDataBeforeChange, string previousPassword, string newPassword, int iterations = ITERATIONS_YEAR_2020)
|
||||||
|
{
|
||||||
|
// Decrypt the data with the previous settings:
|
||||||
|
var decryptedData = await CryptoProcessor.DecryptString(encryptedDataBeforeChange, previousPassword, iterations);
|
||||||
|
|
||||||
|
// Encrypt the data with the new settings:
|
||||||
|
return await CryptoProcessor.EncryptString(decryptedData, newPassword, iterations);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,16 @@
|
|||||||
<param name="upgradedIterations">The upgraded number of iterations.</param>
|
<param name="upgradedIterations">The upgraded number of iterations.</param>
|
||||||
<returns>The re-encrypted data.</returns>
|
<returns>The re-encrypted data.</returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Encrypter.CryptoProcessor.ChangePassword(System.String,System.String,System.String,System.Int32)">
|
||||||
|
<summary>
|
||||||
|
Changes the password of the encryption.
|
||||||
|
</summary>
|
||||||
|
<param name="encryptedDataBeforeChange">With the previous password encrypted data.</param>
|
||||||
|
<param name="previousPassword">The previous password.</param>
|
||||||
|
<param name="newPassword">The new password.</param>
|
||||||
|
<param name="iterations">The used iterations.</param>
|
||||||
|
<returns>The re-encrypted data.</returns>
|
||||||
|
</member>
|
||||||
<member name="M:Encrypter.Extensions.Encrypt(System.String,System.String)">
|
<member name="M:Encrypter.Extensions.Encrypt(System.String,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
Encrypts this string by means of AES. The result gets base64 encoded.
|
Encrypts this string by means of AES. The result gets base64 encoded.
|
||||||
|
Loading…
Reference in New Issue
Block a user