diff options
author | Martin Fleisz <mfleisz@thinstuff.at> | 2013-05-08 19:33:29 +0400 |
---|---|---|
committer | Martin Fleisz <mfleisz@thinstuff.at> | 2013-05-08 19:33:29 +0400 |
commit | 349dff84f386877e919ebdfc6b536cd48b3c194e (patch) | |
tree | 53198f7f6335839fc2cdae124234b6a7e8c4d326 | |
parent | af67c3be3051eadb1adc47984f8a649255482092 (diff) | |
parent | c55f3d6426cf16f9d9e31253e019675f2702a598 (diff) |
Merge pull request #1241 from mfleisz/iostsgpw1.1.0-beta1+ios3
iOS: Encrypt TS Gateway passwords
-rw-r--r-- | client/iOS/Models/ConnectionParams.m | 37 |
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 |