private static void SaveExportFile(string fileName, ConnectionsSaver.Format saveFormat, SaveFilter saveFilter, ConnectionInfo exportTarget) { try { ISerializer<string> serializer; switch (saveFormat) { case ConnectionsSaver.Format.mRXML: var factory = new CryptographyProviderFactory(); var cryptographyProvider = factory.CreateAeadCryptographyProvider(mRemoteNG.Settings.Default.EncryptionEngine, mRemoteNG.Settings.Default.EncryptionBlockCipherMode); cryptographyProvider.KeyDerivationIterations = Settings.Default.EncryptionKeyDerivationIterations; serializer = new XmlConnectionsSerializer(cryptographyProvider); ((XmlConnectionsSerializer) serializer).SaveFilter = saveFilter; break; case ConnectionsSaver.Format.mRCSV: serializer = new CsvConnectionsSerializerMremotengFormat(); ((CsvConnectionsSerializerMremotengFormat)serializer).SaveFilter = saveFilter; break; default: throw new ArgumentOutOfRangeException(nameof(saveFormat), saveFormat, null); } var serializedData = serializer.Serialize(exportTarget); var fileDataProvider = new FileDataProvider(fileName); fileDataProvider.Save(serializedData); } catch (Exception ex) { Runtime.MessageCollector.AddExceptionStackTrace($"Export.SaveExportFile(\"{fileName}\") failed.", ex); } finally { Runtime.RemoteConnectionsSyncronizer?.Enable(); } }
public void InheritanceNotSerialiedWhenFiltered(string attributeName, ConnectionInfo connectionInfo) { var saveFilter = new SaveFilter(true); var cryptoProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(BlockCipherEngines.AES, BlockCipherModes.GCM); _connectionNodeSerializer = new XmlConnectionNodeSerializer(cryptoProvider, "myPassword1".ConvertToSecureString(), saveFilter); var returnVal = _connectionNodeSerializer.SerializeConnectionInfo(connectionInfo); var targetAttribute = returnVal.Attribute(XName.Get(attributeName)); Assert.That(targetAttribute?.Value, Is.EqualTo(false.ToString())); }
public static void ExportToFile(ConnectionInfo selectedNode, ConnectionTreeModel connectionTreeModel) { try { var saveSecurity = new SaveFilter(); using (var exportForm = new ExportForm()) { if (selectedNode?.GetTreeNodeType() == TreeNodeType.Container) exportForm.SelectedFolder = selectedNode as ContainerInfo; else if (selectedNode?.GetTreeNodeType() == TreeNodeType.Connection) { if (selectedNode.Parent.GetTreeNodeType() == TreeNodeType.Container) exportForm.SelectedFolder = selectedNode.Parent; exportForm.SelectedConnection = selectedNode; } if (exportForm.ShowDialog(frmMain.Default) != DialogResult.OK) return ; ConnectionInfo exportTarget; switch (exportForm.Scope) { case ExportForm.ExportScope.SelectedFolder: exportTarget = exportForm.SelectedFolder; break; case ExportForm.ExportScope.SelectedConnection: exportTarget = exportForm.SelectedConnection; break; default: exportTarget = connectionTreeModel.RootNodes.First(node => node is RootNodeInfo); break; } saveSecurity.SaveUsername = exportForm.IncludeUsername; saveSecurity.SavePassword = exportForm.IncludePassword; saveSecurity.SaveDomain = exportForm.IncludeDomain; saveSecurity.SaveInheritance = exportForm.IncludeInheritance; SaveExportFile(exportForm.FileName, exportForm.SaveFormat, saveSecurity, exportTarget); } } catch (Exception ex) { Runtime.MessageCollector.AddExceptionMessage("App.Export.ExportToFile() failed.", ex, logOnly: true); } }
public void Teardown() { _saveFilter = null; _dataTableSerializer = null; }
public void Setup() { _saveFilter = new SaveFilter(); _dataTableSerializer = new DataTableSerializer(_saveFilter); }
public XmlConnectionNodeSerializer(ICryptographyProvider cryptographyProvider, SecureString encryptionKey, SaveFilter saveFilter) { _cryptographyProvider = cryptographyProvider; _encryptionKey = encryptionKey; _saveFilter = saveFilter; }