83 lines
2.7 KiB
C#
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>();
|
|
}
|
|
}
|