Skip to content

Commit be5c66b

Browse files
authored
Merge pull request mRemoteNG#438 from mRemoteNG/1_75_hotfixes
1.75 hotfix 1
2 parents b1ec975 + 5347e5a commit be5c66b

File tree

10 files changed

+69
-21
lines changed

10 files changed

+69
-21
lines changed

CHANGELOG.TXT

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
1.75 hotfix 1 (2017-03-06):
2+
3+
General Changes:
4+
----------------
5+
#437: Modify version numbering scheme
6+
7+
Fixes:
8+
------
9+
#422: Uncaught exception when clicking in connection tree whitespace
10+
#312: Resolved KeePass auto-type issue
11+
#427: Export does not respect filtering user/password/domain
12+
13+
114
1.75 (2017-03-01):
215

316
Known Issue:

mRemoteNGTests/Config/Serializers/XmlConnectionNodeSerializerTests.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ namespace mRemoteNGTests.Config.Serializers
1212
public class XmlConnectionNodeSerializerTests
1313
{
1414
private XmlConnectionNodeSerializer _connectionNodeSerializer;
15+
private ICryptographyProvider _cryptographyProvider;
1516

1617
[SetUp]
1718
public void Setup()
1819
{
19-
var cryptoProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(
20+
_cryptographyProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(
2021
BlockCipherEngines.AES, BlockCipherModes.GCM);
21-
_connectionNodeSerializer = new XmlConnectionNodeSerializer(cryptoProvider, "myPassword1".ConvertToSecureString());
22+
_connectionNodeSerializer = new XmlConnectionNodeSerializer(_cryptographyProvider, "myPassword1".ConvertToSecureString(), new SaveFilter());
2223
}
2324

2425
[Test]
@@ -48,8 +49,7 @@ public void PasswordFieldsAreSerialized(string attributeName, ConnectionInfo con
4849
public void AttributesNotSerializedWhenFiltered(string attributeName, ConnectionInfo connectionInfo)
4950
{
5051
var saveFilter = new SaveFilter(true);
51-
var cryptoProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(BlockCipherEngines.AES, BlockCipherModes.GCM);
52-
_connectionNodeSerializer = new XmlConnectionNodeSerializer(cryptoProvider, "myPassword1".ConvertToSecureString(), saveFilter);
52+
_connectionNodeSerializer = new XmlConnectionNodeSerializer(_cryptographyProvider, "myPassword1".ConvertToSecureString(), saveFilter);
5353
var returnVal = _connectionNodeSerializer.SerializeConnectionInfo(connectionInfo);
5454
var targetAttribute = returnVal.Attribute(XName.Get(attributeName));
5555
Assert.That(targetAttribute?.Value, Is.EqualTo(string.Empty));
@@ -59,8 +59,7 @@ public void AttributesNotSerializedWhenFiltered(string attributeName, Connection
5959
public void InheritanceNotSerialiedWhenFiltered(string attributeName, ConnectionInfo connectionInfo)
6060
{
6161
var saveFilter = new SaveFilter(true);
62-
var cryptoProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(BlockCipherEngines.AES, BlockCipherModes.GCM);
63-
_connectionNodeSerializer = new XmlConnectionNodeSerializer(cryptoProvider, "myPassword1".ConvertToSecureString(), saveFilter);
62+
_connectionNodeSerializer = new XmlConnectionNodeSerializer(_cryptographyProvider, "myPassword1".ConvertToSecureString(), saveFilter);
6463
var returnVal = _connectionNodeSerializer.SerializeConnectionInfo(connectionInfo);
6564
var targetAttribute = returnVal.Attribute(XName.Get(attributeName));
6665
Assert.That(targetAttribute?.Value, Is.EqualTo(false.ToString()));

mRemoteNGTests/Config/Serializers/XmlConnectionsDocumentCompilerTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ public class XmlConnectionsDocumentCompilerTests
2828
public void Setup()
2929
{
3030
_cryptographyProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(BlockCipherEngines.AES, BlockCipherModes.GCM);
31-
_documentCompiler = new XmlConnectionsDocumentCompiler(_cryptographyProvider);
31+
var saveFilter = new SaveFilter();
32+
_documentCompiler = new XmlConnectionsDocumentCompiler(_cryptographyProvider, saveFilter);
3233
_connectionTreeModel = SetupConnectionTreeModel();
3334
}
3435

mRemoteNGTests/Config/Serializers/XmlConnectionsDocumentEncryptorTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ public void Setup()
2020
{
2121
var connectionTreeModel = SetupConnectionTreeModel();
2222
var cryptoProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(BlockCipherEngines.AES, BlockCipherModes.GCM);
23-
_originalDocument = new XmlConnectionsDocumentCompiler(cryptoProvider).CompileDocument(connectionTreeModel, false, false);
23+
var saveFilter = new SaveFilter();
24+
_originalDocument = new XmlConnectionsDocumentCompiler(cryptoProvider, saveFilter).CompileDocument(connectionTreeModel, false, false);
2425
_documentEncryptor = new XmlConnectionsDocumentEncryptor(cryptoProvider);
2526
}
2627

mRemoteNGTests/Config/Serializers/XmlConnectionsSerializerTests.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
using System.Xml;
2+
using System.Xml.Linq;
23
using mRemoteNG.Config.Serializers;
34
using mRemoteNG.Connection;
45
using mRemoteNG.Container;
6+
using mRemoteNG.Security;
57
using mRemoteNG.Security.SymmetricEncryption;
68
using mRemoteNG.Tree;
79
using mRemoteNG.Tree.Root;
@@ -45,6 +47,27 @@ public void SingleConnectionSerializedCorrectly()
4547
Assert.That(connectionNode, Is.Not.Null);
4648
}
4749

50+
[TestCase("Username", "")]
51+
[TestCase("Domain", "")]
52+
[TestCase("Password", "")]
53+
[TestCase("InheritAutomaticResize", "False")]
54+
public void SerializerRespectsSaveFilterSettings(string attributeName, string expectedValue)
55+
{
56+
_serializer.SaveFilter = new SaveFilter(true);
57+
var connectionInfo = new ConnectionInfo
58+
{
59+
Name = "myConnection",
60+
Username = "somefilteredstuff",
61+
Domain = "somefilteredstuff",
62+
Password = "somefilteredstuff",
63+
Inheritance = {AutomaticResize = true}
64+
};
65+
var serializedConnections = _serializer.Serialize(connectionInfo);
66+
var xdoc = XDocument.Parse(serializedConnections);
67+
var attributeValue = xdoc.Root?.Element("Node")?.Attribute(attributeName)?.Value;
68+
Assert.That(attributeValue, Is.EqualTo(expectedValue));
69+
}
70+
4871
private ConnectionTreeModel SetupConnectionTreeModel()
4972
{
5073
/*

mRemoteV1/Config/Serializers/XmlConnectionNodeSerializer.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Security;
1+
using System;
2+
using System.Security;
23
using System.Xml.Linq;
34
using mRemoteNG.Connection;
45
using mRemoteNG.Container;
@@ -13,14 +14,15 @@ public class XmlConnectionNodeSerializer
1314
private readonly SecureString _encryptionKey;
1415
private readonly SaveFilter _saveFilter = new SaveFilter();
1516

16-
public XmlConnectionNodeSerializer(ICryptographyProvider cryptographyProvider, SecureString encryptionKey)
17-
{
18-
_cryptographyProvider = cryptographyProvider;
19-
_encryptionKey = encryptionKey;
20-
}
21-
2217
public XmlConnectionNodeSerializer(ICryptographyProvider cryptographyProvider, SecureString encryptionKey, SaveFilter saveFilter)
2318
{
19+
if (cryptographyProvider == null)
20+
throw new ArgumentNullException(nameof(cryptographyProvider));
21+
if (encryptionKey == null)
22+
throw new ArgumentNullException(nameof(encryptionKey));
23+
if (saveFilter == null)
24+
throw new ArgumentNullException(nameof(saveFilter));
25+
2426
_cryptographyProvider = cryptographyProvider;
2527
_encryptionKey = encryptionKey;
2628
_saveFilter = saveFilter;

mRemoteV1/Config/Serializers/XmlConnectionsDocumentCompiler.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Linq;
1+
using System;
2+
using System.Linq;
23
using System.Security;
34
using System.Xml.Linq;
45
using mRemoteNG.Connection;
@@ -14,10 +15,17 @@ public class XmlConnectionsDocumentCompiler
1415
{
1516
private readonly ICryptographyProvider _cryptographyProvider;
1617
private SecureString _encryptionKey;
18+
private readonly SaveFilter _saveFilter;
1719

18-
public XmlConnectionsDocumentCompiler(ICryptographyProvider cryptographyProvider)
20+
public XmlConnectionsDocumentCompiler(ICryptographyProvider cryptographyProvider, SaveFilter saveFilter)
1921
{
22+
if (cryptographyProvider == null)
23+
throw new ArgumentNullException(nameof(cryptographyProvider));
24+
if (saveFilter == null)
25+
throw new ArgumentNullException(nameof(saveFilter));
26+
2027
_cryptographyProvider = cryptographyProvider;
28+
_saveFilter = saveFilter;
2129
}
2230

2331
public XDocument CompileDocument(ConnectionTreeModel connectionTreeModel, bool fullFileEncryption, bool export)
@@ -77,7 +85,7 @@ private XElement CompileRootNode(RootNodeInfo rootNodeInfo, bool fullFileEncrypt
7785

7886
private XElement CompileConnectionInfoNode(ConnectionInfo connectionInfo)
7987
{
80-
var connectionSerializer = new XmlConnectionNodeSerializer(_cryptographyProvider, _encryptionKey);
88+
var connectionSerializer = new XmlConnectionNodeSerializer(_cryptographyProvider, _encryptionKey, _saveFilter);
8189
return connectionSerializer.SerializeConnectionInfo(connectionInfo);
8290
}
8391
}

mRemoteV1/Config/Serializers/XmlConnectionsSerializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ private string SerializeConnectionsData(ConnectionInfo serializationTarget)
4141
var xml = "";
4242
try
4343
{
44-
var documentCompiler = new XmlConnectionsDocumentCompiler(_cryptographyProvider);
44+
var documentCompiler = new XmlConnectionsDocumentCompiler(_cryptographyProvider, SaveFilter);
4545
var xmlDocument = documentCompiler.CompileDocument(serializationTarget, UseFullEncryption, Export);
4646
xml = WriteXmlToString(xmlDocument);
4747
}

mRemoteV1/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
// by using the '*' as shown below:
3434
// <Assembly: AssemblyVersion("1.0.*")>
3535

36-
[assembly: AssemblyVersion("1.75.*")]
36+
[assembly: AssemblyVersion("1.75.7000.*")]
3737

3838
[assembly:NeutralResourcesLanguageAttribute("en")]
3939

mRemoteV1/UI/Controls/ConnectionTree/ConnectionTree.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public ConnectionTree()
4848
{
4949
InitializeComponent();
5050
SetupConnectionTreeView();
51+
UseOverlays = false;
5152
}
5253

5354
#region ConnectionTree Setup
@@ -264,7 +265,7 @@ private void OnMouse_SingleClick(object sender, MouseEventArgs mouseEventArgs)
264265
if (mouseEventArgs.Clicks > 1) return;
265266
OLVColumn column;
266267
var listItem = GetItemAt(mouseEventArgs.X, mouseEventArgs.Y, out column);
267-
var clickedNode = listItem.RowObject as ConnectionInfo;
268+
var clickedNode = listItem?.RowObject as ConnectionInfo;
268269
if (clickedNode == null) return;
269270
SingleClickHandler.Execute(clickedNode);
270271
}

0 commit comments

Comments
 (0)