diff --git a/.github/workflows/keyfactor-starter-workflow.yml b/.github/workflows/keyfactor-starter-workflow.yml index 729a5a2..c9b180c 100644 --- a/.github/workflows/keyfactor-starter-workflow.yml +++ b/.github/workflows/keyfactor-starter-workflow.yml @@ -11,10 +11,17 @@ on: jobs: call-starter-workflow: - uses: keyfactor/actions/.github/workflows/starter.yml@3.1.2-rc.0 + uses: keyfactor/actions/.github/workflows/starter.yml@v4 + with: + command_token_url: ${{ vars.COMMAND_TOKEN_URL }} # Only required for doctool generated screenshots + command_hostname: ${{ vars.COMMAND_HOSTNAME }} # Only required for doctool generated screenshots + command_base_api_path: ${{ vars.COMMAND_API_PATH }} # Only required for doctool generated screenshots secrets: - token: ${{ secrets.V2BUILDTOKEN}} - APPROVE_README_PUSH: ${{ secrets.APPROVE_README_PUSH}} - gpg_key: ${{ secrets.KF_GPG_PRIVATE_KEY }} - gpg_pass: ${{ secrets.KF_GPG_PASSPHRASE }} - scan_token: ${{ secrets.SAST_TOKEN }} + token: ${{ secrets.V2BUILDTOKEN}} # REQUIRED + gpg_key: ${{ secrets.KF_GPG_PRIVATE_KEY }} # Only required for golang builds + gpg_pass: ${{ secrets.KF_GPG_PASSPHRASE }} # Only required for golang builds + scan_token: ${{ secrets.SAST_TOKEN }} # REQUIRED + entra_username: ${{ secrets.DOCTOOL_ENTRA_USERNAME }} # Only required for doctool generated screenshots + entra_password: ${{ secrets.DOCTOOL_ENTRA_PASSWD }} # Only required for doctool generated screenshots + command_client_id: ${{ secrets.COMMAND_CLIENT_ID }} # Only required for doctool generated screenshots + command_client_secret: ${{ secrets.COMMAND_CLIENT_SECRET }} # Only required for doctool generated screenshots \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f77500..02d8618 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +3.0.0 +* Add StorePassword as an option to allow clients to encrypt private keys with passwords in situations where their Citrix settings require a password protected key +* Add optional custom field to set timeout for login + 2.2.1 * Add ServerUsername and ServerPassword to the integration-manifest.json to add both fields to the README documentation. diff --git a/CitrixAdcOrchestratorJobExtension.sln b/CitrixAdcOrchestratorJobExtension.sln index adadc00..8277207 100644 --- a/CitrixAdcOrchestratorJobExtension.sln +++ b/CitrixAdcOrchestratorJobExtension.sln @@ -1,12 +1,10 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31229.75 +# Visual Studio Version 17 +VisualStudioVersion = 17.13.35931.197 d17.13 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Keyfactor.Extensions.Orchestrator.CitricAdc", "CitrixAdcOrchestratorJobExtension\Keyfactor.Extensions.Orchestrator.CitricAdc.csproj", "{2B3106BF-A1B4-4BCC-9650-597B576E14D0}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CitrixAdcTestConsole", "CitrixAdcTestConsole\CitrixAdcTestConsole.csproj", "{28D3BFB3-1484-4A4A-9BC1-3D20255943FD}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -17,10 +15,6 @@ Global {2B3106BF-A1B4-4BCC-9650-597B576E14D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {2B3106BF-A1B4-4BCC-9650-597B576E14D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {2B3106BF-A1B4-4BCC-9650-597B576E14D0}.Release|Any CPU.Build.0 = Release|Any CPU - {28D3BFB3-1484-4A4A-9BC1-3D20255943FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28D3BFB3-1484-4A4A-9BC1-3D20255943FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28D3BFB3-1484-4A4A-9BC1-3D20255943FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28D3BFB3-1484-4A4A-9BC1-3D20255943FD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CitrixAdcOrchestratorJobExtension/CitrixAdcStore.cs b/CitrixAdcOrchestratorJobExtension/CitrixAdcStore.cs index 4fc6c2a..a953f01 100644 --- a/CitrixAdcOrchestratorJobExtension/CitrixAdcStore.cs +++ b/CitrixAdcOrchestratorJobExtension/CitrixAdcStore.cs @@ -16,10 +16,8 @@ using System.IO; using System.Linq; using System.Collections.Generic; -using System.Runtime.ConstrainedExecution; using System.Security.Cryptography.X509Certificates; using System.Text; -using System.Xml.Linq; using com.citrix.netscaler.nitro.exception; using com.citrix.netscaler.nitro.resource.Base; using com.citrix.netscaler.nitro.resource.config.ssl; @@ -28,18 +26,22 @@ using com.citrix.netscaler.nitro.util; using Keyfactor.Logging; using Keyfactor.Orchestrators.Extensions; +using Keyfactor.PKI.CryptographicObjects.Formatters; +using Keyfactor.PKI.PEM; +using Keyfactor.PKI.PrivateKeys; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.OpenSsl; using Org.BouncyCastle.Pkcs; +using Keyfactor.Orchestrators.Common.Enums; namespace Keyfactor.Extensions.Orchestrator.CitricAdc { // ReSharper disable once InconsistentNaming internal class CitrixAdcStore { - private const uint Timeout = 3600; + private const string DefaultTimeout = "3600"; public static readonly string StoreType = "CitrixAdc"; private readonly string _clientMachine; @@ -50,6 +52,7 @@ internal class CitrixAdcStore public readonly string StorePath; private readonly string _username; private readonly bool _useSsl; + private uint _timeout; private nitro_service _nss; @@ -60,6 +63,8 @@ public CitrixAdcStore(InventoryJobConfiguration config, string serverUserName, s Logger = LogHandler.GetClassLogger(); Logger.MethodEntry(LogLevel.Debug); + SetTimeout(JsonConvert.DeserializeObject(config.CertificateStoreDetails.Properties.ToString())); + _clientMachine = config.CertificateStoreDetails.ClientMachine; StorePath = StripTrailingSlash(config.CertificateStoreDetails.StorePath); var o = new systemfile_args(); @@ -93,6 +98,8 @@ public CitrixAdcStore(ManagementJobConfiguration config, string serverUserName, Logger = LogHandler.GetClassLogger(); Logger.MethodEntry(LogLevel.Debug); + SetTimeout(JsonConvert.DeserializeObject(config.CertificateStoreDetails.Properties.ToString())); + _clientMachine = config.CertificateStoreDetails.ClientMachine; StorePath = StripTrailingSlash(config.CertificateStoreDetails.StorePath); _useSsl = config.UseSSL; @@ -125,11 +132,14 @@ public CitrixAdcStore(ManagementJobConfiguration config, string serverUserName, public void Login() { Logger.MethodEntry(LogLevel.Debug); + Logger.LogTrace($"Timeout Value Used: {_timeout}"); _nss ??= new nitro_service(_clientMachine, _useSsl ? "https" : "http"); + _nss.set_timeout(_timeout); + base_response response = null; try { - response = _nss.login(_username, _password, Timeout); + response = _nss.login(_username, _password, _timeout); Logger.LogDebug($"Login Response: {JsonConvert.SerializeObject(response)}"); } catch (Exception ex) @@ -287,7 +297,7 @@ public string FindKeyPairByCertPath(string certPath) } } - public void UpdateKeyPair(string keyPairName, string certFileName, string keyFileName) + public void UpdateKeyPair(string keyPairName, string certFileName, string keyFileName, string keyPassword) { Logger.MethodEntry(LogLevel.Debug); @@ -302,8 +312,8 @@ public void UpdateKeyPair(string keyPairName, string certFileName, string keyFil key = keyFileName, inform = "PEM", nodomaincheck = true, - passplain = "0", - password = false + passplain = keyPassword, + password = keyPassword == null ? null : false }; var filters = new filtervalue[1]; @@ -328,8 +338,9 @@ public void UpdateKeyPair(string keyPairName, string certFileName, string keyFil } catch (nitro_exception ne) { - Logger.LogError($"Exception occured while trying to add or update {keyPairName}. {LogHandler.FlattenException(ne)}"); - throw; + string error = $"Exception occured while trying to add or update {keyPairName}."; + Logger.LogError(error + LogHandler.FlattenException(ne)); + throw new Exception(error, ne); } Logger.MethodExit(LogLevel.Debug); @@ -478,47 +489,33 @@ public void LinkToIssuer(string cert, string privateKeyPassword, string keyPairN Logger.MethodExit(LogLevel.Debug); } - private (string, string) GetPemFromPfx(byte[] pfxBytes, char[] pfxPassword) + private (string, string) GetPemFromPfx(byte[] pfxBytes, char[] pfxPassword, string storePassword) { Logger.MethodEntry(LogLevel.Debug); try { - var p = new Pkcs12Store(new MemoryStream(pfxBytes), pfxPassword); + Pkcs12StoreBuilder storeBuilder = new Pkcs12StoreBuilder(); + Pkcs12Store store = storeBuilder.Build(); + store.Load(new MemoryStream(pfxBytes), pfxPassword); - // Extract private key - var memoryStream = new MemoryStream(); - TextWriter streamWriter = new StreamWriter(memoryStream); - var pemWriter = new PemWriter(streamWriter); + var alias = store.Aliases.Cast().SingleOrDefault(p => store.IsKeyEntry(p)); - var alias = p.Aliases.Cast().SingleOrDefault(a => p.IsKeyEntry(a)); - Logger.LogTrace($"alias: {alias}"); + X509CertificateEntry[] chainEntries = store.GetCertificateChain(alias); + Org.BouncyCastle.X509.X509Certificate endCertificate = chainEntries[0].Certificate; - var publicKey = p.GetCertificate(alias).Certificate.GetPublicKey(); - if (p.GetKey(alias) == null) throw new Exception($"Unable to get the key for alias: {alias}"); - var privateKey = p.GetKey(alias).Key; - var keyPair = new AsymmetricCipherKeyPair(publicKey, privateKey); + AsymmetricKeyParameter privateKey = store.GetKey(alias).Key; + PrivateKeyConverter keyConverter = PrivateKeyConverterFactory.FromBCPrivateKeyAndCert(privateKey, endCertificate); - pemWriter.WriteObject(keyPair.Private); - streamWriter.Flush(); - var privateKeyString = Encoding.ASCII.GetString(memoryStream.GetBuffer()).Trim().Replace("\r", "") - .Replace("\0", ""); - memoryStream.Close(); - streamWriter.Close(); + string pemString = CryptographicObjectFormatter.PEM.Format(endCertificate, false); + string keyString = string.Empty; - // Extract server certificate - var certStart = "-----BEGIN CERTIFICATE-----\n"; - var certEnd = "\n-----END CERTIFICATE-----"; - - string Pemify(string ss) - { - return ss.Length <= 64 ? ss : ss.Substring(0, 64) + "\n" + Pemify(ss.Substring(64)); - } + if (string.IsNullOrEmpty(storePassword)) + keyString = PemUtilities.DERToPEM(keyConverter.ToPkcs8BlobUnencrypted(), Keyfactor.PKI.PEM.PemUtilities.PemObjectType.PrivateKey); + else + keyString = CryptographicObjectFormatter.PEM.Format(keyConverter, storePassword); - var certPem = - certStart + Pemify(Convert.ToBase64String(p.GetCertificate(alias).Certificate.GetEncoded())) + - certEnd; - return (certPem, privateKeyString); + return (pemString, keyString); } catch (Exception e) { @@ -611,14 +608,14 @@ private systemfile GetSystemFile(string fileName) } } - public (systemfile pemFile, systemfile privateKeyFile) UploadCertificate(string contents, string pwd, + public (systemfile pemFile, systemfile privateKeyFile) UploadCertificate(string contents, string certTempPassword, string storePassword, string alias, bool overwrite) { Logger.MethodEntry(LogLevel.Debug); try { - var (certificate, privateKey) = GetPemFromPfx(Convert.FromBase64String(contents), pwd.ToCharArray()); + var (certificate, privateKey) = GetPemFromPfx(Convert.FromBase64String(contents), certTempPassword.ToCharArray(), storePassword); //upload certificate and key systemfile certificateFile = UploadFile(alias, certificate, true, 0); @@ -637,6 +634,15 @@ private systemfile GetSystemFile(string fileName) } } + private void SetTimeout(dynamic properties) + { + if (!UInt32.TryParse((properties.timeout == null || string.IsNullOrEmpty(properties.timeout.Value) ? DefaultTimeout : properties.timeout.Value), out _timeout)) + { + Logger.LogWarning($"Invalid Custom Field 'timeout' value {properties.timeout.Value}. Value must be an integer. Will use default value of {DefaultTimeout.ToString()}"); + _timeout = Convert.ToUInt32(DefaultTimeout); + } + } + private systemfile UploadFile(string alias, string contents, bool isCertificate, int fileNameSuffix) { Logger.LogDebug("Entering UploadFile() Method..."); diff --git a/CitrixAdcOrchestratorJobExtension/Inventory.cs b/CitrixAdcOrchestratorJobExtension/Inventory.cs index e328ac9..ff47998 100644 --- a/CitrixAdcOrchestratorJobExtension/Inventory.cs +++ b/CitrixAdcOrchestratorJobExtension/Inventory.cs @@ -22,6 +22,8 @@ using Keyfactor.Orchestrators.Extensions.Interfaces; using com.citrix.netscaler.nitro.resource.config.ssl; +using Newtonsoft.Json; +using Keyfactor.Orchestrators.Common.Enums; namespace Keyfactor.Extensions.Orchestrator.CitricAdc { @@ -49,10 +51,10 @@ public JobResult ProcessJob(InventoryJobConfiguration jobConfiguration, SubmitIn _logger.LogDebug($"Client Machine: {jobConfiguration.CertificateStoreDetails.ClientMachine}"); _logger.LogDebug($"UseSSL: {jobConfiguration.UseSSL}"); _logger.LogDebug($"StorePath: {jobConfiguration.CertificateStoreDetails.StorePath}"); + ServerPassword = ResolvePamField("ServerPassword", jobConfiguration.ServerPassword); ServerUserName = ResolvePamField("ServerUserName", jobConfiguration.ServerUsername); - _logger.LogDebug("Entering ProcessJob"); CitrixAdcStore store = new CitrixAdcStore(jobConfiguration, ServerUserName, ServerPassword); diff --git a/CitrixAdcOrchestratorJobExtension/Keyfactor.Extensions.Orchestrator.CitricAdc.csproj b/CitrixAdcOrchestratorJobExtension/Keyfactor.Extensions.Orchestrator.CitricAdc.csproj index cc4ea4f..17cf4d7 100644 --- a/CitrixAdcOrchestratorJobExtension/Keyfactor.Extensions.Orchestrator.CitricAdc.csproj +++ b/CitrixAdcOrchestratorJobExtension/Keyfactor.Extensions.Orchestrator.CitricAdc.csproj @@ -2,16 +2,15 @@ true - net6.0;net8.0 + net8.0 true disable - - + diff --git a/CitrixAdcOrchestratorJobExtension/Management.cs b/CitrixAdcOrchestratorJobExtension/Management.cs index 88496c3..054d55f 100644 --- a/CitrixAdcOrchestratorJobExtension/Management.cs +++ b/CitrixAdcOrchestratorJobExtension/Management.cs @@ -40,6 +40,8 @@ public class Management : IManagementJobExtension private string ServerPassword { get; set; } + private string StorePassword { get; set; } + public Management(IPAMSecretResolver resolver) { this.resolver = resolver; @@ -61,6 +63,10 @@ public JobResult ProcessJob(ManagementJobConfiguration jobConfiguration) ServerPassword = ResolvePamField("ServerPassword", jobConfiguration.ServerPassword); ServerUserName = ResolvePamField("ServerUserName", jobConfiguration.ServerUsername); + StorePassword = ResolvePamField("StorePassword", jobConfiguration.CertificateStoreDetails.StorePassword); + + dynamic properties = JsonConvert.DeserializeObject(jobConfiguration.CertificateStoreDetails.Properties.ToString()); + var linkToIssuer = properties.linkToIssuer == null || string.IsNullOrEmpty(properties.linkToIssuer.Value) ? false : Convert.ToBoolean(properties.linkToIssuer.Value); ApplicationSettings.Initialize(this.GetType().Assembly.Location); @@ -89,9 +95,6 @@ public JobResult ProcessJob(ManagementJobConfiguration jobConfiguration) var virtualServerName = (string)jobConfiguration.JobProperties["virtualServerName"]; var sniCert = (string)jobConfiguration.JobProperties["sniCert"]; - dynamic properties = JsonConvert.DeserializeObject(jobConfiguration.CertificateStoreDetails.Properties.ToString()); - var linkToIssuer = properties.linkToIssuer == null || string.IsNullOrEmpty(properties.linkToIssuer.Value) ? false : Convert.ToBoolean(properties.linkToIssuer.Value); - _logger.LogTrace($"alias: {jobConfiguration.JobCertificate.Alias} virtualServerName {virtualServerName}"); if (!aliasExists) @@ -126,7 +129,7 @@ public JobResult ProcessJob(ManagementJobConfiguration jobConfiguration) } } - PerformAdd(store, jobConfiguration.JobCertificate, virtualServerNames, + PerformAdd(store, jobConfiguration.JobCertificate, StorePassword, virtualServerNames, aliasExists, jobConfiguration.Overwrite, sniCerts, linkToIssuer); if (ApplicationSettings.AutoSaveConfig) @@ -162,7 +165,7 @@ public JobResult ProcessJob(ManagementJobConfiguration jobConfiguration) { Result = OrchestratorJobStatusJobResult.Warning, JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = ex.Message + FailureMessage = LogHandler.FlattenException(ex, true) }; } catch (Exception ex) @@ -172,7 +175,7 @@ public JobResult ProcessJob(ManagementJobConfiguration jobConfiguration) { Result = OrchestratorJobStatusJobResult.Failure, JobHistoryId = jobConfiguration.JobHistoryId, - FailureMessage = ex.Message + FailureMessage = LogHandler.FlattenException(ex, true) }; } @@ -191,15 +194,15 @@ public JobResult ProcessJob(ManagementJobConfiguration jobConfiguration) return result; } - private void PerformAdd(CitrixAdcStore store, ManagementJobCertificate cert, + private void PerformAdd(CitrixAdcStore store, ManagementJobCertificate cert, string storePassword, List virtualServerNames, bool aliasExists, bool overwrite, List sniCerts, bool linkToIssuer) { _logger.MethodEntry(LogLevel.Debug); _logger.LogDebug("Updating keyPair"); - var (pemFile, privateKeyFile) = store.UploadCertificate(cert.Contents, cert.PrivateKeyPassword, cert.Alias, overwrite); - store.UpdateKeyPair(cert.Alias, pemFile.filename, privateKeyFile.filename); + var (pemFile, privateKeyFile) = store.UploadCertificate(cert.Contents, cert.PrivateKeyPassword, storePassword, cert.Alias, overwrite); + store.UpdateKeyPair(cert.Alias, pemFile.filename, privateKeyFile.filename, storePassword); _logger.LogDebug("Updating cert bindings"); //update cert bindings diff --git a/CitrixAdcTestConsole/CitrixAdcTestConsole.csproj b/CitrixAdcTestConsole/CitrixAdcTestConsole.csproj index 448a5dc..1165aed 100644 --- a/CitrixAdcTestConsole/CitrixAdcTestConsole.csproj +++ b/CitrixAdcTestConsole/CitrixAdcTestConsole.csproj @@ -6,7 +6,6 @@ - diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/BouncyCastle.Crypto.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/BouncyCastle.Crypto.dll deleted file mode 100644 index b5e6908..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/BouncyCastle.Crypto.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Castle.Core.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Castle.Core.dll deleted file mode 100644 index 527172e..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Castle.Core.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.deps.json b/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.deps.json deleted file mode 100644 index ee98596..0000000 --- a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.deps.json +++ /dev/null @@ -1,2117 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v6.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v6.0": { - "CitrixAdcTestConsole/1.0.0": { - "dependencies": { - "Keyfactor.Extensions.Orchestrator.CitricAdc": "1.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Moq.AutoMock": "3.4.0", - "RestSharp": "112.1.0" - }, - "runtime": { - "CitrixAdcTestConsole.dll": {} - } - }, - "Castle.Core/4.4.0": { - "dependencies": { - "NETStandard.Library": "1.6.1", - "System.Collections.Specialized": "4.3.0", - "System.ComponentModel": "4.3.0", - "System.ComponentModel.TypeConverter": "4.3.0", - "System.Diagnostics.TraceSource": "4.3.0", - "System.Dynamic.Runtime": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Xml.XmlDocument": "4.3.0" - }, - "runtime": { - "lib/netstandard1.5/Castle.Core.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.4.0.0" - } - } - }, - "Keyfactor.Common/2.3.6": { - "dependencies": { - "Keyfactor.Logging": "1.1.1", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Extensions.Configuration": "5.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "5.0.0", - "Microsoft.Extensions.Configuration.Binder": "5.0.0", - "Microsoft.Extensions.Configuration.Json": "5.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Win32.Registry": "5.0.0", - "Newtonsoft.Json": "12.0.3", - "System.ComponentModel.Annotations": "5.0.0", - "System.DirectoryServices": "5.0.0", - "System.Runtime.Caching": "5.0.0", - "System.Security.Cryptography.ProtectedData": "5.0.0" - }, - "runtime": { - "lib/netcoreapp3.1/Keyfactor.Common.dll": { - "assemblyVersion": "2.3.6.0", - "fileVersion": "0.0.0.0" - } - } - }, - "Keyfactor.Logging/1.1.1": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "System.DirectoryServices": "5.0.0" - }, - "runtime": { - "lib/netstandard2.0/Keyfactor.Logging.dll": { - "assemblyVersion": "1.1.1.0", - "fileVersion": "1.1.1.0" - } - } - }, - "Keyfactor.Orchestrators.Common/3.0.0": { - "runtime": { - "lib/netstandard2.0/Keyfactor.Orchestrators.Common.dll": { - "assemblyVersion": "3.0.0.0", - "fileVersion": "3.0.0.0" - } - } - }, - "Keyfactor.Orchestrators.IOrchestratorJobExtensions/0.7.0": { - "dependencies": { - "Keyfactor.Orchestrators.Common": "3.0.0", - "Newtonsoft.Json": "12.0.3" - }, - "runtime": { - "lib/netstandard2.0/Keyfactor.Orchestrators.IOrchestratorJobExtensions.dll": { - "assemblyVersion": "0.7.0.0", - "fileVersion": "0.7.0.0" - } - } - }, - "Microsoft.CSharp/4.7.0": {}, - "Microsoft.Extensions.Configuration/5.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "5.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Extensions.Configuration.Abstractions/5.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Extensions.Configuration.Binder/5.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "5.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Extensions.Configuration.FileExtensions/5.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "5.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "5.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "5.0.0", - "Microsoft.Extensions.FileProviders.Physical": "5.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Extensions.Configuration.Json/5.0.0": { - "dependencies": { - "Microsoft.Extensions.Configuration": "5.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "5.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "5.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "5.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Extensions.DependencyInjection/6.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - }, - "runtime": { - "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0": { - "runtime": { - "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.Extensions.FileProviders.Abstractions/5.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Extensions.FileProviders.Physical/5.0.0": { - "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "5.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "5.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Extensions.FileSystemGlobbing/5.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Microsoft.Extensions.Logging/6.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/6.0.0": { - "runtime": { - "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.Extensions.Options/6.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.Extensions.Primitives/6.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - }, - "runtime": { - "lib/net6.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.NETCore.Platforms/5.0.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "Microsoft.Win32.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "Microsoft.Win32.Registry/5.0.0": { - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Microsoft.Win32.SystemEvents/5.0.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - }, - "runtimeTargets": { - "runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Moq/4.16.1": { - "dependencies": { - "Castle.Core": "4.4.0", - "System.Threading.Tasks.Extensions": "4.5.4" - }, - "runtime": { - "lib/netstandard2.1/Moq.dll": { - "assemblyVersion": "4.16.0.0", - "fileVersion": "4.16.1.0" - } - } - }, - "Moq.AutoMock/3.4.0": { - "dependencies": { - "Moq": "4.16.1" - }, - "runtime": { - "lib/netstandard2.0/Moq.AutoMock.dll": { - "assemblyVersion": "3.4.0.0", - "fileVersion": "3.4.0.0" - } - } - }, - "NETStandard.Library/1.6.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.AppContext": "4.3.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Console": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.Compression.ZipFile": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.Sockets": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Timer": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XDocument": "4.3.0" - } - }, - "Newtonsoft.Json/12.0.3": { - "runtime": { - "lib/netstandard2.0/Newtonsoft.Json.dll": { - "assemblyVersion": "12.0.0.0", - "fileVersion": "12.0.3.23909" - } - } - }, - "Portable.BouncyCastle/1.8.10": { - "runtime": { - "lib/netstandard2.0/BouncyCastle.Crypto.dll": { - "assemblyVersion": "1.8.10.0", - "fileVersion": "1.8.10.1" - } - } - }, - "RestSharp/112.1.0": { - "runtime": { - "lib/net6.0/RestSharp.dll": { - "assemblyVersion": "112.1.0.0", - "fileVersion": "112.1.0.0" - } - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.native.System/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.IO.Compression/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "System.AppContext/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Buffers/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Collections/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Collections.NonGeneric/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Collections.Specialized/4.3.0": { - "dependencies": { - "System.Collections.NonGeneric": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.ComponentModel/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.ComponentModel.Annotations/5.0.0": {}, - "System.ComponentModel.Primitives/4.3.0": { - "dependencies": { - "System.ComponentModel": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.ComponentModel.TypeConverter/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Collections.NonGeneric": "4.3.0", - "System.Collections.Specialized": "4.3.0", - "System.ComponentModel": "4.3.0", - "System.ComponentModel.Primitives": "4.3.0", - "System.Globalization": "4.3.0", - "System.Linq": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Configuration.ConfigurationManager/5.0.0": { - "dependencies": { - "System.Security.Cryptography.ProtectedData": "5.0.0", - "System.Security.Permissions": "5.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Console/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Diagnostics.Debug/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource/6.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Diagnostics.Tools/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.TraceSource/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.DirectoryServices/5.0.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.IO.FileSystem.AccessControl": "5.0.0", - "System.Security.AccessControl": "5.0.0", - "System.Security.Permissions": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.DirectoryServices.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "5.0.20.51904" - } - }, - "runtimeTargets": { - "runtimes/win/lib/netcoreapp2.0/System.DirectoryServices.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "4.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Drawing.Common/5.0.0": { - "dependencies": { - "Microsoft.Win32.SystemEvents": "5.0.0" - }, - "runtime": { - "lib/netcoreapp3.0/System.Drawing.Common.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - }, - "runtimeTargets": { - "runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": { - "rid": "unix", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - }, - "runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Dynamic.Runtime/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Globalization/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.Compression/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Buffers": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.IO.Compression": "4.3.0" - } - }, - "System.IO.Compression.ZipFile/4.3.0": { - "dependencies": { - "System.Buffers": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.IO.FileSystem/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.AccessControl/5.0.0": { - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Linq/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Linq.Expressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "6.0.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Net.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Net.Sockets/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.ObjectModel/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit/4.3.0": { - "dependencies": { - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Resources.ResourceManager/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.Caching/5.0.0": { - "dependencies": { - "System.Configuration.ConfigurationManager": "5.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Runtime.Caching.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "5.0.20.51904" - } - }, - "runtimeTargets": { - "runtimes/win/lib/netstandard2.0/System.Runtime.Caching.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "4.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, - "System.Runtime.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Runtime.Numerics/4.3.0": { - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Security.AccessControl/5.0.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Security.Cryptography.Csp/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Security.Cryptography.ProtectedData/5.0.0": { - "runtime": { - "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - }, - "runtimeTargets": { - "runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Permissions/5.0.0": { - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Windows.Extensions": "5.0.0" - }, - "runtime": { - "lib/net5.0/System.Security.Permissions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Security.Principal.Windows/5.0.0": {}, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encoding.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.Encodings.Web/6.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.RegularExpressions/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Threading/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Extensions/4.5.4": {}, - "System.Threading.Timer/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Windows.Extensions/5.0.0": { - "dependencies": { - "System.Drawing.Common": "5.0.0" - }, - "runtime": { - "lib/netcoreapp3.0/System.Windows.Extensions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - }, - "runtimeTargets": { - "runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.dll": { - "rid": "win", - "assetType": "runtime", - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Xml.ReaderWriter/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Xml.XDocument/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "System.Xml.XmlDocument/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "Keyfactor.Extensions.Orchestrator.CitricAdc/1.0.0": { - "dependencies": { - "Keyfactor.Common": "2.3.6", - "Keyfactor.Logging": "1.1.1", - "Keyfactor.Orchestrators.IOrchestratorJobExtensions": "0.7.0", - "Portable.BouncyCastle": "1.8.10", - "System.Text.Encodings.Web": "6.0.0" - }, - "runtime": { - "Keyfactor.Extensions.Orchestrator.CitricAdc.dll": { - "assemblyVersion": "1.0.0", - "fileVersion": "1.0.0.0" - } - } - }, - "nitro/0.0.0.0": { - "runtime": { - "nitro.dll": { - "assemblyVersion": "0.0.0.0", - "fileVersion": "13.0.90.7" - } - } - } - } - }, - "libraries": { - "CitrixAdcTestConsole/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Castle.Core/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-b5rRL5zeaau1y/5hIbI+6mGw3cwun16YjkHZnV9RRT5UyUIFsgLmNXJ0YnIN9p8Hw7K7AbG1q1UclQVU3DinAQ==", - "path": "castle.core/4.4.0", - "hashPath": "castle.core.4.4.0.nupkg.sha512" - }, - "Keyfactor.Common/2.3.6": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qV/8mikbOrf+N9GsomuvawKcjZ36A+8TQwR9A+aWkGLd5+5Sh8e9rcxTPD4qMXmKQSgDAue9Xyofkkb6mRbwog==", - "path": "keyfactor.common/2.3.6", - "hashPath": "keyfactor.common.2.3.6.nupkg.sha512" - }, - "Keyfactor.Logging/1.1.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vxg8WeDfmunpYosGHXwtSOqWg1TFmNETIWCGHo5/RCFvPTbqJ0zqXKU9pg5tg85Fb4JB2fJ99mWsm5tG44wkfQ==", - "path": "keyfactor.logging/1.1.1", - "hashPath": "keyfactor.logging.1.1.1.nupkg.sha512" - }, - "Keyfactor.Orchestrators.Common/3.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/gGqjMnPy9WVvhinFSqR/1LAD+V6Ne6LaKh1RqIY5yt9A3akEqAvtmdd0Wp2ke7k6NFi6NQc6s076TTUYjEMyg==", - "path": "keyfactor.orchestrators.common/3.0.0", - "hashPath": "keyfactor.orchestrators.common.3.0.0.nupkg.sha512" - }, - "Keyfactor.Orchestrators.IOrchestratorJobExtensions/0.7.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-aPqE0fvS2IoHg7mE+EtnK4Cnx61uRM0yuWSuolYHJfvmbLZqRnMl485mQzHrEdWxzoNgmSEeCklOs+LhTxv8LA==", - "path": "keyfactor.orchestrators.iorchestratorjobextensions/0.7.0", - "hashPath": "keyfactor.orchestrators.iorchestratorjobextensions.0.7.0.nupkg.sha512" - }, - "Microsoft.CSharp/4.7.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", - "path": "microsoft.csharp/4.7.0", - "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LN322qEKHjuVEhhXueTUe7RNePooZmS8aGid5aK2woX3NPjSnONFyKUc6+JknOS6ce6h2tCLfKPTBXE3mN/6Ag==", - "path": "microsoft.extensions.configuration/5.0.0", - "hashPath": "microsoft.extensions.configuration.5.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Abstractions/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ETjSBHMp3OAZ4HxGQYpwyGsD8Sw5FegQXphi0rpoGMT74S4+I2mm7XJEswwn59XAaKOzC15oDSOWEE8SzDCd6Q==", - "path": "microsoft.extensions.configuration.abstractions/5.0.0", - "hashPath": "microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Binder/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Of1Irt1+NzWO+yEYkuDh5TpT4On7LKl98Q9iLqCdOZps6XXEWDj3AKtmyvzJPVXZe4apmkJJIiDL7rR1yC+hjQ==", - "path": "microsoft.extensions.configuration.binder/5.0.0", - "hashPath": "microsoft.extensions.configuration.binder.5.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.FileExtensions/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rRdspYKA18ViPOISwAihhCMbusHsARCOtDMwa23f+BGEdIjpKPlhs3LLjmKlxfhpGXBjIsS0JpXcChjRUN+PAw==", - "path": "microsoft.extensions.configuration.fileextensions/5.0.0", - "hashPath": "microsoft.extensions.configuration.fileextensions.5.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Configuration.Json/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Pak8ymSUfdzPfBTLHxeOwcR32YDbuVfhnH2hkfOLnJNQd19ItlBdpMjIDY9C5O/nS2Sn9bzDMai0ZrvF7KyY/Q==", - "path": "microsoft.extensions.configuration.json/5.0.0", - "hashPath": "microsoft.extensions.configuration.json.5.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==", - "path": "microsoft.extensions.dependencyinjection/6.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.6.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", - "path": "microsoft.extensions.dependencyinjection.abstractions/6.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.6.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileProviders.Abstractions/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iuZIiZ3mteEb+nsUqpGXKx2cGF+cv6gWPd5jqQI4hzqdiJ6I94ddLjKhQOuRW1lueHwocIw30xbSHGhQj0zjdQ==", - "path": "microsoft.extensions.fileproviders.abstractions/5.0.0", - "hashPath": "microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileProviders.Physical/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1rkd8UO2qf21biwO7X0hL9uHP7vtfmdv/NLvKgCRHkdz1XnW8zVQJXyEYiN68WYpExgtVWn55QF0qBzgfh1mGg==", - "path": "microsoft.extensions.fileproviders.physical/5.0.0", - "hashPath": "microsoft.extensions.fileproviders.physical.5.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.FileSystemGlobbing/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ArliS8lGk8sWRtrWpqI8yUVYJpRruPjCDT+EIjrgkA/AAPRctlAkRISVZ334chAKktTLzD1+PK8F5IZpGedSqA==", - "path": "microsoft.extensions.filesystemglobbing/5.0.0", - "hashPath": "microsoft.extensions.filesystemglobbing.5.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", - "path": "microsoft.extensions.logging/6.0.0", - "hashPath": "microsoft.extensions.logging.6.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", - "path": "microsoft.extensions.logging.abstractions/6.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.6.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", - "path": "microsoft.extensions.options/6.0.0", - "hashPath": "microsoft.extensions.options.6.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "path": "microsoft.extensions.primitives/6.0.0", - "hashPath": "microsoft.extensions.primitives.6.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", - "path": "microsoft.netcore.platforms/5.0.0", - "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "Microsoft.Win32.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "path": "microsoft.win32.primitives/4.3.0", - "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" - }, - "Microsoft.Win32.Registry/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "path": "microsoft.win32.registry/5.0.0", - "hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512" - }, - "Microsoft.Win32.SystemEvents/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==", - "path": "microsoft.win32.systemevents/5.0.0", - "hashPath": "microsoft.win32.systemevents.5.0.0.nupkg.sha512" - }, - "Moq/4.16.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==", - "path": "moq/4.16.1", - "hashPath": "moq.4.16.1.nupkg.sha512" - }, - "Moq.AutoMock/3.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9ihncbDf46fh9sPCAitxC6Ix6wDfaPxeeqTocddObcXLiUoXOGfj++NOYwEECum5JZTmg6pskE3MbpUc9YgVOw==", - "path": "moq.automock/3.4.0", - "hashPath": "moq.automock.3.4.0.nupkg.sha512" - }, - "NETStandard.Library/1.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", - "path": "netstandard.library/1.6.1", - "hashPath": "netstandard.library.1.6.1.nupkg.sha512" - }, - "Newtonsoft.Json/12.0.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6mgjfnRB4jKMlzHSl+VD+oUc1IebOZabkbyWj2RiTgWwYPPuaK1H97G1sHqGwPlS5npiF5Q0OrxN1wni2n5QWg==", - "path": "newtonsoft.json/12.0.3", - "hashPath": "newtonsoft.json.12.0.3.nupkg.sha512" - }, - "Portable.BouncyCastle/1.8.10": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XLhjNAwuVB9ynwn11l5K44eyozh8q6gFseTrlnLNttejimglX7+F9+vxh60LPjvA/DAt6fUdS43N3ah8K6eaWg==", - "path": "portable.bouncycastle/1.8.10", - "hashPath": "portable.bouncycastle.1.8.10.nupkg.sha512" - }, - "RestSharp/112.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bOUGNZqhhv/QeCXHTKEUil846yBjwWXpzPKjO67kFvaAOoF361z7jLY5BMnuZ6WD2WQRA750sNMcK7MSPCQ5Mg==", - "path": "restsharp/112.1.0", - "hashPath": "restsharp.112.1.0.nupkg.sha512" - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", - "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", - "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", - "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.native.System/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "path": "runtime.native.system/4.3.0", - "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" - }, - "runtime.native.System.IO.Compression/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", - "path": "runtime.native.system.io.compression/4.3.0", - "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", - "path": "runtime.native.system.net.http/4.3.0", - "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", - "path": "runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", - "path": "runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", - "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", - "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", - "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", - "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", - "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", - "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.AppContext/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", - "path": "system.appcontext/4.3.0", - "hashPath": "system.appcontext.4.3.0.nupkg.sha512" - }, - "System.Buffers/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", - "path": "system.buffers/4.3.0", - "hashPath": "system.buffers.4.3.0.nupkg.sha512" - }, - "System.Collections/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", - "path": "system.collections/4.3.0", - "hashPath": "system.collections.4.3.0.nupkg.sha512" - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", - "path": "system.collections.concurrent/4.3.0", - "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" - }, - "System.Collections.NonGeneric/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", - "path": "system.collections.nongeneric/4.3.0", - "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" - }, - "System.Collections.Specialized/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", - "path": "system.collections.specialized/4.3.0", - "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" - }, - "System.ComponentModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", - "path": "system.componentmodel/4.3.0", - "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" - }, - "System.ComponentModel.Annotations/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==", - "path": "system.componentmodel.annotations/5.0.0", - "hashPath": "system.componentmodel.annotations.5.0.0.nupkg.sha512" - }, - "System.ComponentModel.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", - "path": "system.componentmodel.primitives/4.3.0", - "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" - }, - "System.ComponentModel.TypeConverter/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", - "path": "system.componentmodel.typeconverter/4.3.0", - "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512" - }, - "System.Configuration.ConfigurationManager/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-aM7cbfEfVNlEEOj3DsZP+2g9NRwbkyiAv2isQEzw7pnkDg9ekCU2m1cdJLM02Uq691OaCS91tooaxcEn8d0q5w==", - "path": "system.configuration.configurationmanager/5.0.0", - "hashPath": "system.configuration.configurationmanager.5.0.0.nupkg.sha512" - }, - "System.Console/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", - "path": "system.console/4.3.0", - "hashPath": "system.console.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", - "path": "system.diagnostics.debug/4.3.0", - "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "path": "system.diagnostics.diagnosticsource/6.0.0", - "hashPath": "system.diagnostics.diagnosticsource.6.0.0.nupkg.sha512" - }, - "System.Diagnostics.Tools/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", - "path": "system.diagnostics.tools/4.3.0", - "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.TraceSource/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VnYp1NxGx8Ww731y2LJ1vpfb/DKVNKEZ8Jsh5SgQTZREL/YpWRArgh9pI8CDLmgHspZmLL697CaLvH85qQpRiw==", - "path": "system.diagnostics.tracesource/4.3.0", - "hashPath": "system.diagnostics.tracesource.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", - "path": "system.diagnostics.tracing/4.3.0", - "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" - }, - "System.DirectoryServices/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lAS54Y3KO1XV68akGa0/GJeddkkuuiv2CtcSkMiTmLHQ6o6kFbKpw4DmJZADF7a6KjPwYxmZnH4D3eGicrJdcg==", - "path": "system.directoryservices/5.0.0", - "hashPath": "system.directoryservices.5.0.0.nupkg.sha512" - }, - "System.Drawing.Common/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SztFwAnpfKC8+sEKXAFxCBWhKQaEd97EiOL7oZJZP56zbqnLpmxACWA8aGseaUExciuEAUuR9dY8f7HkTRAdnw==", - "path": "system.drawing.common/5.0.0", - "hashPath": "system.drawing.common.5.0.0.nupkg.sha512" - }, - "System.Dynamic.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", - "path": "system.dynamic.runtime/4.3.0", - "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" - }, - "System.Globalization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", - "path": "system.globalization/4.3.0", - "hashPath": "system.globalization.4.3.0.nupkg.sha512" - }, - "System.Globalization.Calendars/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", - "path": "system.globalization.calendars/4.3.0", - "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" - }, - "System.Globalization.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", - "path": "system.globalization.extensions/4.3.0", - "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.IO.Compression/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", - "path": "system.io.compression/4.3.0", - "hashPath": "system.io.compression.4.3.0.nupkg.sha512" - }, - "System.IO.Compression.ZipFile/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", - "path": "system.io.compression.zipfile/4.3.0", - "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", - "path": "system.io.filesystem/4.3.0", - "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem.AccessControl/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SxHB3nuNrpptVk+vZ/F+7OHEpoHUIKKMl02bUmYHQr1r+glbZQxs7pRtsf4ENO29TVm2TH3AEeep2fJcy92oYw==", - "path": "system.io.filesystem.accesscontrol/5.0.0", - "hashPath": "system.io.filesystem.accesscontrol.5.0.0.nupkg.sha512" - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", - "path": "system.io.filesystem.primitives/4.3.0", - "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" - }, - "System.Linq/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", - "path": "system.linq/4.3.0", - "hashPath": "system.linq.4.3.0.nupkg.sha512" - }, - "System.Linq.Expressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", - "path": "system.linq.expressions/4.3.0", - "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" - }, - "System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", - "path": "system.net.http/4.3.0", - "hashPath": "system.net.http.4.3.0.nupkg.sha512" - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", - "path": "system.net.primitives/4.3.0", - "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" - }, - "System.Net.Sockets/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", - "path": "system.net.sockets/4.3.0", - "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" - }, - "System.ObjectModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", - "path": "system.objectmodel/4.3.0", - "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", - "path": "system.reflection.emit/4.3.0", - "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", - "path": "system.reflection.emit.lightweight/4.3.0", - "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "path": "system.reflection.extensions/4.3.0", - "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Reflection.TypeExtensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "path": "system.reflection.typeextensions/4.3.0", - "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", - "path": "system.resources.resourcemanager/4.3.0", - "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.Caching/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-30D6MkO8WF9jVGWZIP0hmCN8l9BTY4LCsAzLIe4xFSXzs+AjDotR7DpSmj27pFskDURzUvqYYY0ikModgBTxWw==", - "path": "system.runtime.caching/5.0.0", - "hashPath": "system.runtime.caching.5.0.0.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", - "path": "system.runtime.compilerservices.unsafe/6.0.0", - "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", - "path": "system.runtime.extensions/4.3.0", - "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" - }, - "System.Runtime.Handles/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", - "path": "system.runtime.handles/4.3.0", - "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "path": "system.runtime.interopservices/4.3.0", - "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", - "path": "system.runtime.interopservices.runtimeinformation/4.3.0", - "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512" - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", - "path": "system.runtime.numerics/4.3.0", - "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" - }, - "System.Security.AccessControl/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "path": "system.security.accesscontrol/5.0.0", - "hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512" - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "path": "system.security.cryptography.algorithms/4.3.0", - "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Cng/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", - "path": "system.security.cryptography.cng/4.3.0", - "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Csp/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", - "path": "system.security.cryptography.csp/4.3.0", - "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", - "path": "system.security.cryptography.encoding/4.3.0", - "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", - "path": "system.security.cryptography.openssl/4.3.0", - "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", - "path": "system.security.cryptography.primitives/4.3.0", - "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.ProtectedData/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HGxMSAFAPLNoxBvSfW08vHde0F9uh7BjASwu6JF9JnXuEPhCY3YUqURn0+bQV/4UWeaqymmrHWV+Aw9riQCtCA==", - "path": "system.security.cryptography.protecteddata/5.0.0", - "hashPath": "system.security.cryptography.protecteddata.5.0.0.nupkg.sha512" - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "path": "system.security.cryptography.x509certificates/4.3.0", - "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" - }, - "System.Security.Permissions/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", - "path": "system.security.permissions/5.0.0", - "hashPath": "system.security.permissions.5.0.0.nupkg.sha512" - }, - "System.Security.Principal.Windows/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", - "path": "system.security.principal.windows/5.0.0", - "hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", - "path": "system.text.encoding.extensions/4.3.0", - "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "path": "system.text.encodings.web/6.0.0", - "hashPath": "system.text.encodings.web.6.0.0.nupkg.sha512" - }, - "System.Text.RegularExpressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", - "path": "system.text.regularexpressions/4.3.0", - "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" - }, - "System.Threading/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", - "path": "system.threading/4.3.0", - "hashPath": "system.threading.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks.Extensions/4.5.4": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "path": "system.threading.tasks.extensions/4.5.4", - "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512" - }, - "System.Threading.Timer/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", - "path": "system.threading.timer/4.3.0", - "hashPath": "system.threading.timer.4.3.0.nupkg.sha512" - }, - "System.Windows.Extensions/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", - "path": "system.windows.extensions/5.0.0", - "hashPath": "system.windows.extensions.5.0.0.nupkg.sha512" - }, - "System.Xml.ReaderWriter/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", - "path": "system.xml.readerwriter/4.3.0", - "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" - }, - "System.Xml.XDocument/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", - "path": "system.xml.xdocument/4.3.0", - "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" - }, - "System.Xml.XmlDocument/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", - "path": "system.xml.xmldocument/4.3.0", - "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" - }, - "Keyfactor.Extensions.Orchestrator.CitricAdc/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "nitro/0.0.0.0": { - "type": "reference", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.dll deleted file mode 100644 index 504498f..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.exe b/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.exe deleted file mode 100644 index 48c4c40..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.exe and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.pdb b/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.pdb deleted file mode 100644 index bcd1c13..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.pdb and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.runtimeconfig.json b/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.runtimeconfig.json deleted file mode 100644 index 4986d16..0000000 --- a/CitrixAdcTestConsole/bin/Debug/net6.0/CitrixAdcTestConsole.runtimeconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "runtimeOptions": { - "tfm": "net6.0", - "framework": { - "name": "Microsoft.NETCore.App", - "version": "6.0.0" - } - } -} \ No newline at end of file diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Inventory.json b/CitrixAdcTestConsole/bin/Debug/net6.0/Inventory.json deleted file mode 100644 index 5b485f2..0000000 --- a/CitrixAdcTestConsole/bin/Debug/net6.0/Inventory.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "LastInventory": [], - "CertificateStoreDetails": { - "ClientMachine": "ClientMachineGoesHere", - "StorePath": "/", - "StorePassword": "", - "Properties": "{\"ServerUsername\":\"UserNameGoesHere\",\"ServerPassword\":\"PasswordGoesHere\",\"ServerUseSsl\":\"true\",\"DeviceGroup\":\"\"}", - "Type": 105 - }, - "JobCancelled": false, - "ServerError": null, - "JobHistoryId": 22892, - "RequestStatus": 1, - "ServerUsername": "UserNameGoesHere", - "ServerPassword": "PasswordGoesHere", - "UseSSL": true, - "JobProperties": null, - "JobTypeId": "00000000-0000-0000-0000-000000000000", - "JobId": "ffca3981-adb2-4a7f-af09-4d0e1ac380b1", - "Capability": "CertStores.CitricAdc.Inventory" -} \ No newline at end of file diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Common.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Common.dll deleted file mode 100644 index afddb7a..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Common.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Extensions.Orchestrator.CitricAdc.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Extensions.Orchestrator.CitricAdc.dll deleted file mode 100644 index f6e3a35..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Extensions.Orchestrator.CitricAdc.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Extensions.Orchestrator.CitricAdc.pdb b/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Extensions.Orchestrator.CitricAdc.pdb deleted file mode 100644 index ede3d43..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Extensions.Orchestrator.CitricAdc.pdb and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Logging.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Logging.dll deleted file mode 100644 index affc313..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Logging.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Orchestrators.Common.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Orchestrators.Common.dll deleted file mode 100644 index 3ace63e..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Orchestrators.Common.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Orchestrators.IOrchestratorJobExtensions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Orchestrators.IOrchestratorJobExtensions.dll deleted file mode 100644 index 60407f6..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Keyfactor.Orchestrators.IOrchestratorJobExtensions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Management.json b/CitrixAdcTestConsole/bin/Debug/net6.0/Management.json deleted file mode 100644 index 5e2f13d..0000000 --- a/CitrixAdcTestConsole/bin/Debug/net6.0/Management.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "LastInventory": [], - "CertificateStoreDetails": { - "ClientMachine": "ClientMachineGoesHere", - "StorePath": "TemplateNameGoesHere", - "StorePassword": null, - "Properties": "{\"ServerUsername\":\"UserNameGoesHere\",\"ServerPassword\":\"PasswordGoesHere\",\"ServerUseSsl\":\"true\",\"DeviceGroup\":\"DeviceGroupGoesHere\"}", - "Type": 105 - }, - "OperationType": 2, - "Overwrite": false, - "JobCertificate": { - "Thumbprint": null, - "Contents": "CertificateContentGoesHere", - "Alias": "AliasGoesHere", - "PrivateKeyPassword": "sldfklsdfsldjfk" - }, - "JobCancelled": false, - "ServerError": null, - "JobHistoryId": 22907, - "RequestStatus": 1, - "ServerUsername": "UserNameGoesHere", - "ServerPassword": "PasswordGoesHere", - "UseSSL": true, - "JobProperties": { - "virtualServerName": "virtualServerNameGoesHere", - "sniCert": "false" - }, - "JobTypeId": "00000000-0000-0000-0000-000000000000", - "JobId": "6808e1a2-04bb-4008-89fc-649662c0cd2b", - "Capability": "CertStores.CitricAdc.Management" -} \ No newline at end of file diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/ManagementRemove.json b/CitrixAdcTestConsole/bin/Debug/net6.0/ManagementRemove.json deleted file mode 100644 index 7b4cc42..0000000 --- a/CitrixAdcTestConsole/bin/Debug/net6.0/ManagementRemove.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "LastInventory": [], - "CertificateStoreDetails": { - "ClientMachine": "ClientMachineGoesHere", - "StorePath": "TemplateNameGoesHere", - "StorePassword": null, - "Properties": "{\"ServerUsername\":\"UserNameGoesHere\",\"ServerPassword\":\"PasswordGoesHere\",\"ServerUseSsl\":\"true\",\"DeviceGroup\":\"DeviceGroupGoesHere\"}", - "Type": 105 - }, - "OperationType": 3, - "Overwrite": false, - "JobCertificate": { - "Thumbprint": null, - "Contents": "", - "Alias": "AliasGoesHere", - "PrivateKeyPassword": null - }, - "JobCancelled": false, - "ServerError": null, - "JobHistoryId": 22908, - "RequestStatus": 1, - "ServerUsername": "UserNameGoesHere", - "ServerPassword": "PasswordGoesHere", - "UseSSL": true, - "JobProperties": { - "virtualServerName": "virtualServerNameGoesHere" - }, - "JobTypeId": "00000000-0000-0000-0000-000000000000", - "JobId": "ba6248e2-eb3f-4403-9974-8df0e9f15f98", - "Capability": "CertStores.CitricAdc.Management" -} \ No newline at end of file diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/ManagementRenew.json b/CitrixAdcTestConsole/bin/Debug/net6.0/ManagementRenew.json deleted file mode 100644 index 4e0476f..0000000 --- a/CitrixAdcTestConsole/bin/Debug/net6.0/ManagementRenew.json +++ /dev/null @@ -1 +0,0 @@ -{ "LastInventory": [], "CertificateStoreDetails": { "ClientMachine": "ClientMachineGoesHere", "StorePath": "TemplateNameGoesHere", "StorePassword": null, "Properties": "{\"ServerUsername\":\"UserNameGoesHere\",\"ServerPassword\":\"PasswordGoesHere\",\"ServerUseSsl\":\"true\",\"DeviceGroup\":\"DeviceGroupGoesHere\"}", "Type": 105 }, "OperationType": 2, "Overwrite": false, "JobCertificate": { "Thumbprint": null, "Contents": "CertificateContentGoesHere", "Alias": "AliasGoesHere", "PrivateKeyPassword": "sldfklsdfsldjfk" }, "JobCancelled": false, "ServerError": null, "JobHistoryId": 22907, "RequestStatus": 1, "ServerUsername": "UserNameGoesHere", "ServerPassword": "PasswordGoesHere", "UseSSL": true, "JobProperties": { "virtualServerName": "virtualServerNameGoesHere", "RenewalThumbprint": "ThumbprintGoesHere", "sniCert": "false" }, "JobTypeId": "00000000-0000-0000-0000-000000000000", "JobId": "6808e1a2-04bb-4008-89fc-649662c0cd2b", "Capability": "CertStores.PaloAlto.Management"} \ No newline at end of file diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll deleted file mode 100644 index dd5ebe2..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Binder.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Binder.dll deleted file mode 100644 index cded0f2..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Binder.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.FileExtensions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.FileExtensions.dll deleted file mode 100644 index c0bc056..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.FileExtensions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Json.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Json.dll deleted file mode 100644 index 77875f3..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.Json.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.dll deleted file mode 100644 index 4e5c5d8..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Configuration.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll deleted file mode 100644 index b4ee93d..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.DependencyInjection.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.DependencyInjection.dll deleted file mode 100644 index 97525f7..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.DependencyInjection.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileProviders.Abstractions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileProviders.Abstractions.dll deleted file mode 100644 index 2ab3e58..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileProviders.Abstractions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileProviders.Physical.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileProviders.Physical.dll deleted file mode 100644 index 826974b..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileProviders.Physical.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileSystemGlobbing.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileSystemGlobbing.dll deleted file mode 100644 index 7ca25d5..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.FileSystemGlobbing.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Logging.Abstractions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Logging.Abstractions.dll deleted file mode 100644 index bb27a2f..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Logging.Abstractions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Logging.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Logging.dll deleted file mode 100644 index 9e2d7f9..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Logging.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Options.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Options.dll deleted file mode 100644 index 604b602..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Options.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Primitives.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Primitives.dll deleted file mode 100644 index 1b2c43a..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Extensions.Primitives.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Win32.SystemEvents.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Win32.SystemEvents.dll deleted file mode 100644 index d62f333..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Microsoft.Win32.SystemEvents.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Moq.AutoMock.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Moq.AutoMock.dll deleted file mode 100644 index e282611..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Moq.AutoMock.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Moq.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Moq.dll deleted file mode 100644 index 5be05c4..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Moq.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/Newtonsoft.Json.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/Newtonsoft.Json.dll deleted file mode 100644 index b501fb6..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/Newtonsoft.Json.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/RestSharp.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/RestSharp.dll deleted file mode 100644 index a3241b6..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/RestSharp.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Configuration.ConfigurationManager.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/System.Configuration.ConfigurationManager.dll deleted file mode 100644 index 1644e5d..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Configuration.ConfigurationManager.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/System.DirectoryServices.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/System.DirectoryServices.dll deleted file mode 100644 index 65d58a1..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/System.DirectoryServices.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Drawing.Common.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/System.Drawing.Common.dll deleted file mode 100644 index 2ca2eb5..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Drawing.Common.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Runtime.Caching.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/System.Runtime.Caching.dll deleted file mode 100644 index 6a6eb85..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Runtime.Caching.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Security.Cryptography.ProtectedData.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/System.Security.Cryptography.ProtectedData.dll deleted file mode 100644 index ffe1c6f..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Security.Cryptography.ProtectedData.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Security.Permissions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/System.Security.Permissions.dll deleted file mode 100644 index b380d08..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Security.Permissions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Windows.Extensions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/System.Windows.Extensions.dll deleted file mode 100644 index 316eb46..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/System.Windows.Extensions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/config.json b/CitrixAdcTestConsole/bin/Debug/net6.0/config.json deleted file mode 100644 index 470027d..0000000 --- a/CitrixAdcTestConsole/bin/Debug/net6.0/config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "AutoSaveConfig": "N" -} diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/manifest.json b/CitrixAdcTestConsole/bin/Debug/net6.0/manifest.json deleted file mode 100644 index 180df6a..0000000 --- a/CitrixAdcTestConsole/bin/Debug/net6.0/manifest.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extensions": { - "Keyfactor.Orchestrators.Extensions.IOrchestratorJobExtension": { - "CertStores.CitrixAdc.Inventory": { - "assemblypath": "Keyfactor.Extensions.Orchestrator.CitricAdc.dll", - "TypeFullName": "Keyfactor.Extensions.Orchestrator.CitricAdc.Inventory" - }, - "CertStores.CitrixAdc.Management": { - "assemblypath": "Keyfactor.Extensions.Orchestrator.CitricAdc.dll", - "TypeFullName": "Keyfactor.Extensions.Orchestrator.CitricAdc.Management" - } - } - } -} diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/nitro.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/nitro.dll deleted file mode 100644 index d94cb2f..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/nitro.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll deleted file mode 100644 index aad03ed..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp2.0/System.DirectoryServices.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp2.0/System.DirectoryServices.dll deleted file mode 100644 index e43577d..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp2.0/System.DirectoryServices.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll deleted file mode 100644 index b5aa0c4..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll deleted file mode 100644 index 87fe0ae..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.dll deleted file mode 100644 index ab82e83..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netcoreapp3.0/System.Windows.Extensions.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netstandard2.0/System.Runtime.Caching.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netstandard2.0/System.Runtime.Caching.dll deleted file mode 100644 index 432ebb4..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netstandard2.0/System.Runtime.Caching.dll and /dev/null differ diff --git a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll b/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll deleted file mode 100644 index 99215bb..0000000 Binary files a/CitrixAdcTestConsole/bin/Debug/net6.0/runtimes/win/lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll and /dev/null differ diff --git a/README.md b/README.md index c8be4c3..2259cca 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,9 @@ Load Balancing, Authentication/Authorization/Auditing (AAA), and Gateways, this This integration is compatible with Keyfactor Universal Orchestrator version 10.4 and later. ## Support -The Citrix Netscaler Universal Orchestrator extension is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket with your Keyfactor representative. If you have a support issue, please open a support ticket via the Keyfactor Support Portal at https://support.keyfactor.com. - -> To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab. +The Citrix Netscaler Universal Orchestrator extension is supported by Keyfactor. If you require support for any issues or have feature request, please open a support ticket by either contacting your Keyfactor representative or via the Keyfactor Support Portal at https://support.keyfactor.com. + +> If you want to contribute bug fixes or additional enhancements, use the **[Pull requests](../../pulls)** tab. ## Requirements & Prerequisites @@ -67,110 +67,196 @@ Allow (^stat\s+(cr|cs|lb|system|vpn))|(^(add|rm|show)\s+system\s+file\s+.*)|(^\S+\s+ssl\s+.*)|(^(show|stat|sync)\s+HA\s+.*)|(^save\s+ns\s+config)|(^(switch|show)\s+ns\s+partition.*) -## Create the CitrixAdc Certificate Store Type +## CitrixAdc Certificate Store Type To use the Citrix Netscaler Universal Orchestrator extension, you **must** create the CitrixAdc Certificate Store Type. This only needs to happen _once_ per Keyfactor Command instance. -* **Create CitrixAdc using kfutil**: - ```shell - # CitrixAdc - kfutil store-types create CitrixAdc - ``` -* **Create CitrixAdc manually in the Command UI**: -
Create CitrixAdc manually in the Command UI - Create a store type called `CitrixAdc` with the attributes in the tables below: - #### Basic Tab - | Attribute | Value | Description | - | --------- | ----- | ----- | - | Name | CitrixAdc | Display name for the store type (may be customized) | - | Short Name | CitrixAdc | Short display name for the store type | - | Capability | CitrixAdc | Store type name orchestrator will register with. Check the box to allow entry of value | - | Supports Add | ✅ Checked | Check the box. Indicates that the Store Type supports Management Add | - | Supports Remove | ✅ Checked | Check the box. Indicates that the Store Type supports Management Remove | - | Supports Discovery | 🔲 Unchecked | Indicates that the Store Type supports Discovery | - | Supports Reenrollment | 🔲 Unchecked | Indicates that the Store Type supports Reenrollment | - | Supports Create | 🔲 Unchecked | Indicates that the Store Type supports store creation | - | Needs Server | ✅ Checked | Determines if a target server name is required when creating store | - | Blueprint Allowed | 🔲 Unchecked | Determines if store type may be included in an Orchestrator blueprint | - | Uses PowerShell | 🔲 Unchecked | Determines if underlying implementation is PowerShell | - | Requires Store Password | 🔲 Unchecked | Enables users to optionally specify a store password when defining a Certificate Store. | - | Supports Entry Password | 🔲 Unchecked | Determines if an individual entry within a store can have a password. | - The Basic tab should look like this: +#### Supported Operations + +| Operation | Is Supported | +|--------------|------------------------------------------------------------------------------------------------------------------------| +| Add | ✅ Checked | +| Remove | ✅ Checked | +| Discovery | 🔲 Unchecked | +| Reenrollment | 🔲 Unchecked | +| Create | 🔲 Unchecked | + +#### Store Type Creation + +##### Using kfutil: +`kfutil` is a custom CLI for the Keyfactor Command API and can be used to create certificate store types. +For more information on [kfutil](https://github.com/Keyfactor/kfutil) check out the [docs](https://github.com/Keyfactor/kfutil?tab=readme-ov-file#quickstart) +
Click to expand CitrixAdc kfutil details + + ##### Using online definition from GitHub: + This will reach out to GitHub and pull the latest store-type definition + ```shell + # CitrixAdc + kfutil store-types create CitrixAdc + ``` + + ##### Offline creation using integration-manifest file: + If required, it is possible to create store types from the [integration-manifest.json](./integration-manifest.json) included in this repo. + You would first download the [integration-manifest.json](./integration-manifest.json) and then run the following command + in your offline environment. + ```shell + kfutil store-types create --from-file integration-manifest.json + ``` +
+ + +#### Manual Creation +Below are instructions on how to create the CitrixAdc store type manually in +the Keyfactor Command Portal +
Click to expand manual CitrixAdc details + + Create a store type called `CitrixAdc` with the attributes in the tables below: + + ##### Basic Tab + | Attribute | Value | Description | + | --------- | ----- | ----- | + | Name | CitrixAdc | Display name for the store type (may be customized) | + | Short Name | CitrixAdc | Short display name for the store type | + | Capability | CitrixAdc | Store type name orchestrator will register with. Check the box to allow entry of value | + | Supports Add | ✅ Checked | Check the box. Indicates that the Store Type supports Management Add | + | Supports Remove | ✅ Checked | Check the box. Indicates that the Store Type supports Management Remove | + | Supports Discovery | 🔲 Unchecked | Indicates that the Store Type supports Discovery | + | Supports Reenrollment | 🔲 Unchecked | Indicates that the Store Type supports Reenrollment | + | Supports Create | 🔲 Unchecked | Indicates that the Store Type supports store creation | + | Needs Server | ✅ Checked | Determines if a target server name is required when creating store | + | Blueprint Allowed | 🔲 Unchecked | Determines if store type may be included in an Orchestrator blueprint | + | Uses PowerShell | 🔲 Unchecked | Determines if underlying implementation is PowerShell | + | Requires Store Password | ✅ Checked | Enables users to optionally specify a store password when defining a Certificate Store. | + | Supports Entry Password | 🔲 Unchecked | Determines if an individual entry within a store can have a password. | + + The Basic tab should look like this: + + ![CitrixAdc Basic Tab](docsource/images/CitrixAdc-basic-store-type-dialog.png) + + ##### Advanced Tab + | Attribute | Value | Description | + | --------- | ----- | ----- | + | Supports Custom Alias | Required | Determines if an individual entry within a store can have a custom Alias. | + | Private Key Handling | Required | This determines if Keyfactor can send the private key associated with a certificate to the store. Required because IIS certificates without private keys would be invalid. | + | PFX Password Style | Default | 'Default' - PFX password is randomly generated, 'Custom' - PFX password may be specified when the enrollment job is created (Requires the Allow Custom Password application setting to be enabled.) | + + The Advanced tab should look like this: + + ![CitrixAdc Advanced Tab](docsource/images/CitrixAdc-advanced-store-type-dialog.png) + + > For Keyfactor **Command versions 24.4 and later**, a Certificate Format dropdown is available with PFX and PEM options. Ensure that **PFX** is selected, as this determines the format of new and renewed certificates sent to the Orchestrator during a Management job. Currently, all Keyfactor-supported Orchestrator extensions support only PFX. + + ##### Custom Fields Tab + Custom fields operate at the certificate store level and are used to control how the orchestrator connects to the remote target server containing the certificate store to be managed. The following custom fields should be added to the store type: + + | Name | Display Name | Description | Type | Default Value/Options | Required | + | ---- | ------------ | ---- | --------------------- | -------- | ----------- | + | ServerUsername | Server Username | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | Secret | | 🔲 Unchecked | + | ServerPassword | Server Password | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | Secret | | 🔲 Unchecked | + | linkToIssuer | Link To Issuer | Determines whether an attempt will be made to link the added certificate (via a Management-Add job) to its issuing CA certificate. | Bool | false | 🔲 Unchecked | + | timeout | Login Timeout in seconds | Determines timeout in seconds for all Citrix ADC API calls. | String | 3600 | 🔲 Unchecked | + + The Custom Fields tab should look like this: + + ![CitrixAdc Custom Fields Tab](docsource/images/CitrixAdc-custom-fields-store-type-dialog.png) + + + ###### Server Username + The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. + - ![CitrixAdc Basic Tab](docsource/images/CitrixAdc-basic-store-type-dialog.png) + > [!IMPORTANT] + > This field is created by the `Needs Server` on the Basic tab, do not create this field manually. - #### Advanced Tab - | Attribute | Value | Description | - | --------- | ----- | ----- | - | Supports Custom Alias | Required | Determines if an individual entry within a store can have a custom Alias. | - | Private Key Handling | Required | This determines if Keyfactor can send the private key associated with a certificate to the store. Required because IIS certificates without private keys would be invalid. | - | PFX Password Style | Default | 'Default' - PFX password is randomly generated, 'Custom' - PFX password may be specified when the enrollment job is created (Requires the Allow Custom Password application setting to be enabled.) | - The Advanced tab should look like this: - ![CitrixAdc Advanced Tab](docsource/images/CitrixAdc-advanced-store-type-dialog.png) - #### Custom Fields Tab - Custom fields operate at the certificate store level and are used to control how the orchestrator connects to the remote target server containing the certificate store to be managed. The following custom fields should be added to the store type: + ###### Server Password + The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. - | Name | Display Name | Description | Type | Default Value/Options | Required | - | ---- | ------------ | ---- | --------------------- | -------- | ----------- | - | ServerUsername | Server Username | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | Secret | | 🔲 Unchecked | - | ServerPassword | Server Password | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | Secret | | 🔲 Unchecked | - | linkToIssuer | Link To Issuer | Determines whether an attempt will be made to link the added certificate (via a Management-Add job) to its issuing CA certificate. | Bool | false | 🔲 Unchecked | - The Custom Fields tab should look like this: + > [!IMPORTANT] + > This field is created by the `Needs Server` on the Basic tab, do not create this field manually. - ![CitrixAdc Custom Fields Tab](docsource/images/CitrixAdc-custom-fields-store-type-dialog.png) - #### Entry Parameters Tab + ###### Link To Issuer + Determines whether an attempt will be made to link the added certificate (via a Management-Add job) to its issuing CA certificate. - | Name | Display Name | Description | Type | Default Value | Entry has a private key | Adding an entry | Removing an entry | Reenrolling an entry | - | ---- | ------------ | ---- | ------------- | ----------------------- | ---------------- | ----------------- | ------------------- | ----------- | - | virtualServerName | Virtual Server Name | When adding a certificate, this can be a single VServer name or a comma separated list of VServers to bind to Note: must match the number of Virtual SNI Cert values. | String | | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | - | sniCert | SNI Cert | When adding a certificate, this can be a single boolean value (true/false) or a comma separated list of boolean values to determine whether the binding should use server name indication. Note: must match the number of Virtual Server Name values. | String | | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | + ![CitrixAdc Custom Field - linkToIssuer](docsource/images/CitrixAdc-custom-field-linkToIssuer-dialog.png) + ![CitrixAdc Custom Field - linkToIssuer](docsource/images/CitrixAdc-custom-field-linkToIssuer-validation-options-dialog.png) - The Entry Parameters tab should look like this: - ![CitrixAdc Entry Parameters Tab](docsource/images/CitrixAdc-entry-parameters-store-type-dialog.png) + ###### Login Timeout in seconds + Determines timeout in seconds for all Citrix ADC API calls. + ![CitrixAdc Custom Field - timeout](docsource/images/CitrixAdc-custom-field-timeout-dialog.png) + ![CitrixAdc Custom Field - timeout](docsource/images/CitrixAdc-custom-field-timeout-validation-options-dialog.png) -
+ + + + + ##### Entry Parameters Tab + + | Name | Display Name | Description | Type | Default Value | Entry has a private key | Adding an entry | Removing an entry | Reenrolling an entry | + | ---- | ------------ | ---- | ------------- | ----------------------- | ---------------- | ----------------- | ------------------- | ----------- | + | virtualServerName | Virtual Server Name | When adding a certificate, this can be a single VServer name or a comma separated list of VServers to bind to Note: must match the number of Virtual SNI Cert values. | String | | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | + | sniCert | SNI Cert | When adding a certificate, this can be a single boolean value (true/false) or a comma separated list of boolean values to determine whether the binding should use server name indication. Note: must match the number of Virtual Server Name values. | String | | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | 🔲 Unchecked | + + The Entry Parameters tab should look like this: + + ![CitrixAdc Entry Parameters Tab](docsource/images/CitrixAdc-entry-parameters-store-type-dialog.png) + + + ##### Virtual Server Name + When adding a certificate, this can be a single VServer name or a comma separated list of VServers to bind to Note: must match the number of Virtual SNI Cert values. + + ![CitrixAdc Entry Parameter - virtualServerName](docsource/images/CitrixAdc-entry-parameters-store-type-dialog-virtualServerName.png) + ![CitrixAdc Entry Parameter - virtualServerName](docsource/images/CitrixAdc-entry-parameters-store-type-dialog-virtualServerName-validation-options.png) + + + ##### SNI Cert + When adding a certificate, this can be a single boolean value (true/false) or a comma separated list of boolean values to determine whether the binding should use server name indication. Note: must match the number of Virtual Server Name values. + + ![CitrixAdc Entry Parameter - sniCert](docsource/images/CitrixAdc-entry-parameters-store-type-dialog-sniCert.png) + ![CitrixAdc Entry Parameter - sniCert](docsource/images/CitrixAdc-entry-parameters-store-type-dialog-sniCert-validation-options.png) + + + +
## Installation -1. **Download the latest Citrix Netscaler Universal Orchestrator extension from GitHub.** +1. **Download the latest Citrix Netscaler Universal Orchestrator extension from GitHub.** - Navigate to the [Citrix Netscaler Universal Orchestrator extension GitHub version page](https://github.com/Keyfactor/citrix-adc-orchestrator/releases/latest). Refer to the compatibility matrix below to determine whether the `net6.0` or `net8.0` asset should be downloaded. Then, click the corresponding asset to download the zip archive. - | Universal Orchestrator Version | Latest .NET version installed on the Universal Orchestrator server | `rollForward` condition in `Orchestrator.runtimeconfig.json` | `citrix-adc-orchestrator` .NET version to download | - | --------- | ----------- | ----------- | ----------- | - | Older than `11.0.0` | | | `net6.0` | - | Between `11.0.0` and `11.5.1` (inclusive) | `net6.0` | | `net6.0` | - | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `Disable` | `net6.0` | - | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `LatestMajor` | `net8.0` | - | `11.6` _and_ newer | `net8.0` | | `net8.0` | + Navigate to the [Citrix Netscaler Universal Orchestrator extension GitHub version page](https://github.com/Keyfactor/citrix-adc-orchestrator/releases/latest). Refer to the compatibility matrix below to determine the asset should be downloaded. Then, click the corresponding asset to download the zip archive. + + | Universal Orchestrator Version | Latest .NET version installed on the Universal Orchestrator server | `rollForward` condition in `Orchestrator.runtimeconfig.json` | `citrix-adc-orchestrator` .NET version to download | + | --------- | ----------- | ----------- | ----------- | + | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `LatestMajor` | `net8.0` | + | `11.6` _and_ newer | `net8.0` | | `net8.0` | Unzip the archive containing extension assemblies to a known location. - > **Note** If you don't see an asset with a corresponding .NET version, you should always assume that it was compiled for `net6.0`. + > **Note** If you don't see an asset with a corresponding .NET version, you should always assume that it was compiled for `net8.0`. 2. **Locate the Universal Orchestrator extensions directory.** * **Default on Windows** - `C:\Program Files\Keyfactor\Keyfactor Orchestrator\extensions` * **Default on Linux** - `/opt/keyfactor/orchestrator/extensions` - + 3. **Create a new directory for the Citrix Netscaler Universal Orchestrator extension inside the extensions directory.** - + Create a new directory called `citrix-adc-orchestrator`. > The directory name does not need to match any names used elsewhere; it just has to be unique within the extensions directory. @@ -181,14 +267,14 @@ To use the Citrix Netscaler Universal Orchestrator extension, you **must** creat Refer to [Starting/Restarting the Universal Orchestrator service](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/StarttheService.htm). -6. **(optional) PAM Integration** +6. **(optional) PAM Integration** The Citrix Netscaler Universal Orchestrator extension is compatible with all supported Keyfactor PAM extensions to resolve PAM-eligible secrets. PAM extensions running on Universal Orchestrators enable secure retrieval of secrets from a connected PAM provider. - To configure a PAM provider, [reference the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam) to select an extension, and follow the associated instructions to install it on the Universal Orchestrator (remote). + To configure a PAM provider, [reference the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam) to select an extension and follow the associated instructions to install it on the Universal Orchestrator (remote). -> The above installation steps can be supplimented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/CustomExtensions.htm?Highlight=extensions). +> The above installation steps can be supplemented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/CustomExtensions.htm?Highlight=extensions). ## Post Installation @@ -202,95 +288,90 @@ An optional config.json configuration file has been provided in the extensions f -* **Manually with the Command UI** +### Store Creation -
Create Certificate Stores manually in the UI +#### Manually with the Command UI - 1. **Navigate to the _Certificate Stores_ page in Keyfactor Command.** +
Click to expand details - Log into Keyfactor Command, toggle the _Locations_ dropdown, and click _Certificate Stores_. +1. **Navigate to the _Certificate Stores_ page in Keyfactor Command.** - 2. **Add a Certificate Store.** + Log into Keyfactor Command, toggle the _Locations_ dropdown, and click _Certificate Stores_. - Click the Add button to add a new Certificate Store. Use the table below to populate the **Attributes** in the **Add** form. - | Attribute | Description | - | --------- | ----------- | - | Category | Select "CitrixAdc" or the customized certificate store name from the previous step. | - | Container | Optional container to associate certificate store with. | - | Client Machine | The DNS or IP Address of the Citrix ADC Appliance. | - | Store Path | The path where certificate files are located on the Citrix ADC appliance. This value will likely be /nsconfig/ssl/ | - | Orchestrator | Select an approved orchestrator capable of managing `CitrixAdc` certificates. Specifically, one with the `CitrixAdc` capability. | - | ServerUsername | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | - | ServerPassword | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | - | linkToIssuer | Determines whether an attempt will be made to link the added certificate (via a Management-Add job) to its issuing CA certificate. | +2. **Add a Certificate Store.** + Click the Add button to add a new Certificate Store. Use the table below to populate the **Attributes** in the **Add** form. - + | Attribute | Description | + | --------- |---------------------------------------------------------| + | Category | Select "CitrixAdc" or the customized certificate store name from the previous step. | + | Container | Optional container to associate certificate store with. | + | Client Machine | The DNS or IP Address of the Citrix ADC Appliance. | + | Store Path | The path where certificate files are located on the Citrix ADC appliance. This value will likely be /nsconfig/ssl/ | + | Store Password | Enter a password that matches your Citrix validation rules to encrypt private keys when adding/replacing certificates. Select 'No Value' if you desire an unencrypted private key to be uploaded. | + | Orchestrator | Select an approved orchestrator capable of managing `CitrixAdc` certificates. Specifically, one with the `CitrixAdc` capability. | + | ServerUsername | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | + | ServerPassword | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | + | linkToIssuer | Determines whether an attempt will be made to link the added certificate (via a Management-Add job) to its issuing CA certificate. | + | timeout | Determines timeout in seconds for all Citrix ADC API calls. | -
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator +
- If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. - | Attribute | Description | - | --------- | ----------- | - | ServerUsername | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | - | ServerPassword | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | - Please refer to the **Universal Orchestrator (remote)** usage section ([PAM providers on the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam)) for your selected PAM provider for instructions on how to load attributes orchestrator-side. +#### Using kfutil CLI - > Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. -
- +
Click to expand details -
+1. **Generate a CSV template for the CitrixAdc certificate store** -* **Using kfutil** - -
Create Certificate Stores with kfutil - - 1. **Generate a CSV template for the CitrixAdc certificate store** + ```shell + kfutil stores import generate-template --store-type-name CitrixAdc --outpath CitrixAdc.csv + ``` +2. **Populate the generated CSV file** + + Open the CSV file, and reference the table below to populate parameters for each **Attribute**. - ```shell - kfutil stores import generate-template --store-type-name CitrixAdc --outpath CitrixAdc.csv - ``` - 2. **Populate the generated CSV file** + | Attribute | Description | + | --------- | ----------- | + | Category | Select "CitrixAdc" or the customized certificate store name from the previous step. | + | Container | Optional container to associate certificate store with. | + | Client Machine | The DNS or IP Address of the Citrix ADC Appliance. | + | Store Path | The path where certificate files are located on the Citrix ADC appliance. This value will likely be /nsconfig/ssl/ | + | Store Password | Enter a password that matches your Citrix validation rules to encrypt private keys when adding/replacing certificates. Select 'No Value' if you desire an unencrypted private key to be uploaded. | + | Orchestrator | Select an approved orchestrator capable of managing `CitrixAdc` certificates. Specifically, one with the `CitrixAdc` capability. | + | Properties.ServerUsername | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | + | Properties.ServerPassword | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | + | Properties.linkToIssuer | Determines whether an attempt will be made to link the added certificate (via a Management-Add job) to its issuing CA certificate. | + | Properties.timeout | Determines timeout in seconds for all Citrix ADC API calls. | - Open the CSV file, and reference the table below to populate parameters for each **Attribute**. - | Attribute | Description | - | --------- | ----------- | - | Category | Select "CitrixAdc" or the customized certificate store name from the previous step. | - | Container | Optional container to associate certificate store with. | - | Client Machine | The DNS or IP Address of the Citrix ADC Appliance. | - | Store Path | The path where certificate files are located on the Citrix ADC appliance. This value will likely be /nsconfig/ssl/ | - | Orchestrator | Select an approved orchestrator capable of managing `CitrixAdc` certificates. Specifically, one with the `CitrixAdc` capability. | - | ServerUsername | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | - | ServerPassword | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | - | linkToIssuer | Determines whether an attempt will be made to link the added certificate (via a Management-Add job) to its issuing CA certificate. | +3. **Import the CSV file to create the certificate stores** + + ```shell + kfutil stores import csv --store-type-name CitrixAdc --file CitrixAdc.csv + ``` +
- -
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator +#### PAM Provider Eligible Fields +
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator - If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. - | Attribute | Description | - | --------- | ----------- | - | ServerUsername | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | - | ServerPassword | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | +If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. + | Attribute | Description | + | --------- | ----------- | + | ServerUsername | The Citrix username (or valid PAM key if the username is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | + | ServerPassword | The Citrix password (or valid PAM key if the password is stored in a KF Command configured PAM integration) to be used to log into the Citrix device. | + | StorePassword | Enter a password that matches your Citrix validation rules to encrypt private keys when adding/replacing certificates. Select 'No Value' if you desire an unencrypted private key to be uploaded. | - > Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. -
- +Please refer to the **Universal Orchestrator (remote)** usage section ([PAM providers on the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam)) for your selected PAM provider for instructions on how to load attributes orchestrator-side. +> Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. - 3. **Import the CSV file to create the certificate stores** +
- ```shell - kfutil stores import csv --store-type-name CitrixAdc --file CitrixAdc.csv - ``` -
-> The content in this section can be supplimented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/ReferenceGuide/Certificate%20Stores.htm?Highlight=certificate%20store). +> The content in this section can be supplemented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/ReferenceGuide/Certificate%20Stores.htm?Highlight=certificate%20store). @@ -301,7 +382,7 @@ An optional config.json configuration file has been provided in the extensions f * Direct PFX Binding Inventory: In NetScaler you can directly Bind a Pfx file to a Virtual Server. Keyfactor cannot inventory these because it does not have access to the password. The recommended way to Import PFX Files in NetScaler is descibed in this [NetScaler Documentation](https://docs.netscaler.com/en-us/citrix-adc/12-1/ssl/ssl-certificates/export-existing-certs-keys.html#convert-ssl-certificates-for-import-or-export) -* Removing Certs from Store: As defined in Test Cases 5 and 13 below, certificates that are bound to a server will not be removed. This was done to limit the possibility of bringing production servers down. Users are currently required to manually unbind the certificate from the server first and then remove via the Command and this orchestrator extension. +* Removing Certs from Store: Certificates that are bound to a server will not be removed. This was done to limit the possibility of bringing production servers down. Users are currently required to manually unbind the certificate from the server first and then remove via the Command and this orchestrator extension. ## License diff --git a/docsource/content.md b/docsource/content.md index f8702ae..3680fca 100644 --- a/docsource/content.md +++ b/docsource/content.md @@ -33,4 +33,4 @@ An optional config.json configuration file has been provided in the extensions f * Direct PFX Binding Inventory: In NetScaler you can directly Bind a Pfx file to a Virtual Server. Keyfactor cannot inventory these because it does not have access to the password. The recommended way to Import PFX Files in NetScaler is descibed in this [NetScaler Documentation](https://docs.netscaler.com/en-us/citrix-adc/12-1/ssl/ssl-certificates/export-existing-certs-keys.html#convert-ssl-certificates-for-import-or-export) -* Removing Certs from Store: As defined in Test Cases 5 and 13 below, certificates that are bound to a server will not be removed. This was done to limit the possibility of bringing production servers down. Users are currently required to manually unbind the certificate from the server first and then remove via the Command and this orchestrator extension. +* Removing Certs from Store: Certificates that are bound to a server will not be removed. This was done to limit the possibility of bringing production servers down. Users are currently required to manually unbind the certificate from the server first and then remove via the Command and this orchestrator extension. diff --git a/docsource/images/CitrixAdc-advanced-store-type-dialog.png b/docsource/images/CitrixAdc-advanced-store-type-dialog.png index 2b71e8c..cff8f23 100644 Binary files a/docsource/images/CitrixAdc-advanced-store-type-dialog.png and b/docsource/images/CitrixAdc-advanced-store-type-dialog.png differ diff --git a/docsource/images/CitrixAdc-basic-store-type-dialog.png b/docsource/images/CitrixAdc-basic-store-type-dialog.png index e1bd8a5..0336ce6 100644 Binary files a/docsource/images/CitrixAdc-basic-store-type-dialog.png and b/docsource/images/CitrixAdc-basic-store-type-dialog.png differ diff --git a/docsource/images/CitrixAdc-custom-field-linkToIssuer-dialog.png b/docsource/images/CitrixAdc-custom-field-linkToIssuer-dialog.png new file mode 100644 index 0000000..2ed8dab Binary files /dev/null and b/docsource/images/CitrixAdc-custom-field-linkToIssuer-dialog.png differ diff --git a/docsource/images/CitrixAdc-custom-field-linkToIssuer-validation-options-dialog.png b/docsource/images/CitrixAdc-custom-field-linkToIssuer-validation-options-dialog.png new file mode 100644 index 0000000..3eb0d19 Binary files /dev/null and b/docsource/images/CitrixAdc-custom-field-linkToIssuer-validation-options-dialog.png differ diff --git a/docsource/images/CitrixAdc-custom-field-timeout-dialog.png b/docsource/images/CitrixAdc-custom-field-timeout-dialog.png new file mode 100644 index 0000000..8de482d Binary files /dev/null and b/docsource/images/CitrixAdc-custom-field-timeout-dialog.png differ diff --git a/docsource/images/CitrixAdc-custom-field-timeout-validation-options-dialog.png b/docsource/images/CitrixAdc-custom-field-timeout-validation-options-dialog.png new file mode 100644 index 0000000..19c86e9 Binary files /dev/null and b/docsource/images/CitrixAdc-custom-field-timeout-validation-options-dialog.png differ diff --git a/docsource/images/CitrixAdc-custom-fields-store-type-dialog.png b/docsource/images/CitrixAdc-custom-fields-store-type-dialog.png index 02e2062..85bd372 100644 Binary files a/docsource/images/CitrixAdc-custom-fields-store-type-dialog.png and b/docsource/images/CitrixAdc-custom-fields-store-type-dialog.png differ diff --git a/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-sniCert-validation-options.png b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-sniCert-validation-options.png new file mode 100644 index 0000000..e87b28c Binary files /dev/null and b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-sniCert-validation-options.png differ diff --git a/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-sniCert.png b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-sniCert.png new file mode 100644 index 0000000..28a94e0 Binary files /dev/null and b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-sniCert.png differ diff --git a/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-virtualServerName-validation-options.png b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-virtualServerName-validation-options.png new file mode 100644 index 0000000..ae4ae11 Binary files /dev/null and b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-virtualServerName-validation-options.png differ diff --git a/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-virtualServerName.png b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-virtualServerName.png new file mode 100644 index 0000000..c052560 Binary files /dev/null and b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog-virtualServerName.png differ diff --git a/docsource/images/CitrixAdc-entry-parameters-store-type-dialog.png b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog.png index e8e9f64..a52020d 100644 Binary files a/docsource/images/CitrixAdc-entry-parameters-store-type-dialog.png and b/docsource/images/CitrixAdc-entry-parameters-store-type-dialog.png differ diff --git a/integration-manifest.json b/integration-manifest.json index f5ba77a..28e9c1b 100644 --- a/integration-manifest.json +++ b/integration-manifest.json @@ -31,11 +31,15 @@ "Enrollment": false, "Remove": true }, - "PasswordOptions": { - "EntrySupported": false, - "StoreRequired": false, - "Style": "Default" - }, + "PasswordOptions": { + "Style": "Default", + "EntrySupported": false, + "StoreRequired": true, + "StorePassword": { + "Description": "Enter a password that matches your Citrix validation rules to encrypt private keys when adding/replacing certificates. Select 'No Value' if you desire an unencrypted private key to be uploaded.", + "IsPAMEligible": true + } + }, "Properties": [ { "Name": "ServerUsername", @@ -65,6 +69,15 @@ "DefaultValue": "false", "Required": false, "Description": "Determines whether an attempt will be made to link the added certificate (via a Management-Add job) to its issuing CA certificate." + }, + { + "Name": "timeout", + "DisplayName": "Login Timeout in seconds", + "Type": "String", + "DependsOn": "", + "DefaultValue": "3600", + "Required": false, + "Description": "Determines timeout in seconds for all Citrix ADC API calls." } ], "EntryParameters": [