public void DecryptFromOtherSdkTest() { var secret = new EncryptionKey(1, s_passwordAsKey); using var cipher = new AesGcmPbkdf10KBase64Cipher(Encoding.UTF8); var decryptedMessage = cipher.Decrypt(CipherMessageV2, secret); Assert.AreEqual("SomeSecretBody!234567=!@#$%^&**()_+|\"{}'", decryptedMessage); }
public void AesGcmDecryptNegativeTest() { var secret = new EncryptionSecret(1, Encoding.UTF8.GetBytes("password")); using var cipher = new AesGcmPbkdf10KBase64Cipher(Encoding.UTF8); const string wrongCipheredText = "Nw5G/Ut36NVnt8+6EHg9iOYWX194"; var exception = Assert.Throws <StorageCryptoException>(() => cipher.Decrypt(wrongCipheredText, secret)); Assert.AreEqual("Encrypted text is incorrect", exception.Message); Assert.Throws <FormatException>(() => cipher.Decrypt("123", secret)); }
public void AesGcmBase64CipherTest() { var text = Guid.NewGuid().ToString(); var secret = new EncryptionKey(1, s_passwordAsKey); using var cipher = new AesGcmPbkdf10KBase64Cipher(Encoding.UTF8); var cipherMessage = cipher.Encrypt(text, secret); Assert.NotNull(cipherMessage); var decryptedMessage = cipher.Decrypt(cipherMessage.Data.Substring(2), secret); Assert.AreEqual(text, decryptedMessage); }
public void AesGcmBase64CipherNegativeTest() { var wrongKey = new EncryptionSecret(1, Encoding.UTF8.GetBytes(Guid.NewGuid().ToString())); using var cipher = new AesGcmPbkdf10KBase64Cipher(Encoding.UTF8); var exception = Assert.Throws <StorageCryptoException>(() => cipher.Decrypt(CipherMessageV2, wrongKey)); Assert.AreEqual("Invalid cipher for decryption", exception.Message); exception = Assert.Throws <StorageCryptoException>(() => cipher.Decrypt(CipherMessageV2)); Assert.AreEqual("No secret provided", exception.Message); exception = Assert.Throws <StorageCryptoException>(() => cipher.Decrypt(null, wrongKey)); Assert.AreEqual("Encrypted text is incorrect", exception.Message); }
public void DefaultCurrentCipherTest() { const int secretVersion = 7; var secret = new EncryptionSecret(secretVersion, Encoding.UTF8.GetBytes("password")); using var cipher = new AesGcmPbkdf10KBase64Cipher(Encoding.UTF8); using var cryptoProvider = new CryptoProvider(); var text = Guid.NewGuid().ToString(); var encryptResult = cryptoProvider.Encrypt(text, new SecretsData(new List <Secret> { secret }, secret)); Assert.NotNull(encryptResult); Assert.AreEqual(secretVersion, encryptResult.KeyVersion); var decrypted = cipher.Decrypt(encryptResult.Data.Substring(2), secret); Assert.AreEqual(text, decrypted); }