Пример #1
0
        private void RunEncryptDecryptTest(int testIterations, string partitionId, int payloadSizeBytesBase)
        {
            try
            {
                using (AppEncryption <JObject, byte[]> partition =
                           appEncryptionSessionFactory.GetAppEncryptionJson(partitionId))
                {
                    Dictionary <string, byte[]> dataStore = new Dictionary <string, byte[]>();

                    string partitionPart = "partition-" + partitionId + "-";

                    for (int i = 0; i < testIterations; i++)
                    {
                        // Note the size will be slightly larger since we're adding extra unique meta
                        JObject jsonObject = PayloadGenerator.CreateRandomJsonPayload(payloadSizeBytesBase);
                        string  keyPart    = $"iteration-{i}";
                        jsonObject.Add("payload", partitionPart + keyPart);

                        dataStore.Add(keyPart, partition.Encrypt(jsonObject));
                    }

                    foreach (KeyValuePair <string, byte[]> keyValuePair in dataStore)
                    {
                        JObject decryptedObject = partition.Decrypt(keyValuePair.Value);
                        Assert.Equal(partitionPart + keyValuePair.Key, decryptedObject.GetValue("payload").ToObject <string>());
                    }
                }
            }
            catch (Exception e)
            {
                Logger.LogError(e, "unexpected error during call");
                throw;
            }
        }
 public AppEncryptionJsonMultiThreadedTest()
 {
     payload = PayloadGenerator.CreateDefaultRandomJsonPayload();
     appEncryptionSessionFactory = SessionFactoryGenerator.CreateDefaultAppEncryptionSessionFactory();
     partitionId       = DefaultPartitionId + "_" + DateTimeUtils.GetCurrentTimeAsUtcIsoDateTimeOffset();
     appEncryptionJson = appEncryptionSessionFactory.GetAppEncryptionJson(partitionId);
 }
        private void TestGetAppEncryptionJson()
        {
            AppEncryption <JObject, byte[]> appEncryptionJson =
                appEncryptionSessionFactory.GetAppEncryptionJson(TestPartitionId);

            Assert.NotNull(appEncryptionJson);
        }
 public AppEncryptionJsonMultiThreadedTest(ConfigFixture configFixture)
 {
     payload = PayloadGenerator.CreateDefaultRandomJsonPayload();
     appEncryptionSessionFactory = SessionFactoryGenerator.CreateDefaultAppEncryptionSessionFactory(
         configFixture.KeyManagementService,
         configFixture.MetastorePersistence);
     partitionId       = DefaultPartitionId + "_" + DateTimeUtils.GetCurrentTimeAsUtcIsoDateTimeOffset();
     appEncryptionJson = appEncryptionSessionFactory.GetAppEncryptionJson(partitionId);
 }
Пример #5
0
        private void JsonEncryptDecryptWithDifferentSession()
        {
            byte[] dataRowRecord = appEncryptionJson.Encrypt(payload);

            using (AppEncryption <JObject, byte[]> appEncryptionBytesNew =
                       appEncryptionSessionFactory.GetAppEncryptionJson(partitionId))
            {
                JObject decryptedPayload = appEncryptionBytesNew.Decrypt(dataRowRecord);
                Assert.Equal(payload, decryptedPayload);
            }
        }
Пример #6
0
        private void RunPartitionTest(int testIterations, string partitionId, int payloadSizeBytesBase)
        {
            try
            {
                using (AppEncryptionSessionFactory factory =
                           SessionFactoryGenerator.CreateDefaultAppEncryptionSessionFactory(
                               configFixture.KeyManagementService,
                               configFixture.MetastorePersistence))
                {
                    using (AppEncryption <JObject, byte[]> partition = factory.GetAppEncryptionJson(partitionId))
                    {
                        Dictionary <string, byte[]> dataStore = new Dictionary <string, byte[]>();

                        string partitionPart = $"partition-{partitionId}-";

                        for (int i = 0; i < testIterations; i++)
                        {
                            // Note the size will be slightly larger since we're adding extra unique meta
                            JObject jObject = PayloadGenerator.CreateRandomJsonPayload(payloadSizeBytesBase);
                            string  keyPart = $"iteration-{i}";
                            jObject["payload"] = partitionPart + keyPart;

                            dataStore.Add(keyPart, partition.Encrypt(jObject));
                        }

                        foreach (KeyValuePair <string, byte[]> keyValuePair in dataStore)
                        {
                            JObject decryptedObject = partition.Decrypt(keyValuePair.Value);
                            Assert.Equal(partitionPart + keyValuePair.Key, decryptedObject["payload"].ToObject <string>());
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Logger.LogError(e, "Unexpected error during call");
                throw;
            }
        }