From 0c451cb834c9ed35b91f3290ae24c736b8ff6879 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Thu, 5 Dec 2024 00:19:02 +0100 Subject: [PATCH] =?UTF-8?q?feat(Core.Security.DIExtensions):=20Injektion?= =?UTF-8?q?=20von=20Parametern=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DigitalData.Core.Security/DIExtensions.cs | 27 ++++++++++++++++++- .../DigitalData.Core.Security.csproj | 4 +++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/DigitalData.Core.Security/DIExtensions.cs b/DigitalData.Core.Security/DIExtensions.cs index 1a75545..7b92f69 100644 --- a/DigitalData.Core.Security/DIExtensions.cs +++ b/DigitalData.Core.Security/DIExtensions.cs @@ -1,16 +1,41 @@ using DigitalData.Core.Abstractions.Security; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Options; namespace DigitalData.Core.Security { public static class DIExtensions { - public static IServiceCollection AddAsymCryptService(this IServiceCollection services) + private static IServiceCollection AddAsymCryptService(this IServiceCollection services) where TAsymCryptParams : AsymCryptParams { services.TryAddScoped, AsymCryptService>(); return services; } + + public static IServiceCollection AddAsymCryptService(this IServiceCollection services, IConfigurationSection section) + where TAsymCryptParams : AsymCryptParams + => services.Configure(section).AddAsymCryptService(); + + public static IServiceCollection AddAsymCryptService(this IServiceCollection services, TAsymCryptParams param) + where TAsymCryptParams : AsymCryptParams + => services.AddSingleton(Options.Create(param)).AddAsymCryptService(); + + private static IServiceCollection AddRSAFactory(this IServiceCollection services) + where TRSAFactoryParams : RSAFactoryParams + { + services.TryAddScoped, RSAFactory>(); + return services; + } + + public static IServiceCollection AddRSAFactory(this IServiceCollection services, IConfigurationSection section) + where TRSAFactoryParams : RSAFactoryParams + => services.Configure(section).AddRSAFactory(); + + public static IServiceCollection AddRSAFactory(this IServiceCollection services, TRSAFactoryParams param) + where TRSAFactoryParams : RSAFactoryParams + => services.AddSingleton(Options.Create(param)).AddRSAFactory(); } } \ No newline at end of file diff --git a/DigitalData.Core.Security/DigitalData.Core.Security.csproj b/DigitalData.Core.Security/DigitalData.Core.Security.csproj index 3e2378e..c198a40 100644 --- a/DigitalData.Core.Security/DigitalData.Core.Security.csproj +++ b/DigitalData.Core.Security/DigitalData.Core.Security.csproj @@ -6,6 +6,10 @@ enable + + + +