summaryrefslogtreecommitdiffstats
path: root/src/main.lib/Plugins/TargetPlugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.lib/Plugins/TargetPlugins')
-rw-r--r--src/main.lib/Plugins/TargetPlugins/Csr/Csr.cs22
-rw-r--r--src/main.lib/Plugins/TargetPlugins/Csr/CsrArguments.cs4
-rw-r--r--src/main.lib/Plugins/TargetPlugins/Csr/CsrOptionsFactory.cs14
-rw-r--r--src/main.lib/Plugins/TargetPlugins/IIS/IIS.cs5
-rw-r--r--src/main.lib/Plugins/TargetPlugins/IIS/IISOptionsFactory.cs19
-rw-r--r--src/main.lib/Plugins/TargetPlugins/Manual/Manual.cs10
-rw-r--r--src/main.lib/Plugins/TargetPlugins/Manual/ManualArguments.cs4
-rw-r--r--src/main.lib/Plugins/TargetPlugins/Manual/ManualOptions.cs4
-rw-r--r--src/main.lib/Plugins/TargetPlugins/Manual/ManualOptionsFactory.cs23
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)