diff options
Diffstat (limited to 'src/main.lib/Plugins/StorePlugins')
13 files changed, 47 insertions, 44 deletions
diff --git a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs index 21d6fa5..3103e36 100644 --- a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs +++ b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSsl.cs @@ -15,7 +15,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins { private readonly ILogService _log; private readonly string _path; - private readonly string _password; + private readonly string? _password; public CentralSsl(ILogService log, ISettingsService settings, CentralSslOptions options) { @@ -25,17 +25,18 @@ namespace PKISharp.WACS.Plugins.StorePlugins options.PfxPassword.Value : settings.Store.DefaultCentralSslPfxPassword; - _path = !string.IsNullOrWhiteSpace(options.Path) ? + var path = !string.IsNullOrWhiteSpace(options.Path) ? options.Path : settings.Store.DefaultCentralSslStore; - if (_path.ValidPath(log)) + if (path != null && path.ValidPath(log)) { + _path = path; _log.Debug("Using Centralized SSL path: {_path}", _path); } else { - throw new Exception($"Specified CentralSsl path {_path} is not valid."); + throw new Exception($"Specified CentralSsl path {path} is not valid."); } } @@ -89,9 +90,9 @@ namespace PKISharp.WACS.Plugins.StorePlugins /// </summary> /// <param name="fi"></param> /// <returns></returns> - private X509Certificate2 LoadCertificate(FileInfo fi) + private X509Certificate2? LoadCertificate(FileInfo fi) { - X509Certificate2 cert = null; + X509Certificate2? cert = null; try { cert = new X509Certificate2(fi.FullName, _password); diff --git a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslArguments.cs b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslArguments.cs index 81edb3b..fab782e 100644 --- a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslArguments.cs +++ b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslArguments.cs @@ -3,7 +3,7 @@ internal class CentralSslArguments { public bool KeepExisting { get; set; } - public string CentralSslStore { get; set; } - public string PfxPassword { get; set; } + public string? CentralSslStore { get; set; } + public string? PfxPassword { get; set; } } } diff --git a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslOptions.cs b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslOptions.cs index 35efe49..9579d47 100644 --- a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslOptions.cs +++ b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslOptions.cs @@ -12,13 +12,13 @@ namespace PKISharp.WACS.Plugins.StorePlugins /// <summary> /// Path to the Central Ssl store /// </summary> - public string Path { get; set; } + public string? Path { get; set; } /// <summary> /// PfxFile password /// </summary> [JsonProperty(propertyName: "PfxPasswordProtected")] - public ProtectedString PfxPassword { get; set; } + public ProtectedString? PfxPassword { get; set; } internal const string PluginName = "CentralSsl"; public override string Name => PluginName; diff --git a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslOptionsFactory.cs b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslOptionsFactory.cs index b22c69e..cd8fe09 100644 --- a/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslOptionsFactory.cs +++ b/src/main.lib/Plugins/StorePlugins/CentralSsl/CentralSslOptionsFactory.cs @@ -20,7 +20,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins _settings = settings; } - public override async Task<CentralSslOptions> Aquire(IInputService input, RunLevel runLevel) + public override async Task<CentralSslOptions?> Aquire(IInputService input, RunLevel runLevel) { var args = _arguments.GetArguments<CentralSslArguments>(); @@ -45,10 +45,10 @@ namespace PKISharp.WACS.Plugins.StorePlugins { password = await input.ReadPassword("Password to use for the PFX files, or enter for none"); } - return await Create(path, password, args.KeepExisting); + return Create(path, password, args.KeepExisting); } - public override Task<CentralSslOptions> Default() + public override async Task<CentralSslOptions?> Default() { var args = _arguments.GetArguments<CentralSslArguments>(); var path = _settings.Store.DefaultCentralSslStore; @@ -63,7 +63,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins password = args.PfxPassword; } - if (path.ValidPath(_log)) + if (path != null && path.ValidPath(_log)) { return Create(path, password, args.KeepExisting); } @@ -73,7 +73,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins } } - private Task<CentralSslOptions> Create(string path, string password, bool keepExisting) + private CentralSslOptions Create(string path, string? password, bool keepExisting) { var ret = new CentralSslOptions { @@ -87,7 +87,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins { ret.Path = path; } - return Task.FromResult(ret); + return ret; } } } diff --git a/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStore.cs b/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStore.cs index 253fe2d..4f2e8aa 100644 --- a/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStore.cs +++ b/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStore.cs @@ -19,7 +19,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins private readonly ILogService _log; private readonly ISettingsService _settings; private const string _defaultStoreName = nameof(StoreName.My); - private string _storeName; + private string? _storeName; private readonly X509Store _store; private readonly IIISClient _iisClient; private readonly CertificateStoreOptions _options; @@ -152,9 +152,9 @@ namespace PKISharp.WACS.Plugins.StorePlugins return Task.CompletedTask; } - public CertificateInfo FindByThumbprint(string thumbprint) => ToInfo(GetCertificate(CertificateService.ThumbprintFilter(thumbprint))); + public CertificateInfo? FindByThumbprint(string thumbprint) => ToInfo(GetCertificate(CertificateService.ThumbprintFilter(thumbprint))); - private CertificateInfo? ToInfo(X509Certificate2 cert) + private CertificateInfo? ToInfo(X509Certificate2? cert) { if (cert != null) { @@ -265,7 +265,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins _store.Close(); } - private X509Certificate2 GetCertificate(Func<X509Certificate2, bool> filter) + private X509Certificate2? GetCertificate(Func<X509Certificate2, bool> filter) { var possibles = new List<X509Certificate2>(); try diff --git a/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreArguments.cs b/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreArguments.cs index e38a9c3..df0ea00 100644 --- a/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreArguments.cs +++ b/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreArguments.cs @@ -3,7 +3,7 @@ internal class CertificateStoreArguments { public bool KeepExisting { get; set; } - public string CertificateStore { get; set; } - public string AclFullControl { get; set; } + public string? CertificateStore { get; set; } + public string? AclFullControl { get; set; } } } diff --git a/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreOptions.cs b/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreOptions.cs index fa4ec5f..b217d8a 100644 --- a/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreOptions.cs +++ b/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreOptions.cs @@ -15,12 +15,12 @@ namespace PKISharp.WACS.Plugins.StorePlugins /// <summary> /// Name of the certificate store to use /// </summary> - public string StoreName { get; set; } + public string? StoreName { get; set; } /// <summary> /// Name of the certificate store to use /// </summary> - public List<string> AclFullControl { get; set; } + public List<string>? AclFullControl { get; set; } public override void Show(IInputService input) { diff --git a/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreOptionsFactory.cs b/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreOptionsFactory.cs index 03dc288..edcb802 100644 --- a/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreOptionsFactory.cs +++ b/src/main.lib/Plugins/StorePlugins/CertificateStore/CertificateStoreOptionsFactory.cs @@ -15,9 +15,9 @@ namespace PKISharp.WACS.Plugins.StorePlugins Disabled = !userRoleService.IsAdmin; } - public override Task<CertificateStoreOptions> Aquire(IInputService inputService, RunLevel runLevel) => Default(); + public override Task<CertificateStoreOptions?> Aquire(IInputService inputService, RunLevel runLevel) => Default(); - public override Task<CertificateStoreOptions> Default() + public override async Task<CertificateStoreOptions?> Default() { var args = _arguments.GetArguments<CertificateStoreArguments>(); var ret = new CertificateStoreOptions { @@ -25,7 +25,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins KeepExisting = args.KeepExisting, AclFullControl = args.AclFullControl.ParseCsv() }; - return Task.FromResult(ret); + return ret; } } } diff --git a/src/main.lib/Plugins/StorePlugins/CertificateStore/FindPrivateKey.cs b/src/main.lib/Plugins/StorePlugins/CertificateStore/FindPrivateKey.cs index 7f8efb0..7c2c07b 100644 --- a/src/main.lib/Plugins/StorePlugins/CertificateStore/FindPrivateKey.cs +++ b/src/main.lib/Plugins/StorePlugins/CertificateStore/FindPrivateKey.cs @@ -16,7 +16,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins public FindPrivateKey(ILogService log) => _log = log; - internal FileInfo Find(X509Certificate2 cert) + internal FileInfo? Find(X509Certificate2 cert) { string file; string dir; @@ -47,7 +47,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins var freeProvider = false; // Do we need to free the CSP ? uint acquireFlags = 0; var _keyNumber = 0; - string keyFileName = null; + string? keyFileName = null; // Determine whether there is private key information available for this certificate in the key store if (CryptAcquireCertificatePrivateKey(cert.Handle, acquireFlags, IntPtr.Zero, ref hProvider, ref _keyNumber, ref freeProvider)) diff --git a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs index be7e2fb..4966053 100644 --- a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs +++ b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFiles.cs @@ -24,16 +24,17 @@ namespace PKISharp.WACS.Plugins.StorePlugins { _log = log; _pemService = pemService; - _path = !string.IsNullOrWhiteSpace(options.Path) ? + var path = !string.IsNullOrWhiteSpace(options.Path) ? options.Path : settings.Store.DefaultPemFilesPath; - if (_path.ValidPath(log)) + if (path != null && _path.ValidPath(log)) { - _log.Debug("Using .pem certificate path: {_path}", _path); + _log.Debug("Using .pem certificate path: {path}", path); + _path = path; } else { - throw new Exception($"Specified PemFiles path {_path} is not valid."); + throw new Exception($"Specified PemFiles path {path} is not valid."); } } @@ -106,7 +107,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins public Task Delete(CertificateInfo input) => Task.CompletedTask; - public CertificateInfo FindByThumbprint() => null; + public CertificateInfo? FindByThumbprint() => null; bool IPlugin.Disabled => false; } diff --git a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesArguments.cs b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesArguments.cs index 0f6b2b9..034fcc8 100644 --- a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesArguments.cs +++ b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesArguments.cs @@ -2,6 +2,6 @@ { internal class PemFilesArguments { - public string PemFilesPath { get; set; } + public string? PemFilesPath { get; set; } } } diff --git a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesOptions.cs b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesOptions.cs index 14b60c6..4fb5892 100644 --- a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesOptions.cs +++ b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesOptions.cs @@ -7,15 +7,16 @@ namespace PKISharp.WACS.Plugins.StorePlugins [Plugin("e57c70e4-cd60-4ba6-80f6-a41703e21031")] internal class PemFilesOptions : StorePluginOptions<PemFiles> { - /// <summary> - /// Path to the .pem directory - /// </summary> - public string Path { get; set; } internal const string PluginName = "PemFiles"; public override string Name => PluginName; public override string Description => "PEM encoded files (Apache, nginx, etc.)"; /// <summary> + /// Path to the .pem directory + /// </summary> + public string? Path { get; set; } + + /// <summary> /// Show details to the user /// </summary> /// <param name="input"></param> diff --git a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesOptionsFactory.cs b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesOptionsFactory.cs index 6429c66..02a26cf 100644 --- a/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesOptionsFactory.cs +++ b/src/main.lib/Plugins/StorePlugins/PemFiles/PemFilesOptionsFactory.cs @@ -19,7 +19,7 @@ namespace PKISharp.WACS.Plugins.StorePlugins _settings = settings; } - public override async Task<PemFilesOptions> Aquire(IInputService input, RunLevel runLevel) + public override async Task<PemFilesOptions?> Aquire(IInputService input, RunLevel runLevel) { var args = _arguments.GetArguments<PemFilesArguments>(); var path = args.PemFilesPath; @@ -31,10 +31,10 @@ namespace PKISharp.WACS.Plugins.StorePlugins { path = await input.RequestString("Path to folder where .pem files are stored"); } - return await Create(path); + return Create(path); } - public override Task<PemFilesOptions> Default() + public override async Task<PemFilesOptions?> Default() { var args = _arguments.GetArguments<PemFilesArguments>(); var path = _settings.Store.DefaultPemFilesPath; @@ -52,14 +52,14 @@ namespace PKISharp.WACS.Plugins.StorePlugins } } - private Task<PemFilesOptions> Create(string path) + private PemFilesOptions Create(string path) { var ret = new PemFilesOptions(); if (!string.Equals(path, _settings.Store.DefaultPemFilesPath, StringComparison.CurrentCultureIgnoreCase)) { ret.Path = path; } - return Task.FromResult(ret); + return ret; } } |