public void Roundtrip(int dataSize) { var key = new CryptoKeyName("projectId", "locationId", "keyRingId", Guid.NewGuid().ToString()); var client = new FakeKmsClient(); var encryptor = new KmsXmlEncryptor(client, key); var decryptor = new KmsXmlDecryptor(client); var plain = new XElement("Original", new string ('x', dataSize)); var encrypted = encryptor.Encrypt(plain); Assert.DoesNotContain("Plaintext value", encrypted.EncryptedElement.ToString()); var decrypted = decryptor.Decrypt(encrypted.EncryptedElement); Assert.Equal(plain.ToString(), decrypted.ToString()); }
public KmsIntegrationTests() { // Expectation that local SDK has been configured correctly, whether via VS Tools or user config files kmsClient = new AmazonKeyManagementServiceClient(RegionEndpoint.EUWest1); var encryptConfig = new KmsXmlEncryptorConfig(ApplicationName, KmsTestingKey); var svcCollection = new ServiceCollection(); svcCollection.AddSingleton <IKmsXmlEncryptorConfig>(sp => encryptConfig); svcCollection.AddSingleton(sp => kmsClient); var svcProvider = svcCollection.BuildServiceProvider(); encryptor = new KmsXmlEncryptor(kmsClient, encryptConfig, svcProvider); decryptor = new KmsXmlDecryptor(svcProvider); }
public KmsXmlDecryptorTests() { repository = new MockRepository(MockBehavior.Strict); kmsClient = repository.Create <IAmazonKeyManagementService>(); encryptConfig = repository.Create <IKmsXmlEncryptorConfig>(); Mock <IServiceProvider> serviceProvider = repository.Create <IServiceProvider>(); serviceProvider.Setup(x => x.GetService(typeof(IKmsXmlEncryptorConfig))) .Returns(encryptConfig.Object); serviceProvider.Setup(x => x.GetService(typeof(IAmazonKeyManagementService))) .Returns(kmsClient.Object); serviceProvider.Setup(x => x.GetService(typeof(ILoggerFactory))) .Returns(null); decryptor = new KmsXmlDecryptor(serviceProvider.Object); }
public KmsXmlDecryptorTests() { repository = new MockRepository(MockBehavior.Strict); kmsClient = repository.Create <IAmazonKeyManagementService>(); encryptConfig = repository.Create <IOptions <KmsXmlEncryptorConfig> >(); dpOptions = repository.Create <IOptions <DataProtectionOptions> >(); var serviceProvider = repository.Create <IServiceProvider>(); serviceProvider.Setup(x => x.GetService(typeof(IOptions <KmsXmlEncryptorConfig>))) .Returns(encryptConfig.Object); serviceProvider.Setup(x => x.GetService(typeof(IOptions <DataProtectionOptions>))) .Returns(dpOptions.Object); serviceProvider.Setup(x => x.GetService(typeof(IAmazonKeyManagementService))) .Returns(kmsClient.Object); serviceProvider.Setup(x => x.GetService(typeof(ILoggerFactory))) .Returns(null as ILoggerFactory); decryptor = new KmsXmlDecryptor(serviceProvider.Object); }
public KmsIntegrationTests() { // Expectation that local SDK has been configured correctly, whether via VS Tools or user config files kmsClient = new AmazonKeyManagementServiceClient(RegionEndpoint.EUWest1); var encryptConfig = new KmsXmlEncryptorConfig(KmsTestingKey); dpOptions = new DataProtectionOptions { ApplicationDiscriminator = ApplicationName }; var encryptSnapshot = new DirectOptions <KmsXmlEncryptorConfig>(encryptConfig); var dpSnapshot = new DirectOptions <DataProtectionOptions>(dpOptions); var svcCollection = new ServiceCollection(); svcCollection.AddSingleton <IOptions <KmsXmlEncryptorConfig> >(sp => encryptSnapshot); svcCollection.AddSingleton <IOptions <DataProtectionOptions> >(sp => dpSnapshot); svcCollection.AddSingleton(sp => kmsClient); svcProvider = svcCollection.BuildServiceProvider(); encryptor = new KmsXmlEncryptor(kmsClient, encryptSnapshot, dpSnapshot); decryptor = new KmsXmlDecryptor(svcProvider); }