public DataTransformTests(ITestOutputHelper output) { _output = output; Enumerable.Repeat <byte>(0xFF, 1000).ToArray().CopyTo(_data, 0); Enumerable.Repeat <byte>(0xAA, 1000).ToArray().CopyTo(_data, 1000); Enumerable.Repeat <byte>(0x1A, 1000).ToArray().CopyTo(_data, 2000); Enumerable.Repeat <byte>(0xAF, 1000).ToArray().CopyTo(_data, 3000); Enumerable.Repeat <byte>(0x01, 1000).ToArray().CopyTo(_data, 4000); MyClass.ByteData = _data; var hashingProvider = new Argon2ID_HashingProvider(); var hashKey = hashingProvider.GetHashKey(Passphrase, Salt, 32); var serializationProvider = new Utf8JsonProvider(); _originalSize = serializationProvider.Serialize(MyClass).Length; _middleware = new DataTransformer( serializationProvider, new AesGcmEncryptionProvider(hashKey), new GzipProvider()); _serializedData = _middleware .SerializeAsync(MyClass) .GetAwaiter() .GetResult() .ToArray(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole().SetMinimumLevel(LogLevel.Information)); var metricsProvider = new PrometheusMetricsProvider() .AddDotNetRuntimeStats(); var serializationProvider = new Utf8JsonProvider(); var hashingProvider = new Argon2IDHasher(); var hashKey = hashingProvider .GetHashKeyAsync("passwordforencryption", "saltforencryption", 32) .GetAwaiter() .GetResult(); var encryptionProvider = new AesGcmEncryptionProvider(hashKey, hashingProvider.Type); var compressionProvider = new LZ4PickleProvider(); var rabbitService = new RabbitService( "Config.json", serializationProvider, encryptionProvider, compressionProvider, loggerFactory); services.AddSingleton( s => { return(new ConsumerDataflowService( s.GetRequiredService <IConfiguration>(), loggerFactory, rabbitService, serializationProvider, compressionProvider, encryptionProvider, metricsProvider)); }); }