Files
git.stella-ops.org/src/__Libraries/__Tests/StellaOps.Cryptography.Tests/EidasCapabilityDetectionTests.Helpers.cs

83 lines
2.7 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using StellaOps.Cryptography.Plugin.EIDAS;
using StellaOps.Cryptography.Plugin.EIDAS.Configuration;
using StellaOps.Cryptography.Plugin.EIDAS.Models;
namespace StellaOps.Cryptography.Tests;
public sealed partial class EidasCapabilityDetectionTests
{
private static EidasCryptoProvider CreateProvider()
{
var services = new ServiceCollection();
services.Configure<EidasOptions>(options =>
{
options.SignatureLevel = SignatureLevel.AdES;
options.SignatureFormat = SignatureFormat.CAdES;
options.DefaultAlgorithm = "ECDSA-P256";
options.DigestAlgorithm = "SHA256";
options.Local = new LocalSigningOptions
{
Type = "PKCS12",
Path = "/tmp/test.p12",
Password = "test"
};
options.Tsp = new TspOptions
{
Endpoint = "https://tsp.example.com",
ApiKey = "test-key"
};
});
services.AddLogging(builder => builder.SetMinimumLevel(LogLevel.Warning));
services.AddHttpClient<TrustServiceProviderClient>();
services.AddSingleton<LocalEidasProvider>();
services.AddSingleton<EidasCryptoProvider>();
var serviceProvider = services.BuildServiceProvider();
return serviceProvider.GetRequiredService<EidasCryptoProvider>();
}
private static EidasCryptoProvider CreateProviderWithKey(string keyId)
{
var services = new ServiceCollection();
services.Configure<EidasOptions>(options =>
{
options.SignatureLevel = SignatureLevel.AdES;
options.SignatureFormat = SignatureFormat.CAdES;
options.DefaultAlgorithm = "ECDSA-P256";
options.DigestAlgorithm = "SHA256";
options.Keys.Add(new EidasKeyConfig
{
KeyId = keyId,
Source = "local"
});
options.Local = new LocalSigningOptions
{
Type = "PKCS12",
Path = "/tmp/test.p12",
Password = "test"
};
options.Tsp = new TspOptions
{
Endpoint = "https://tsp.example.com",
ApiKey = "test-key"
};
});
services.AddLogging(builder => builder.SetMinimumLevel(LogLevel.Warning));
services.AddHttpClient<TrustServiceProviderClient>();
services.AddSingleton<LocalEidasProvider>();
services.AddSingleton<EidasCryptoProvider>();
var serviceProvider = services.BuildServiceProvider();
return serviceProvider.GetRequiredService<EidasCryptoProvider>();
}
}