summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.lib/DomainObjects/RenewResult.cs (renamed from src/main/DomainObjects/RenewResult.cs)2
-rw-r--r--src/main.lib/DomainObjects/Renewal.cs (renamed from src/main/DomainObjects/Renewal.cs)72
-rw-r--r--src/main.lib/Plugins/Base/OptionsFactories/Null/NullInstallationOptionsFactory.cs2
-rw-r--r--src/main.lib/Services/Interfaces/IInputService.cs1
-rw-r--r--src/main.lib/Services/Serialization/ProtectedString.cs (renamed from src/main/Services/Serialization/ProtectedString.cs)7
-rw-r--r--src/main.lib/wacs.lib.csproj1
-rw-r--r--src/main/Acme/AcmeClient.cs6
-rw-r--r--src/main/Extensions/DateExtensions.cs16
-rw-r--r--src/main/MainMenu.cs14
-rw-r--r--src/main/Plugins/CsrPlugins/CsrPlugin.cs2
-rw-r--r--src/main/Program.cs4
-rw-r--r--src/main/Properties/Settings.Designer.cs2
-rw-r--r--src/main/Properties/Settings.settings2
-rw-r--r--src/main/Renew.cs4
-rw-r--r--src/main/Services/CertificateService.cs11
-rw-r--r--src/main/Services/InputService.cs9
-rw-r--r--src/main/Services/Legacy/Importer.cs2
-rw-r--r--src/main/Services/Legacy/LegacyScheduledRenewal.cs2
-rw-r--r--src/main/Services/PluginService.cs7
-rw-r--r--src/main/Services/RenewalService.cs7
-rw-r--r--src/main/Services/Serialization/ProtectedStringConverter.cs2
-rw-r--r--src/main/Wacs.cs2
-rw-r--r--src/main/packages.config1
-rw-r--r--src/main/settings.config2
-rw-r--r--src/main/wacs.csproj7
25 files changed, 102 insertions, 85 deletions
diff --git a/src/main/DomainObjects/RenewResult.cs b/src/main.lib/DomainObjects/RenewResult.cs
index 9bf43a8..6d751b0 100644
--- a/src/main/DomainObjects/RenewResult.cs
+++ b/src/main.lib/DomainObjects/RenewResult.cs
@@ -27,7 +27,7 @@ namespace PKISharp.WACS.DomainObjects
ErrorMessage = error;
}
- public override string ToString() => $"{Date.ToUserString()} " +
+ public override string ToString() => $"{Date} " +
$"- {(Success ? "Success" : "Error")}" +
$"{(string.IsNullOrEmpty(Thumbprint) ? "" : $" - Thumbprint {Thumbprint}")}" +
$"{(string.IsNullOrEmpty(ErrorMessage) ? "" : $" - {ErrorMessage.ReplaceNewLines()}")}";
diff --git a/src/main/DomainObjects/Renewal.cs b/src/main.lib/DomainObjects/Renewal.cs
index bd8a88b..5ee7a2f 100644
--- a/src/main/DomainObjects/Renewal.cs
+++ b/src/main.lib/DomainObjects/Renewal.cs
@@ -19,13 +19,14 @@ namespace PKISharp.WACS.DomainObjects
[DebuggerDisplay("Renewal {Id}: {FriendlyName}")]
public class Renewal
{
- internal static Renewal Create(string id, PasswordGenerator generator)
+ internal static Renewal Create(string id, int renewalDays, PasswordGenerator generator)
{
var ret = new Renewal
{
New = true,
Id = string.IsNullOrEmpty(id) ? ShortGuid.NewGuid().ToString() : id,
- PfxPassword = new ProtectedString(generator.Generate())
+ PfxPassword = new ProtectedString(generator.Generate()),
+ RenewalDays = renewalDays
};
return ret;
}
@@ -49,6 +50,14 @@ namespace PKISharp.WACS.DomainObjects
internal bool Deleted { get; set; }
/// <summary>
+ /// Current renewal days setting, stored
+ /// here as a shortcut because its not
+ /// otherwise available to the instance
+ /// </summary>
+ [JsonIgnore]
+ internal int RenewalDays { get; set; }
+
+ /// <summary>
/// Is this renewal new
/// </summary>
[JsonIgnore]
@@ -72,35 +81,32 @@ namespace PKISharp.WACS.DomainObjects
/// </summary>
public string LastFriendlyName { get; set; }
-
/// <summary>
/// Plain text readable version of the PfxFile password
/// </summary>
[JsonProperty(PropertyName = "PfxPasswordProtected")]
public ProtectedString PfxPassword { get; set; }
- /// <summary>
- /// Next scheduled renew date (computed based on most recent succesful renewal)
- /// </summary>
- [JsonIgnore]
- public DateTime Date {
- get
+ public DateTime? GetDueDate() {
+ var lastSuccess = History.LastOrDefault(x => x.Success)?.Date;
+ if (lastSuccess.HasValue)
+ {
+ return lastSuccess.
+ Value.
+ AddDays(RenewalDays).
+ ToLocalTime();
+ }
+ else
{
- var lastSuccess = History.LastOrDefault(x => x.Success)?.Date;
- if (lastSuccess.HasValue)
- {
- return lastSuccess.
- Value.
- AddDays(Properties.Settings.Default.RenewalDays).
- ToLocalTime();
- }
- else
- {
- return new DateTime(1970, 1, 1);
- }
+ return null;
}
}
+ public bool IsDue()
+ {
+ return GetDueDate() == null || GetDueDate() < DateTime.Now;
+ }
+
/// <summary>
/// Store information about TargetPlugin
/// </summary>
@@ -136,18 +142,34 @@ namespace PKISharp.WACS.DomainObjects
/// </summary>
/// <returns></returns>
public override string ToString() {
+ return ToString(null);
+ }
+
+ /// <summary>
+ /// Pretty format
+ /// </summary>
+ /// <returns></returns>
+ public string ToString(IInputService inputService)
+ {
var success = History.FindAll(x => x.Success).Count;
var errors = History.AsEnumerable().Reverse().TakeWhile(x => !x.Success);
- if (errors.Count() > 0)
+ var ret = $"{LastFriendlyName} - renewed {success} time{(success != 1 ? "s" : "")}";
+ var due = IsDue();
+ var dueDate = GetDueDate();
+ if (inputService == null)
{
- var error = History.Last().ErrorMessage;
- return $"{LastFriendlyName} - renewed {success} time{(success != 1 ? "s" : "")}, due after {Date.ToUserString()}, {errors.Count()} error(s) like '{error}'";
+ ret += due ? ", due now" : dueDate == null ? "" : $", due after {dueDate}";
}
else
{
- return $"{LastFriendlyName} - renewed {success} time{(success != 1 ? "s" : "")}, due after {Date.ToUserString()}";
+ ret += due ? ", due now" : dueDate == null ? "" : $", due after {inputService.FormatDate(dueDate.Value)}";
}
+ if (errors.Count() > 0)
+ {
+ ret += $", {errors.Count()} error{(errors.Count() != 1 ? "s" : "")} like \"{errors.First().ErrorMessage}\"";
+ }
+ return ret;
}
}
}
diff --git a/src/main.lib/Plugins/Base/OptionsFactories/Null/NullInstallationOptionsFactory.cs b/src/main.lib/Plugins/Base/OptionsFactories/Null/NullInstallationOptionsFactory.cs
index db1e411..5998e2a 100644
--- a/src/main.lib/Plugins/Base/OptionsFactories/Null/NullInstallationOptionsFactory.cs
+++ b/src/main.lib/Plugins/Base/OptionsFactories/Null/NullInstallationOptionsFactory.cs
@@ -30,7 +30,7 @@ namespace PKISharp.WACS.Plugins.Base.Factories.Null
public override string Description => "Do not run any (extra) installation steps";
}
- internal class NullInstallation : IInstallationPlugin
+ class NullInstallation : IInstallationPlugin
{
void IInstallationPlugin.Install(IEnumerable<IStorePlugin> stores, CertificateInfo newCertificateInfo, CertificateInfo oldCertificateInfo) { }
}
diff --git a/src/main.lib/Services/Interfaces/IInputService.cs b/src/main.lib/Services/Interfaces/IInputService.cs
index aaabc8f..4e96f8c 100644
--- a/src/main.lib/Services/Interfaces/IInputService.cs
+++ b/src/main.lib/Services/Interfaces/IInputService.cs
@@ -14,6 +14,7 @@ namespace PKISharp.WACS.Services
void Show(string label, string value = null, bool first = false, int level = 0);
bool Wait(string message = "");
void WritePagedList(IEnumerable<Choice> listItems);
+ string FormatDate(DateTime date);
}
diff --git a/src/main/Services/Serialization/ProtectedString.cs b/src/main.lib/Services/Serialization/ProtectedString.cs
index d296a3c..95a2227 100644
--- a/src/main/Services/Serialization/ProtectedString.cs
+++ b/src/main.lib/Services/Serialization/ProtectedString.cs
@@ -42,12 +42,9 @@ namespace PKISharp.WACS.Services.Serialization
/// <summary>
/// Value to save to disk, based on the setting
/// </summary>
- public string DiskValue
+ public string DiskValue(bool encrypt)
{
- get
- {
- return Properties.Settings.Default.EncryptConfig? ProtectedValue : EncodedValue;
- }
+ return encrypt ? ProtectedValue : EncodedValue;
}
/// <summary>
diff --git a/src/main.lib/wacs.lib.csproj b/src/main.lib/wacs.lib.csproj
index 103aaec..d6b6af1 100644
--- a/src/main.lib/wacs.lib.csproj
+++ b/src/main.lib/wacs.lib.csproj
@@ -14,6 +14,7 @@
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.EventLog" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
+ <PackageReference Include="System.Security.Cryptography.ProtectedData" Version="4.5.0" />
</ItemGroup>
</Project>
diff --git a/src/main/Acme/AcmeClient.cs b/src/main/Acme/AcmeClient.cs
index 183ad51..1b8ffac 100644
--- a/src/main/Acme/AcmeClient.cs
+++ b/src/main/Acme/AcmeClient.cs
@@ -26,8 +26,8 @@ namespace PKISharp.WACS.Acme
private const string SignerFileName = "Signer_v2";
private AcmeProtocolClient _client;
- private ILogService _log;
- private IInputService _input;
+ private readonly ILogService _log;
+ private readonly IInputService _input;
private ISettingsService _settings;
private IArgumentsService _arguments;
private ProxyService _proxyService;
@@ -258,7 +258,7 @@ namespace PKISharp.WACS.Acme
{
_log.Debug("Saving signer to {SignerPath}", SignerPath);
var x = new ProtectedString(JsonConvert.SerializeObject(value));
- File.WriteAllText(SignerPath, x.DiskValue);
+ File.WriteAllText(SignerPath, x.DiskValue(Properties.Settings.Default.EncryptConfig));
_accountSigner = value;
}
}
diff --git a/src/main/Extensions/DateExtensions.cs b/src/main/Extensions/DateExtensions.cs
deleted file mode 100644
index cc4085d..0000000
--- a/src/main/Extensions/DateExtensions.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace PKISharp.WACS.Extensions
-{
- public static class DateExtensions
- {
- public static string ToUserString(this DateTime date)
- {
- return date.ToString(Properties.Settings.Default.FileDateFormat);
- }
- }
-}
diff --git a/src/main/MainMenu.cs b/src/main/MainMenu.cs
index dccb477..2ef1647 100644
--- a/src/main/MainMenu.cs
+++ b/src/main/MainMenu.cs
@@ -65,11 +65,13 @@ namespace PKISharp.WACS
{
var renewal = _input.ChooseFromList("Type the number of a renewal to show its details, or press enter to go back",
_renewalService.Renewals,
- x => Choice.Create(x, color: x.History.Last().Success ?
- x.Date < DateTime.Now ?
- ConsoleColor.DarkYellow :
- ConsoleColor.Green :
- ConsoleColor.Red),
+ x => Choice.Create(x,
+ description: x.ToString(_input),
+ color: x.History.Last().Success ?
+ x.IsDue() ?
+ ConsoleColor.DarkYellow :
+ ConsoleColor.Green :
+ ConsoleColor.Red),
"Back");
if (renewal != null)
@@ -81,7 +83,7 @@ namespace PKISharp.WACS
_input.Show("File", $"{renewal.Id}.renewal.json");
_input.Show("FriendlyName", string.IsNullOrEmpty(renewal.FriendlyName) ? $"[Auto] {renewal.LastFriendlyName}" : renewal.FriendlyName);
_input.Show(".pfx password", renewal.PfxPassword?.Value);
- _input.Show("Renewal due", renewal.Date.ToUserString());
+ _input.Show("Renewal due", renewal.GetDueDate()?.ToString() ?? "now");
_input.Show("Renewed", $"{renewal.History.Where(x => x.Success).Count()} times");
renewal.TargetPluginOptions.Show(_input);
renewal.ValidationPluginOptions.Show(_input);
diff --git a/src/main/Plugins/CsrPlugins/CsrPlugin.cs b/src/main/Plugins/CsrPlugins/CsrPlugin.cs
index 5bb82d1..332d029 100644
--- a/src/main/Plugins/CsrPlugins/CsrPlugin.cs
+++ b/src/main/Plugins/CsrPlugins/CsrPlugin.cs
@@ -110,7 +110,7 @@ namespace PKISharp.WACS.Plugins.CsrPlugins
if (_options.ReusePrivateKey == true)
{
var rawData = new ProtectedString(_cacheData);
- File.WriteAllText(cachePath, rawData.DiskValue);
+ File.WriteAllText(cachePath, rawData.DiskValue(Properties.Settings.Default.EncryptConfig));
}
}
diff --git a/src/main/Program.cs b/src/main/Program.cs
index f52d303..fad974f 100644
--- a/src/main/Program.cs
+++ b/src/main/Program.cs
@@ -1,5 +1,4 @@
using Autofac;
-using Nager.PublicSuffix;
using PKISharp.WACS.Acme;
using PKISharp.WACS.Clients;
using PKISharp.WACS.Clients.DNS;
@@ -9,7 +8,7 @@ using PKISharp.WACS.Plugins.Resolvers;
using PKISharp.WACS.Plugins.TargetPlugins;
using PKISharp.WACS.Services;
using System;
-using System.Diagnostics;
+using System.Globalization;
namespace PKISharp.WACS
{
@@ -96,7 +95,6 @@ namespace PKISharp.WACS
builder.RegisterType<TaskSchedulerService>().SingleInstance();
builder.RegisterType<NotificationService>().SingleInstance();
-
return builder.Build();
}
}
diff --git a/src/main/Properties/Settings.Designer.cs b/src/main/Properties/Settings.Designer.cs
index c416530..18b070c 100644
--- a/src/main/Properties/Settings.Designer.cs
+++ b/src/main/Properties/Settings.Designer.cs
@@ -25,7 +25,7 @@ namespace PKISharp.WACS.Properties {
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("yyyy/M/d H:mm:ss")]
+ [global::System.Configuration.DefaultSettingValueAttribute("yyyy/MMMM/d H:mm:ss")]
public string FileDateFormat {
get {
return ((string)(this["FileDateFormat"]));
diff --git a/src/main/Properties/Settings.settings b/src/main/Properties/Settings.settings
index 49ff095..5356e19 100644
--- a/src/main/Properties/Settings.settings
+++ b/src/main/Properties/Settings.settings
@@ -3,7 +3,7 @@
<Profiles />
<Settings>
<Setting Name="FileDateFormat" Type="System.String" Scope="Application">
- <Value Profile="(Default)">yyyy/M/d H:mm:ss</Value>
+ <Value Profile="(Default)">yyyy/MMMM/d H:mm:ss</Value>
</Setting>
<Setting Name="RSAKeyBits" Type="System.Int32" Scope="Application">
<Value Profile="(Default)">3072</Value>
diff --git a/src/main/Renew.cs b/src/main/Renew.cs
index f84c8f5..666751b 100644
--- a/src/main/Renew.cs
+++ b/src/main/Renew.cs
@@ -55,13 +55,13 @@ namespace PKISharp.WACS
if (!runLevel.HasFlag(RunLevel.ForceRenew) && !renewal.Updated)
{
_log.Verbose("Checking {renewal}", renewal.LastFriendlyName);
- if (renewal.Date >= DateTime.Now)
+ if (renewal.IsDue())
{
var cs = es.Resolve<ICertificateService>();
var cache = cs.CachedInfo(renewal);
if (cache != null && cache.Match(target))
{
- _log.Information(LogType.All, "Renewal for {renewal} is due after {date}", renewal.LastFriendlyName, renewal.Date.ToUserString());
+ _log.Information(LogType.All, "Renewal for {renewal} is due after {date}", renewal.LastFriendlyName, renewal.GetDueDate());
return null;
}
else
diff --git a/src/main/Services/CertificateService.cs b/src/main/Services/CertificateService.cs
index 00a820b..978e406 100644
--- a/src/main/Services/CertificateService.cs
+++ b/src/main/Services/CertificateService.cs
@@ -17,8 +17,9 @@ namespace PKISharp.WACS.Services
{
internal class CertificateService : ICertificateService
{
- private ILogService _log;
- private AcmeClient _client;
+ private readonly IInputService _inputService;
+ private readonly ILogService _log;
+ private readonly AcmeClient _client;
private readonly ProxyService _proxy;
private readonly DirectoryInfo _cache;
private readonly PemService _pemService;
@@ -28,6 +29,7 @@ namespace PKISharp.WACS.Services
AcmeClient client,
ProxyService proxy,
PemService pemService,
+ IInputService inputService,
ISettingsService settingsService)
{
_log = log;
@@ -35,6 +37,7 @@ namespace PKISharp.WACS.Services
_pemService = pemService;
_cache = new DirectoryInfo(settingsService.CertificatePath);
_proxy = proxy;
+ _inputService = inputService;
CheckStaleFiles();
}
@@ -94,7 +97,7 @@ namespace PKISharp.WACS.Services
{
var x = new ProtectedString(File.ReadAllText(f.FullName));
_log.Information("Rewriting {x}", f.Name);
- File.WriteAllText(f.FullName, x.DiskValue);
+ File.WriteAllText(f.FullName, x.DiskValue(Settings.Default.EncryptConfig));
}
}
@@ -275,7 +278,7 @@ namespace PKISharp.WACS.Services
}
}
- tempPfx.FriendlyName = $"{friendlyName} {DateTime.Now.ToUserString()}";
+ tempPfx.FriendlyName = $"{friendlyName} {_inputService.FormatDate(DateTime.Now)}";
File.WriteAllBytes(pfxFileInfo.FullName, tempPfx.Export(X509ContentType.Pfx, renewal.PfxPassword?.Value));
tempPfx.Dispose();
pfxFileInfo.Refresh();
diff --git a/src/main/Services/InputService.cs b/src/main/Services/InputService.cs
index cb0c075..2540562 100644
--- a/src/main/Services/InputService.cs
+++ b/src/main/Services/InputService.cs
@@ -8,8 +8,8 @@ namespace PKISharp.WACS.Services
{
public class InputService : IInputService
{
- private IArgumentsService _arguments;
- private ILogService _log;
+ private readonly IArgumentsService _arguments;
+ private readonly ILogService _log;
private const string _cancelCommand = "C";
private readonly int _pageSize;
private bool _dirty;
@@ -406,6 +406,11 @@ namespace PKISharp.WACS.Services
}
Console.WriteLine();
}
+
+ public string FormatDate(DateTime date)
+ {
+ return date.ToString(Properties.Settings.Default.FileDateFormat);
+ }
}
}
diff --git a/src/main/Services/Legacy/Importer.cs b/src/main/Services/Legacy/Importer.cs
index 238ac64..89c7b01 100644
--- a/src/main/Services/Legacy/Importer.cs
+++ b/src/main/Services/Legacy/Importer.cs
@@ -54,7 +54,7 @@ namespace PKISharp.WACS.Services.Legacy
// will be due immediately. That's the ulimate test to see
// if they will actually work in the new ACMEv2 environment
- var ret = Renewal.Create(null, _passwordGenerator);
+ var ret = Renewal.Create(null, Properties.Settings.Default.RenewalDays, _passwordGenerator);
ConvertTarget(legacy, ret);
ConvertValidation(legacy, ret);
ConvertStore(legacy, ret);
diff --git a/src/main/Services/Legacy/LegacyScheduledRenewal.cs b/src/main/Services/Legacy/LegacyScheduledRenewal.cs
index 0933e3d..0ecaa7f 100644
--- a/src/main/Services/Legacy/LegacyScheduledRenewal.cs
+++ b/src/main/Services/Legacy/LegacyScheduledRenewal.cs
@@ -65,6 +65,6 @@ namespace PKISharp.WACS.Services.Legacy
/// Pretty format
/// </summary>
/// <returns></returns>
- public override string ToString() => $"{Binding?.Host ?? "[unknown]"} - renew after {Date.ToUserString()}";
+ public override string ToString() => $"{Binding?.Host ?? "[unknown]"} - renew after {Date}";
}
}
diff --git a/src/main/Services/PluginService.cs b/src/main/Services/PluginService.cs
index d3b1312..628a461 100644
--- a/src/main/Services/PluginService.cs
+++ b/src/main/Services/PluginService.cs
@@ -146,8 +146,11 @@ namespace PKISharp.WACS.Services
private List<Type> GetTypes()
{
var ret = new List<Type>();
- ret.AddRange(Assembly.GetExecutingAssembly().GetTypes());
-
+ foreach (var ass in AppDomain.CurrentDomain.GetAssemblies())
+ {
+ ret.AddRange(ass.GetTypes());
+ }
+
// Try loading additional dlls in the current dir to attempt to find plugin types in them
var baseDir = AppDomain.CurrentDomain.BaseDirectory;
var allFiles = Directory.EnumerateFileSystemEntries(baseDir, "*.dll", SearchOption.AllDirectories);
diff --git a/src/main/Services/RenewalService.cs b/src/main/Services/RenewalService.cs
index e2a3159..6cafb71 100644
--- a/src/main/Services/RenewalService.cs
+++ b/src/main/Services/RenewalService.cs
@@ -64,7 +64,7 @@ namespace PKISharp.WACS.Services
renewal.History.Add(result);
if (result.Success)
{
- _log.Information(LogType.All, "Next renewal scheduled at {date}", renewal.Date.ToUserString());
+ _log.Information(LogType.All, "Next renewal scheduled at {date}", renewal.GetDueDate());
}
renewal.Updated = true;
Renewals = renewals;
@@ -176,6 +176,7 @@ namespace PKISharp.WACS.Services
{
result.History = new List<RenewResult>();
}
+ result.RenewalDays = Properties.Settings.Default.RenewalDays;
list.Add(result);
}
catch (Exception ex)
@@ -183,7 +184,7 @@ namespace PKISharp.WACS.Services
_log.Error("Unable to read renewal {renewal}: {reason}", rj.Name, ex.Message);
}
}
- _renewalsCache = list.OrderBy(x => x.Date).ToList();
+ _renewalsCache = list.OrderBy(x => x.GetDueDate()).ToList();
}
return _renewalsCache;
}
@@ -222,7 +223,7 @@ namespace PKISharp.WACS.Services
renewal.Updated = false;
}
});
- _renewalsCache = list.Where(x => !x.Deleted).OrderBy(x => x.Date).ToList();
+ _renewalsCache = list.Where(x => !x.Deleted).OrderBy(x => x.GetDueDate()).ToList();
}
/// <summary>
diff --git a/src/main/Services/Serialization/ProtectedStringConverter.cs b/src/main/Services/Serialization/ProtectedStringConverter.cs
index bb3ff9f..240b9c2 100644
--- a/src/main/Services/Serialization/ProtectedStringConverter.cs
+++ b/src/main/Services/Serialization/ProtectedStringConverter.cs
@@ -23,7 +23,7 @@ namespace PKISharp.WACS.Services.Serialization
public override void WriteJson(JsonWriter writer, object protectedStr, JsonSerializer serializer)
{
- writer.WriteValue((protectedStr as ProtectedString).DiskValue);
+ writer.WriteValue((protectedStr as ProtectedString).DiskValue(Properties.Settings.Default.EncryptConfig));
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
diff --git a/src/main/Wacs.cs b/src/main/Wacs.cs
index b8758a8..3ad1d62 100644
--- a/src/main/Wacs.cs
+++ b/src/main/Wacs.cs
@@ -353,7 +353,7 @@ namespace PKISharp.WACS
runLevel |= RunLevel.IgnoreCache;
}
_log.Information(LogType.All, "Running in mode: {runLevel}", runLevel);
- var tempRenewal = Renewal.Create(_args.Id, _passwordGenerator);
+ var tempRenewal = Renewal.Create(_args.Id, Properties.Settings.Default.RenewalDays, _passwordGenerator);
using (var configScope = _scopeBuilder.Configuration(_container, tempRenewal, runLevel))
{
// Choose target plugin
diff --git a/src/main/packages.config b/src/main/packages.config
index 8522ce7..505a593 100644
--- a/src/main/packages.config
+++ b/src/main/packages.config
@@ -74,6 +74,7 @@
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net472" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net472" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" />
+ <package id="System.Security.Cryptography.ProtectedData" version="4.5.0" targetFramework="net472" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net472" />
<package id="System.Security.Permissions" version="4.5.0" targetFramework="net472" />
<package id="System.Security.Principal.Windows" version="4.5.1" targetFramework="net472" />
diff --git a/src/main/settings.config b/src/main/settings.config
index 766cadc..09f269d 100644
--- a/src/main/settings.config
+++ b/src/main/settings.config
@@ -1,6 +1,6 @@
<PKISharp.WACS.Properties.Settings>
<setting name="FileDateFormat" serializeAs="String">
- <value>yyyy/M/d H:mm:ss</value>
+ <value>yyyy/MMMM/d H:mm:ss</value>
</setting>
<setting name="RSAKeyBits" serializeAs="String">
<value>3072</value>
diff --git a/src/main/wacs.csproj b/src/main/wacs.csproj
index da73ddb..116ae62 100644
--- a/src/main/wacs.csproj
+++ b/src/main/wacs.csproj
@@ -309,6 +309,9 @@
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
</Reference>
+ <Reference Include="System.Security.Cryptography.ProtectedData, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Security.Cryptography.ProtectedData.4.5.0\lib\net461\System.Security.Cryptography.ProtectedData.dll</HintPath>
+ </Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
@@ -462,7 +465,6 @@
<Compile Include="Services\Legacy\LegacyScheduledRenewal.cs" />
<Compile Include="Services\Legacy\LegacyTarget.cs" />
<Compile Include="Extensions\BindingExtensions.cs" />
- <Compile Include="Extensions\DateExtensions.cs" />
<Compile Include="Extensions\SiteExtensions.cs" />
<Compile Include="MainMenu.cs" />
<Compile Include="Plugins\InstallationPlugins\IISFtp\IISFtp.cs" />
@@ -485,7 +487,6 @@
<Compile Include="Plugins\ValidationPlugins\Http\Sftp\Sftp.cs" />
<Compile Include="Plugins\ValidationPlugins\Http\WebDav\WebDav.cs" />
<Compile Include="Plugins\StorePlugins\CentralSsl\CentralSsl.cs" />
- <Compile Include="DomainObjects\RenewResult.cs" />
<Compile Include="Renew.cs" />
<Compile Include="Services\CertificateService.cs" />
<Compile Include="Plugins\StorePlugins\CertificateStore\CertificateStore.cs" />
@@ -502,7 +503,6 @@
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
- <Compile Include="DomainObjects\Renewal.cs" />
<Compile Include="Services\Legacy\Importer.cs" />
<Compile Include="Services\Legacy\LegacySettingsService.cs" />
<Compile Include="Services\Interfaces\IRenewalService.cs" />
@@ -516,7 +516,6 @@
<Compile Include="Services\Legacy\FileLegacyRenewalService.cs" />
<Compile Include="Services\Legacy\ILegacyRenewalService.cs" />
<Compile Include="Services\Legacy\RegistryLegacyRenewalService.cs" />
- <Compile Include="Services\Serialization\ProtectedString.cs" />
<Compile Include="Services\Serialization\ProtectedStringConverter.cs" />
<Compile Include="Services\Serialization\StoresPluginOptionsConverter.cs" />
<Compile Include="Services\TaskSchedulerService.cs" />