Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FreeRDP/FreeRDP.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Fleisz <mfleisz@thinstuff.at>2013-05-08 19:33:29 +0400
committerMartin Fleisz <mfleisz@thinstuff.at>2013-05-08 19:33:29 +0400
commit349dff84f386877e919ebdfc6b536cd48b3c194e (patch)
tree53198f7f6335839fc2cdae124234b6a7e8c4d326
parentaf67c3be3051eadb1adc47984f8a649255482092 (diff)
parentc55f3d6426cf16f9d9e31253e019675f2702a598 (diff)
Merge pull request #1241 from mfleisz/iostsgpw1.1.0-beta1+ios3
iOS: Encrypt TS Gateway passwords
-rw-r--r--client/iOS/Models/ConnectionParams.m37
1 files changed, 23 insertions, 14 deletions
diff --git a/client/iOS/Models/ConnectionParams.m b/client/iOS/Models/ConnectionParams.m
index 030216af7..3d1a8605a 100644
--- a/client/iOS/Models/ConnectionParams.m
+++ b/client/iOS/Models/ConnectionParams.m
@@ -28,16 +28,21 @@
_connection_params = [dict mutableDeepCopy];
- if ([[_connection_params objectForKey:@"password"] isKindOfClass:[NSData class]])
- {
- NSString* plaintext_password = [[[EncryptionController sharedEncryptionController] decryptor] decryptString:[_connection_params objectForKey:@"password"]];
-
- [self setValue:plaintext_password forKey:@"password"];
- }
+ [self decryptPasswordForKey:@"password"];
+ [self decryptPasswordForKey:@"tsg_password"];
return self;
}
+- (void)decryptPasswordForKey:(NSString*)key
+{
+ if ([[_connection_params objectForKey:key] isKindOfClass:[NSData class]])
+ {
+ NSString* plaintext_password = [[[EncryptionController sharedEncryptionController] decryptor] decryptString:[_connection_params objectForKey:key]];
+ [self setValue:plaintext_password forKey:key];
+ }
+}
+
- (id)initWithBaseDefaultParameters
{
return [self initWithDictionary:[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"TSXDefaultComputerBookmarkSettings"]];
@@ -89,19 +94,23 @@
[serializable_params setObject:[_connection_params objectForKey:k] forKey:k];
if ([serializable_params objectForKey:@"password"] != nil)
- {
- NSData* encrypted_password = [[[EncryptionController sharedEncryptionController] encryptor] encryptString:[serializable_params objectForKey:@"password"]];
-
- if (encrypted_password)
- [serializable_params setObject:encrypted_password forKey:@"password"];
- else
- [serializable_params removeObjectForKey:@"password"];
- }
+ [self serializeDecryptedForKey:@"password" forParams:serializable_params];
+ if ([serializable_params objectForKey:@"tsg_password"] != nil)
+ [self serializeDecryptedForKey:@"tsg_password" forParams:serializable_params];
[coder encodeObject:serializable_params forKey:@"connectionParams"];
[serializable_params release];
}
+- (void)serializeDecryptedForKey:(NSString*)key forParams:(NSMutableDictionary*)params
+{
+ NSData* encrypted_password = [[[EncryptionController sharedEncryptionController] encryptor] encryptString:[params objectForKey:key]];
+
+ if (encrypted_password)
+ [params setObject:encrypted_password forKey:key];
+ else
+ [params removeObjectForKey:key];
+}
#pragma mark -
#pragma mark NSKeyValueCoding