public async Task ValidateDecryptStream() { TestDoc testDoc = TestDoc.Create(); Stream encryptedStream = await EncryptionProcessor.EncryptAsync( testDoc.ToStream(), MdeEncryptionProcessorTests.mockEncryptor.Object, MdeEncryptionProcessorTests.encryptionOptions, new CosmosDiagnosticsContext(), CancellationToken.None); (Stream decryptedStream, DecryptionContext decryptionContext) = await EncryptionProcessor.DecryptAsync( encryptedStream, MdeEncryptionProcessorTests.mockEncryptor.Object, new CosmosDiagnosticsContext(), CancellationToken.None); JObject decryptedDoc = EncryptionProcessor.BaseSerializer.FromStream <JObject>(decryptedStream); MdeEncryptionProcessorTests.VerifyDecryptionSucceeded( decryptedDoc, testDoc, TestDoc.PathsToEncrypt.Count, decryptionContext); }
public async Task ValidateEncryptDecryptDocument() { TestDoc testDoc = TestDoc.Create(); JObject encryptedDoc = await MdeEncryptionProcessorTests.VerifyEncryptionSucceeded(testDoc); (JObject decryptedDoc, DecryptionContext decryptionContext) = await EncryptionProcessor.DecryptAsync( encryptedDoc, MdeEncryptionProcessorTests.mockEncryptor.Object, new CosmosDiagnosticsContext(), CancellationToken.None); MdeEncryptionProcessorTests.VerifyDecryptionSucceeded( decryptedDoc, testDoc, decryptionContext); }
public async Task EncryptDecryptPropertyWithNullValue() { TestDoc testDoc = TestDoc.Create(); testDoc.SensitiveStr = null; JObject encryptedDoc = await MdeEncryptionProcessorTests.VerifyEncryptionSucceeded(testDoc); (JObject decryptedDoc, DecryptionContext decryptionContext) = await EncryptionProcessor.DecryptAsync( encryptedDoc, MdeEncryptionProcessorTests.mockEncryptor.Object, new CosmosDiagnosticsContext(), CancellationToken.None); MdeEncryptionProcessorTests.VerifyDecryptionSucceeded( decryptedDoc, testDoc, decryptionContext); }
public async Task InvalidPathToEncrypt() { TestDoc testDoc = TestDoc.Create(); EncryptionOptions encryptionOptionsWithInvalidPathToEncrypt = new EncryptionOptions() { DataEncryptionKeyId = MdeEncryptionProcessorTests.dekId, EncryptionAlgorithm = CosmosEncryptionAlgorithm.MdeAeadAes256CbcHmac256Randomized, PathsToEncrypt = new List <string>() { "/SensitiveStr", "/Invalid" } }; Stream encryptedStream = await EncryptionProcessor.EncryptAsync( testDoc.ToStream(), MdeEncryptionProcessorTests.mockEncryptor.Object, encryptionOptionsWithInvalidPathToEncrypt, new CosmosDiagnosticsContext(), CancellationToken.None); JObject encryptedDoc = EncryptionProcessor.BaseSerializer.FromStream <JObject>(encryptedStream); (JObject decryptedDoc, DecryptionContext decryptionContext) = await EncryptionProcessor.DecryptAsync( encryptedDoc, MdeEncryptionProcessorTests.mockEncryptor.Object, new CosmosDiagnosticsContext(), CancellationToken.None); MdeEncryptionProcessorTests.VerifyDecryptionSucceeded( decryptedDoc, testDoc, 1, decryptionContext, invalidPathsConfigured: true); }