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 pairs, string issuer, string audience, out IRSAEncryptor? encryptor) => pairs.TryGetValue($"{issuer}:{audience}", out encryptor); public static IRSAEncryptor? GetEncryptor(this IDictionary pairs, string issuer, string audience) => pairs.TryGetEncryptor(issuer: issuer, audience: audience, out var encryptor) ? encryptor : null; } }