public KmsXmlEncryptorTests() { repository = new MockRepository(MockBehavior.Strict); kmsClient = repository.Create <IAmazonKeyManagementService>(); encryptConfig = repository.Create <IKmsXmlEncryptorConfig>(); encryptor = new KmsXmlEncryptor(kmsClient.Object, encryptConfig.Object); }
public KmsXmlEncryptorTests() { repository = new MockRepository(MockBehavior.Strict); kmsClient = repository.Create <IAmazonKeyManagementService>(); encryptConfig = repository.Create <IOptions <KmsXmlEncryptorConfig> >(); dpOptions = repository.Create <IOptions <DataProtectionOptions> >(); encryptor = new KmsXmlEncryptor(kmsClient.Object, encryptConfig.Object, dpOptions.Object); }
public void ExpectValidationOfConfigToThrow() { var configObject = new KmsXmlEncryptorConfig(); encryptConfig.Setup(x => x.Value).Returns(configObject); var altRepo = new KmsXmlEncryptor(kmsClient.Object, encryptConfig.Object, dpOptions.Object); Assert.Throws <ArgumentException>(() => altRepo.ValidateConfig()); }
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 void EncryptFormat() { var key = new CryptoKeyName("projectId", "locationId", "keyRingId", Guid.NewGuid().ToString()); var encryptor = new KmsXmlEncryptor(new FakeKmsClient(), key); var plain = new XElement("Original", "Plaintext value"); var encrypted = encryptor.Encrypt(plain); Assert.Equal(typeof(KmsXmlDecryptor), encrypted.DecryptorType); var element = encrypted.EncryptedElement; Assert.Equal(KmsXmlConstants.EncryptedElement, element.Name); Assert.Equal(key.ToString(), element.Attribute(KmsXmlConstants.KmsKeyNameAttribute).Value); // Validate that the key data contains valid base64 data Convert.FromBase64String(element.Attribute(KmsXmlConstants.LocalKeyDataAttribute).Value); // Validate that the payload contains valid base64 data. Convert.FromBase64String(element.Element(KmsXmlConstants.PayloadElement).Value); }
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); }