52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
// SPDX-License-Identifier: BUSL-1.1
|
|
// Sprint: SPRINT_4100_0006_0002 - eIDAS Crypto Plugin
|
|
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using StellaOps.Cryptography;
|
|
using StellaOps.Cryptography.Plugin.EIDAS.Configuration;
|
|
|
|
namespace StellaOps.Cryptography.Plugin.EIDAS.DependencyInjection;
|
|
|
|
/// <summary>
|
|
/// Dependency injection extensions for eIDAS crypto plugin.
|
|
/// </summary>
|
|
public static class ServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// Add eIDAS crypto providers to the service collection.
|
|
/// </summary>
|
|
public static IServiceCollection AddEidasCryptoProviders(
|
|
this IServiceCollection services,
|
|
IConfiguration configuration)
|
|
{
|
|
// Bind eIDAS configuration
|
|
services.Configure<EidasOptions>(configuration.GetSection("StellaOps:Crypto:Profiles:eidas"));
|
|
|
|
// Register eIDAS components
|
|
services.AddSingleton<LocalEidasProvider>();
|
|
services.AddHttpClient<TrustServiceProviderClient>();
|
|
|
|
// Register crypto provider
|
|
services.AddSingleton<ICryptoProvider, EidasCryptoProvider>();
|
|
|
|
return services;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Add eIDAS crypto providers with explicit options.
|
|
/// </summary>
|
|
public static IServiceCollection AddEidasCryptoProviders(
|
|
this IServiceCollection services,
|
|
Action<EidasOptions> configureOptions)
|
|
{
|
|
services.Configure(configureOptions);
|
|
|
|
services.AddSingleton<LocalEidasProvider>();
|
|
services.AddHttpClient<TrustServiceProviderClient>();
|
|
services.AddSingleton<ICryptoProvider, EidasCryptoProvider>();
|
|
|
|
return services;
|
|
}
|
|
}
|