21 lines
821 B
C#
21 lines
821 B
C#
using DigitalData.Core.Abstractions.Security;
|
|
using System.Security.Cryptography;
|
|
|
|
namespace DigitalData.Core.Security.Extensions
|
|
{
|
|
public static class RSAExtensions
|
|
{
|
|
public static RSA ToRSA(this string pem)
|
|
{
|
|
var rsa = RSA.Create();
|
|
rsa.ImportFromPem(pem);
|
|
return rsa;
|
|
}
|
|
|
|
public static bool TryGetEncryptor(this IDictionary<string, IRSAEncryptor> pairs, string issuer, string audience, out IRSAEncryptor? encryptor)
|
|
=> pairs.TryGetValue($"{issuer}:{audience}", out encryptor);
|
|
|
|
public static IRSAEncryptor? GetEncryptor(this IDictionary<string, IRSAEncryptor> pairs, string issuer, string audience)
|
|
=> pairs.TryGetEncryptor(issuer: issuer, audience: audience, out var encryptor) ? encryptor : null;
|
|
}
|
|
} |