diff options
Diffstat (limited to 'src/main.lib/Plugins/TargetPlugins')
9 files changed, 52 insertions, 53 deletions
diff --git a/src/main.lib/Plugins/TargetPlugins/Csr/Csr.cs b/src/main.lib/Plugins/TargetPlugins/Csr/Csr.cs index 78b2b1b..eb819f5 100644 --- a/src/main.lib/Plugins/TargetPlugins/Csr/Csr.cs +++ b/src/main.lib/Plugins/TargetPlugins/Csr/Csr.cs @@ -28,7 +28,7 @@ namespace PKISharp.WACS.Plugins.TargetPlugins _options = options; } - public Task<Target> Generate() + public async Task<Target?> Generate() { // Read CSR string csrString; @@ -39,7 +39,7 @@ namespace PKISharp.WACS.Plugins.TargetPlugins catch (Exception ex) { _log.Error(ex, "Unable to read CSR from {CsrFile}", _options.CsrFile); - return Task.FromResult<Target>(null); + return null; } // Parse CSR @@ -49,6 +49,10 @@ namespace PKISharp.WACS.Plugins.TargetPlugins try { var pem = _pem.ParsePem<Pkcs10CertificationRequest>(csrString); + if (pem == null) + { + throw new Exception("Unable decode PEM bytes to Pkcs10CertificationRequest"); + } var info = pem.GetCertificationRequestInfo(); csrBytes = pem.GetEncoded(); commonName = ParseCn(info); @@ -61,10 +65,10 @@ namespace PKISharp.WACS.Plugins.TargetPlugins catch (Exception ex) { _log.Error(ex, "Unable to parse CSR"); - return Task.FromResult<Target>(null); + return null; } - AsymmetricKeyParameter pkBytes = null; + AsymmetricKeyParameter? pkBytes = null; if (!string.IsNullOrWhiteSpace(_options.PkFile)) { // Read PK @@ -100,18 +104,16 @@ namespace PKISharp.WACS.Plugins.TargetPlugins } } - return Task.FromResult(new Target() + return new Target() { FriendlyName = $"[{nameof(Csr)}] {_options.CsrFile}", CommonName = commonName, Parts = new List<TargetPart> { - new TargetPart { - Identifiers = alternativeNames - } + new TargetPart(alternativeNames) }, CsrBytes = csrBytes, PrivateKey = pkBytes - }); + }; } /// <summary> @@ -173,7 +175,7 @@ namespace PKISharp.WACS.Plugins.TargetPlugins return names.GetNames().Select(x => ProcessName(x.Name.ToString())); } - private T GetAsn1ObjectRecursive<T>(DerSequence sequence, string id) where T : Asn1Object + private T? GetAsn1ObjectRecursive<T>(DerSequence sequence, string id) where T : Asn1Object { if (sequence.OfType<DerObjectIdentifier>().Any(o => o.Id == id)) { diff --git a/src/main.lib/Plugins/TargetPlugins/Csr/CsrArguments.cs b/src/main.lib/Plugins/TargetPlugins/Csr/CsrArguments.cs index b2eb910..0564831 100644 --- a/src/main.lib/Plugins/TargetPlugins/Csr/CsrArguments.cs +++ b/src/main.lib/Plugins/TargetPlugins/Csr/CsrArguments.cs @@ -2,8 +2,8 @@ { internal class CsrArguments { - public string CsrFile { get; set; } + public string? CsrFile { get; set; } - public string PkFile { get; set; } + public string? PkFile { get; set; } } } diff --git a/src/main.lib/Plugins/TargetPlugins/Csr/CsrOptionsFactory.cs b/src/main.lib/Plugins/TargetPlugins/Csr/CsrOptionsFactory.cs index 2e4b7e2..a51ac09 100644 --- a/src/main.lib/Plugins/TargetPlugins/Csr/CsrOptionsFactory.cs +++ b/src/main.lib/Plugins/TargetPlugins/Csr/CsrOptionsFactory.cs @@ -18,7 +18,7 @@ namespace PKISharp.WACS.Plugins.TargetPlugins public override int Order => 6; - public override async Task<CsrOptions> Aquire(IInputService inputService, RunLevel runLevel) + public override async Task<CsrOptions?> Aquire(IInputService inputService, RunLevel runLevel) { var args = _arguments.GetArguments<CsrArguments>(); var ret = new CsrOptions(); @@ -31,7 +31,7 @@ namespace PKISharp.WACS.Plugins.TargetPlugins } while (!ret.CsrFile.ValidFile(_log)); - string pkFile; + string? pkFile; do { pkFile = await _arguments.TryGetArgument(args.CsrFile, @@ -48,25 +48,25 @@ namespace PKISharp.WACS.Plugins.TargetPlugins return ret; } - public override Task<CsrOptions> Default() + public override async Task<CsrOptions?> Default() { var args = _arguments.GetArguments<CsrArguments>(); if (!args.CsrFile.ValidFile(_log)) { - return Task.FromResult(default(CsrOptions)); + return null; } if (!string.IsNullOrEmpty(args.PkFile)) { if (!args.PkFile.ValidFile(_log)) { - return Task.FromResult(default(CsrOptions)); + return null; } } - return Task.FromResult(new CsrOptions() + return new CsrOptions() { CsrFile = args.CsrFile, PkFile = string.IsNullOrWhiteSpace(args.PkFile) ? null : args.PkFile - }); + }; } } } diff --git a/src/main.lib/Plugins/TargetPlugins/IIS/IIS.cs b/src/main.lib/Plugins/TargetPlugins/IIS/IIS.cs index bcfa395..2a70663 100644 --- a/src/main.lib/Plugins/TargetPlugins/IIS/IIS.cs +++ b/src/main.lib/Plugins/TargetPlugins/IIS/IIS.cs @@ -80,10 +80,9 @@ namespace PKISharp.WACS.Plugins.TargetPlugins CommonName = cnValid ? cn : filteredBindings.First().HostUnicode, Parts = filteredBindings. GroupBy(x => x.SiteId). - Select(group => new TargetPart + Select(group => new TargetPart(group.Select(x => x.HostUnicode)) { - SiteId = group.Key, - Identifiers = group.Select(x => x.HostUnicode).ToList() + SiteId = group.Key }). ToList() }; diff --git a/src/main.lib/Plugins/TargetPlugins/IIS/IISOptionsFactory.cs b/src/main.lib/Plugins/TargetPlugins/IIS/IISOptionsFactory.cs index 53bcb53..fa6333d 100644 --- a/src/main.lib/Plugins/TargetPlugins/IIS/IISOptionsFactory.cs +++ b/src/main.lib/Plugins/TargetPlugins/IIS/IISOptionsFactory.cs @@ -218,7 +218,7 @@ namespace PKISharp.WACS.Plugins.TargetPlugins } // Now the common name - if (filtered.Count > 1) + if (filtered.Select(x => x.HostUnicode).Distinct().Count() > 1) { // If no bindings have been excluded, we can re-use // the previously printed list @@ -399,21 +399,18 @@ namespace PKISharp.WACS.Plugins.TargetPlugins if (!runLevel.HasFlag(RunLevel.Advanced) && binding.Wildcard) { return ConsoleColor.Red; - } - if (binding.HostUnicode == highlight) + } + else if (binding.HostUnicode == highlight) { return ConsoleColor.Green; } + else if (binding.Https) + { + return ConsoleColor.DarkGray; + } else { - if (binding.Https) - { - return ConsoleColor.DarkGray; - } - else - { - return default(ConsoleColor); - } + return default(ConsoleColor?); } } diff --git a/src/main.lib/Plugins/TargetPlugins/Manual/Manual.cs b/src/main.lib/Plugins/TargetPlugins/Manual/Manual.cs index 72edb90..de82b5a 100644 --- a/src/main.lib/Plugins/TargetPlugins/Manual/Manual.cs +++ b/src/main.lib/Plugins/TargetPlugins/Manual/Manual.cs @@ -11,18 +11,16 @@ namespace PKISharp.WACS.Plugins.TargetPlugins public Manual(ManualOptions options) => _options = options; - public Task<Target> Generate() + public async Task<Target?> Generate() { - return Task.FromResult(new Target() + return new Target() { FriendlyName = $"[{nameof(Manual)}] {_options.CommonName}", CommonName = _options.CommonName, Parts = new List<TargetPart> { - new TargetPart { - Identifiers = _options.AlternativeNames - } + new TargetPart(_options.AlternativeNames) } - }); + }; } bool IPlugin.Disabled => false; diff --git a/src/main.lib/Plugins/TargetPlugins/Manual/ManualArguments.cs b/src/main.lib/Plugins/TargetPlugins/Manual/ManualArguments.cs index a6199b3..b887b1d 100644 --- a/src/main.lib/Plugins/TargetPlugins/Manual/ManualArguments.cs +++ b/src/main.lib/Plugins/TargetPlugins/Manual/ManualArguments.cs @@ -2,7 +2,7 @@ { internal class ManualArguments { - public string CommonName { get; set; } - public string Host { get; set; } + public string? CommonName { get; set; } + public string? Host { get; set; } } } diff --git a/src/main.lib/Plugins/TargetPlugins/Manual/ManualOptions.cs b/src/main.lib/Plugins/TargetPlugins/Manual/ManualOptions.cs index 2b72f70..f7a8e47 100644 --- a/src/main.lib/Plugins/TargetPlugins/Manual/ManualOptions.cs +++ b/src/main.lib/Plugins/TargetPlugins/Manual/ManualOptions.cs @@ -13,8 +13,8 @@ namespace PKISharp.WACS.Plugins.TargetPlugins public override string Name => "Manual"; public override string Description => DescriptionText; - public string CommonName { get; set; } - public List<string> AlternativeNames { get; set; } + public string? CommonName { get; set; } + public List<string>? AlternativeNames { get; set; } public override void Show(IInputService input) { diff --git a/src/main.lib/Plugins/TargetPlugins/Manual/ManualOptionsFactory.cs b/src/main.lib/Plugins/TargetPlugins/Manual/ManualOptionsFactory.cs index c0b3fb6..363f839 100644 --- a/src/main.lib/Plugins/TargetPlugins/Manual/ManualOptionsFactory.cs +++ b/src/main.lib/Plugins/TargetPlugins/Manual/ManualOptionsFactory.cs @@ -11,7 +11,7 @@ namespace PKISharp.WACS.Plugins.TargetPlugins private readonly IArgumentsService _arguments; public ManualOptionsFactory(IArgumentsService arguments) => _arguments = arguments; public override int Order => 5; - public override async Task<ManualOptions> Aquire(IInputService inputService, RunLevel runLevel) + public override async Task<ManualOptions?> Aquire(IInputService inputService, RunLevel runLevel) { var input = await inputService.RequestString("Enter comma-separated list of host names, starting with the common name"); if (string.IsNullOrEmpty(input)) @@ -24,25 +24,28 @@ namespace PKISharp.WACS.Plugins.TargetPlugins } } - public override Task<ManualOptions> Default() + public override async Task<ManualOptions?> Default() { var args = _arguments.GetArguments<ManualArguments>(); var input = _arguments.TryGetRequiredArgument(nameof(args.Host), args.Host); var ret = Create(input); - var commonName = args.CommonName; - if (!string.IsNullOrWhiteSpace(commonName)) + if (ret != null) { - commonName = commonName.ToLower().Trim().ConvertPunycode(); - ret.CommonName = commonName; - if (!ret.AlternativeNames.Contains(commonName)) + var commonName = args.CommonName; + if (!string.IsNullOrWhiteSpace(commonName)) { - ret.AlternativeNames.Insert(0, commonName); + commonName = commonName.ToLower().Trim().ConvertPunycode(); + ret.CommonName = commonName; + if (!ret.AlternativeNames.Contains(commonName)) + { + ret.AlternativeNames.Insert(0, commonName); + } } } - return Task.FromResult(ret); + return ret; } - private ManualOptions Create(string input) + private ManualOptions? Create(string? input) { var sanList = input.ParseCsv().Select(x => x.ConvertPunycode()); if (sanList != null) |