public static void Setup() { 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 Argon2IDHasher(); var hashKey = hashingProvider.GetHashKey(Passphrase, Salt, 32); _middleware = new RecyclableTransformer( new NewtonsoftJsonProvider(), new RecyclableAesGcmEncryptionProvider(hashKey, hashingProvider.Type), new RecyclableGzipProvider()); (var buffer, _) = _middleware.Input(MyClass); _serializedData = buffer.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)); }); }