public static IServiceCollection Create() { var services = new ServiceCollection(); // core services.AddTLS(); services.AddSingleton <IRandom, DefaultRandomGenerator>(); services.AddTransient <IStreamAccessor, StreamAccessor>(); services.AddTransient <INegotiatior, DefaultNegotiator>(); // features services.AddAES(); services.AddDHKeyExchange(CreateDHParameters()); services.AddEC(); services.AddGCM(); services.AddRC4(); services.AddRSAKeyReaders(); services.AddRSAKeyExchange(); services.AddSHA(); services.AddCipherSuites(); return(services); }