// 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;
///
/// Dependency injection extensions for eIDAS crypto plugin.
///
public static class ServiceCollectionExtensions
{
///
/// Add eIDAS crypto providers to the service collection.
///
public static IServiceCollection AddEidasCryptoProviders(
this IServiceCollection services,
IConfiguration configuration)
{
// Bind eIDAS configuration
services.Configure(configuration.GetSection("StellaOps:Crypto:Profiles:eidas"));
// Register eIDAS components
services.AddSingleton();
services.AddHttpClient();
// Register crypto provider
services.AddSingleton();
return services;
}
///
/// Add eIDAS crypto providers with explicit options.
///
public static IServiceCollection AddEidasCryptoProviders(
this IServiceCollection services,
Action configureOptions)
{
services.Configure(configureOptions);
services.AddSingleton();
services.AddHttpClient();
services.AddSingleton();
return services;
}
}