mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-20 10:40:29 +01:00
36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using System.IO;
|
|
using System.Security.Cryptography;
|
|
using BTCPayServer.Configuration;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.IdentityModel.Tokens;
|
|
using NETCore.Encrypt.Extensions.Internal;
|
|
|
|
namespace BTCPayServer
|
|
{
|
|
public static class OpenIddictExtensions
|
|
{
|
|
public static SecurityKey GetSigningKey(IConfiguration configuration)
|
|
{
|
|
|
|
var file = Path.Combine(configuration.GetDataDir(), "rsaparams");
|
|
var rsa = new RSACryptoServiceProvider(2048);
|
|
if (File.Exists(file))
|
|
{
|
|
rsa.FromXmlString2(File.ReadAllText(file));
|
|
}
|
|
else
|
|
{
|
|
var contents = rsa.ToXmlString2(true);
|
|
File.WriteAllText(file, contents);
|
|
}
|
|
return new RsaSecurityKey(rsa.ExportParameters(true));;
|
|
}
|
|
public static OpenIddictServerBuilder ConfigureSigningKey(this OpenIddictServerBuilder builder,
|
|
IConfiguration configuration)
|
|
{
|
|
return builder.AddSigningKey(GetSigningKey(configuration));
|
|
}
|
|
}
|
|
}
|