public AppEncryptionJsonMultiThreadedTest() { payload = PayloadGenerator.CreateDefaultRandomJsonPayload(); appEncryptionSessionFactory = SessionFactoryGenerator.CreateDefaultAppEncryptionSessionFactory(); partitionId = DefaultPartitionId + "_" + DateTimeUtils.GetCurrentTimeAsUtcIsoDateTimeOffset(); appEncryptionJson = appEncryptionSessionFactory.GetAppEncryptionJson(partitionId); }
private void TestRegionSuffix() { byte[] originalPayload = PayloadGenerator.CreateDefaultRandomBytePayload(); byte[] decryptedBytes; byte[] dataRowRecordBytes; // Encrypt originalPayloadString with metastore with key suffix using (SessionFactory sessionFactory = SessionFactoryGenerator .CreateDefaultSessionFactory(configFixture.KeyManagementService, dynamoDbMetastoreImplWithKeySuffix)) { using (Session <byte[], byte[]> sessionBytes = sessionFactory.GetSessionBytes("shopper123")) { dataRowRecordBytes = sessionBytes.Encrypt(originalPayload); } } // Decrypt dataRowString with metastore with key suffix using (SessionFactory sessionFactory = SessionFactoryGenerator .CreateDefaultSessionFactory(configFixture.KeyManagementService, dynamoDbMetastoreImplWithKeySuffix)) { using (Session <byte[], byte[]> sessionBytes = sessionFactory.GetSessionBytes("shopper123")) { // Decrypt the payload decryptedBytes = sessionBytes.Decrypt(dataRowRecordBytes); } } // Verify that we were able to decrypt with a suffixed builder Assert.Equal(decryptedBytes, originalPayload); }
public AppEncryptionBytesTest() { payload = PayloadGenerator.CreateDefaultRandomBytePayload(); appEncryptionSessionFactory = SessionFactoryGenerator.CreateDefaultAppEncryptionSessionFactory(); partitionId = DefaultPartitionId + "_" + DateTimeUtils.GetCurrentTimeAsUtcIsoDateTimeOffset(); appEncryptionBytes = appEncryptionSessionFactory.GetAppEncryptionBytes(partitionId); }
public SessionByteMultiThreadedTest(ConfigFixture configFixture) { payload = PayloadGenerator.CreateDefaultRandomBytePayload(); sessionFactory = SessionFactoryGenerator.CreateDefaultSessionFactory( configFixture.KeyManagementService, configFixture.Metastore); partitionId = DefaultPartitionId + "_" + DateTimeUtils.GetCurrentTimeAsUtcIsoDateTimeOffset(); sessionBytes = sessionFactory.GetSessionBytes(partitionId); }
public AppEncryptionJsonMultiThreadedTest(ConfigFixture configFixture) { payload = PayloadGenerator.CreateDefaultRandomJsonPayload(); appEncryptionSessionFactory = SessionFactoryGenerator.CreateDefaultAppEncryptionSessionFactory( configFixture.KeyManagementService, configFixture.MetastorePersistence); partitionId = DefaultPartitionId + "_" + DateTimeUtils.GetCurrentTimeAsUtcIsoDateTimeOffset(); appEncryptionJson = appEncryptionSessionFactory.GetAppEncryptionJson(partitionId); }
private SessionFactory GetSessionFactory(bool withKeySuffix, string region) { DynamoDbMetastoreImpl.IBuildStep builder = DynamoDbMetastoreImpl.NewBuilder(region) .WithEndPointConfiguration($"http://{hostName}:{DynamoDbPort}", DefaultRegion); if (withKeySuffix) { builder = builder.WithKeySuffix(); } DynamoDbMetastoreImpl dynamoDbMetastore = builder.Build(); return(SessionFactoryGenerator.CreateDefaultSessionFactory(configFixture.KeyManagementService, dynamoDbMetastore)); }
private void RunPartitionTest(int testIterations, string partitionId, int payloadSizeBytesBase) { try { using (SessionFactory sessionFactory = SessionFactoryGenerator.CreateDefaultSessionFactory( configFixture.KeyManagementService, configFixture.Metastore)) { using (Session <JObject, byte[]> session = sessionFactory.GetSessionJson(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, session.Encrypt(jObject)); } foreach (KeyValuePair <string, byte[]> keyValuePair in dataStore) { JObject decryptedObject = session.Decrypt(keyValuePair.Value); Assert.Equal(partitionPart + keyValuePair.Key, decryptedObject["payload"].ToObject <string>()); } } } } catch (Exception e) { Logger.LogError(e, "Unexpected error during call"); throw; } }
private void TestCrossPartitionDecryptShouldFail() { byte[] payload = PayloadGenerator.CreateDefaultRandomBytePayload(); byte[] dataRowRecordBytes; string originalPartitionId = "shopper123"; string alternatePartitionId = "shopper1234"; using (SessionFactory sessionFactory = SessionFactoryGenerator.CreateDefaultSessionFactory( configFixture.KeyManagementService, configFixture.Metastore)) { using (Session <byte[], byte[]> sessionBytes = sessionFactory.GetSessionBytes(originalPartitionId)) { dataRowRecordBytes = sessionBytes.Encrypt(payload); } using (Session <byte[], byte[]> sessionBytes = sessionFactory.GetSessionBytes(alternatePartitionId)) { Assert.Throws <MetadataMissingException>(() => sessionBytes.Decrypt(dataRowRecordBytes)); } } }
public MultiPartitionMultiThreadedTest(ConfigFixture configFixture) { appEncryptionSessionFactory = SessionFactoryGenerator.CreateDefaultAppEncryptionSessionFactory( configFixture.KeyManagementService, configFixture.MetastorePersistence); }
public MultiPartitionMultiThreadedTest() { appEncryptionSessionFactory = SessionFactoryGenerator.CreateDefaultAppEncryptionSessionFactory(); }
public MultiPartitionMultiThreadedTest(ConfigFixture configFixture) { sessionFactory = SessionFactoryGenerator.CreateDefaultSessionFactory( configFixture.KeyManagementService, configFixture.Metastore); }