feat(AsymCryptParams): DateTagFormat als Subtext des Dateinamens für die periodische Aktualisierung von pem-Dateien hinzugefügt.

This commit is contained in:
Developer 02
2024-12-18 17:51:02 +01:00
parent bd1ae4246d
commit 4f6ca3524a
2 changed files with 90 additions and 5 deletions

View File

@@ -36,13 +36,28 @@ namespace DigitalData.Core.Security.Config
/// </example>
public string KeyNameSeparator { get; init; } = ":";
/// <summary>
///This is the subtext of the pem file name. For the file to be automatically renewed, the name must be assigned to change periodically. For example, by default MM/2 will be refreshed every 2 months.
/// <br />
/// - <see cref="StringExtensions.ToTag(DateTime, string)" /> is used when converting to tag.
/// <br />
/// - If the format contains the "//" symbol, the method divides the numeric value derived from the left side of the format
/// by the numeric value of the right side of the format string. For instance:
/// <br />
/// - If the date is 02.03.2024 and the format is "MM//2", it extracts the month (02), divides it by 2 (resulting in 1),
/// and returns "1".
/// <br />
/// - If the format does not contain "//", the method uses the default <see cref="DateTime.ToString"/> format.
/// <br />
/// This method provides a way to format the date based on typical or customized rules, including mathematical operations like division.
/// </summary>
public string DateTagFormat { get; init; } = "MM//2";
public IEnumerable<RSADecryptor> Decryptors { get; init; } = new List<RSADecryptor>();
public RSADecryptor? Vault { get; init; }
public AsymCryptParams()
{
AfterCreate += () =>
public AsymCryptParams() => AfterCreate += () =>
{
// Create root folder if it does not exist
if (!Directory.Exists(PemDirectory))
@@ -53,7 +68,7 @@ namespace DigitalData.Core.Security.Config
// set default path
if (decryptor.IsPemNull)
{
var file_name_params = new List<object> { decryptor.Issuer, decryptor.Audience, KeySizeInBits };
var file_name_params = new List<object> { decryptor.Issuer, decryptor.Audience, KeySizeInBits, DateTime.Now.ToTag(DateTagFormat) };
if (decryptor.IsEncrypted)
file_name_params.Add(Secrets.Version);
@@ -77,6 +92,5 @@ namespace DigitalData.Core.Security.Config
}
}
};
}
}
}