refactor(AsymCryptService): Entschlüsselungsinjektion entfernt
This commit is contained in:
@@ -2,20 +2,6 @@
|
|||||||
{
|
{
|
||||||
public interface IAsymCryptService<TParams> : IRSAFactory<TParams>
|
public interface IAsymCryptService<TParams> : IRSAFactory<TParams>
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Gets the formatter function for generating RSA key names.
|
|
||||||
/// This formatter takes an issuer, audience, isPrivate, and optional version and separator
|
|
||||||
/// to produce a formatted string used for the key naming convention.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="issuer">A string representing the issuer of the key. It should not contain invalid file name characters or the separator.</param>
|
|
||||||
/// <param name="audience">A string representing the audience for which the key is intended. It should not contain invalid file name characters or the separator.</param>
|
|
||||||
/// <param name="isPrivate">An bool to check if the key is private.</param>
|
|
||||||
/// <param name="version">An instance of the <see cref="Version?"/> interface, which is used to keep the version of Pbe password.</param>
|
|
||||||
/// <param name="separator">An optional string separator used to separate the issuer and audience. The default is "-_-". It should not be included in the issuer or audience strings.</param>
|
|
||||||
/// <returns>A formatted string combining the issuer, audience, and separator, which adheres to valid file naming rules.</returns>
|
|
||||||
/// <exception cref="ArgumentException">Thrown when the issuer, audience, or separator contains invalid characters or when the separator is present within the issuer or audience.</exception>
|
|
||||||
Func<string, string, bool, Version?, string?, string> RSAKeyNameFormatter { get; }
|
|
||||||
|
|
||||||
IRSADecryptor this[string key] { get; }
|
IRSADecryptor this[string key] { get; }
|
||||||
|
|
||||||
bool TryGetRSADecryptor(string key, out IRSADecryptor? decryptor);
|
bool TryGetRSADecryptor(string key, out IRSADecryptor? decryptor);
|
||||||
|
|||||||
@@ -13,12 +13,6 @@ namespace DigitalData.Core.Security.Extensions
|
|||||||
return rsa;
|
return rsa;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IRSADecryptor GetRSADecryptor<TParams>(this IAsymCryptService<TParams> factory, string issuer, string audience, Version? version = null, string? seperator = null)
|
|
||||||
=> factory[factory.RSAKeyNameFormatter(issuer, audience, true, version, seperator)];
|
|
||||||
|
|
||||||
public static bool TryGetRSADecryptor<TParams>(this IAsymCryptService<TParams> factory, string issuer, string audience, out IRSADecryptor? decryptor, Version? version = null, string? seperator = null)
|
|
||||||
=> factory.TryGetRSADecryptor(factory.RSAKeyNameFormatter(issuer, audience, true, version, seperator), out decryptor);
|
|
||||||
|
|
||||||
private static string CreatePath(string filename, string? directory = null)
|
private static string CreatePath(string filename, string? directory = null)
|
||||||
{
|
{
|
||||||
directory ??= Environment.CurrentDirectory;
|
directory ??= Environment.CurrentDirectory;
|
||||||
|
|||||||
@@ -6,18 +6,13 @@ namespace DigitalData.Core.Security
|
|||||||
{
|
{
|
||||||
public class AsymCryptService<TAsymCryptParams> : RSAFactory<TAsymCryptParams>, IAsymCryptService<TAsymCryptParams>, IRSAFactory<TAsymCryptParams> where TAsymCryptParams : AsymCryptParams
|
public class AsymCryptService<TAsymCryptParams> : RSAFactory<TAsymCryptParams>, IAsymCryptService<TAsymCryptParams>, IRSAFactory<TAsymCryptParams> where TAsymCryptParams : AsymCryptParams
|
||||||
{
|
{
|
||||||
private readonly IDictionary<string, IRSADecryptor> _decryptors;
|
private readonly Dictionary<string, IRSADecryptor> _decryptors;
|
||||||
|
|
||||||
public IRSADecryptor this[string key] { get => _decryptors[key]; set => _decryptors[key] = value; }
|
public IRSADecryptor this[string key] { get => _decryptors[key]; set => _decryptors[key] = value; }
|
||||||
|
|
||||||
public Func<string, string, bool, Version?, string?, string> RSAKeyNameFormatter { get; }
|
public AsymCryptService(IOptions<TAsymCryptParams> options, ILogger<AsymCryptService<TAsymCryptParams>>? logger = null) : base(options)
|
||||||
|
|
||||||
public AsymCryptService(IOptions<TAsymCryptParams> options, IDictionary<string, IRSADecryptor> decryptors, Func<string, string, bool, Version?, string?, string> rsaKeyNameFormatter, ILogger<AsymCryptService<TAsymCryptParams>>? logger = null) : base(options)
|
|
||||||
{
|
{
|
||||||
_decryptors = decryptors ?? new Dictionary<string, IRSADecryptor>();
|
_decryptors = new();
|
||||||
|
|
||||||
RSAKeyNameFormatter = rsaKeyNameFormatter;
|
|
||||||
|
|
||||||
logger?.LogInformation("Core.Secrets version: {Version}, Created on: {CreationDate}.", Secrets.Version, Secrets.CreationDate.ToString("dd.MM.yyyy"));
|
logger?.LogInformation("Core.Secrets version: {Version}, Created on: {CreationDate}.", Secrets.Version, Secrets.CreationDate.ToString("dd.MM.yyyy"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user