public static void Run(AddClientCertArgs args, Func <ILogger> getLogger) { args.Validate(); var settings = RunnerHelper.GetSettings(args.Configfile); var clientCertificateProvider = new ClientCertificateProvider(settings); var item = clientCertificateProvider.GetClientCertificate(args.PackageSource); if (item != null) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.Error_ClientCertificateAlreadyExist, args.PackageSource)); } if (args.IsFileCertSettingsProvided()) { item = new FileClientCertItem(args.PackageSource, args.Path, args.Password, args.StorePasswordInClearText, args.Configfile); } else if (args.IsStoreCertSettingsProvided()) { item = new StoreClientCertItem(args.PackageSource, args.FindValue, args.GetStoreLocation(), args.GetStoreName(), args.GetFindBy()); } else { throw new CommandLineArgumentCombinationException(string.Format(CultureInfo.CurrentCulture, Strings.Error_UnknownClientCertificateStoreType)); } try { var certificates = item.Search(); if (!certificates.Any()) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.Error_ClientCertificatesNotFound)); } } catch { if (!args.Force) { throw; } } clientCertificateProvider.AddOrUpdate(item); getLogger().LogInformation(string.Format(CultureInfo.CurrentCulture, Strings.ClientCertificateSuccessfullyAdded, args.PackageSource)); }
public void SetupInitialItems(params ClientCertItem[] initialItems) { var settings = LoadSettingsFromConfigFile(); var clientCertificateProvider = new ClientCertificateProvider(settings); foreach (ClientCertItem item in initialItems) { clientCertificateProvider.AddOrUpdate(item); } settings.SaveToDisk(); }
public void CertificateFromFile_Success_ParsedAndAddedToAssociatedPackageSource() { using (var testInfo = new TestInfo()) { // Arrange testInfo.SetupCertificateFile(); // Act var settings = testInfo.LoadSettingsFromConfigFile(); var clientCertificateProvider = new ClientCertificateProvider(settings); clientCertificateProvider.AddOrUpdate(new FileClientCertItem(testInfo.PackageSourceName, testInfo.CertificateAbsoluteFilePath, testInfo.CertificatePassword, false, testInfo.ConfigFile)); // Assert var packageSourceProvider = new PackageSourceProvider(settings); var packageSourceList = packageSourceProvider.LoadPackageSources().ToList(); Assert.Equal(1, packageSourceList.Count); Assert.Equal(1, packageSourceList[0].ClientCertificates.Count); Assert.Equal(testInfo.Certificate, packageSourceList[0].ClientCertificates[0]); } }
public void CertificateFromStore_Success_ParsedAndAddedToAssociatedPackageSource() { using (var testInfo = new TestInfo()) { // Arrange testInfo.SetupCertificateInStorage(); // Act var settings = testInfo.LoadSettingsFromConfigFile(); var clientCertificateProvider = new ClientCertificateProvider(settings); clientCertificateProvider.AddOrUpdate(new StoreClientCertItem(testInfo.PackageSourceName, testInfo.CertificateFindValue.ToString(), testInfo.CertificateStoreLocation, testInfo.CertificateStoreName, testInfo.CertificateFindBy)); // Assert var packageSourceProvider = new PackageSourceProvider(settings); var packageSourceList = packageSourceProvider.LoadPackageSources().ToList(); Assert.Equal(1, packageSourceList.Count); Assert.Equal(1, packageSourceList[0].ClientCertificates.Count); Assert.Equal(testInfo.Certificate, packageSourceList[0].ClientCertificates[0]); } }
public static void Run(UpdateClientCertArgs args, Func <ILogger> getLogger) { args.Validate(); var settings = RunnerHelper.GetSettings(args.Configfile); var clientCertificateProvider = new ClientCertificateProvider(settings); var item = clientCertificateProvider.GetClientCertificate(args.PackageSource); if (item == null) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.Error_ClientCertificateNotExist, args.PackageSource)); } switch (item) { case FileClientCertItem fileCertItem: if (args.IsStoreCertSettingsProvided()) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.Error_ClientCertificateTypeMismatch, args.PackageSource)); } fileCertItem.Update(args.Path, args.Password, args.StorePasswordInClearText); break; case StoreClientCertItem storeCertItem: if (args.IsFileCertSettingsProvided()) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.Error_ClientCertificateTypeMismatch, args.PackageSource)); } storeCertItem.Update(args.FindValue, args.GetStoreLocation(), args.GetStoreName(), args.GetFindBy()); break; } try { var certificates = item.Search(); if (!certificates.Any()) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Strings.Error_ClientCertificatesNotFound)); } } catch { if (!args.Force) { throw; } } clientCertificateProvider.AddOrUpdate(item); getLogger().LogInformation(string.Format(CultureInfo.CurrentCulture, Strings.ClientCertificateSuccessfullyUpdated, args.PackageSource)); }