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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }