Skip to content

Commit afb5fab

Browse files
committed
SHA 256/512 + prefs cleaning + localize
1 parent dcb104e commit afb5fab

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+4869
-6359
lines changed

Sources/WCConnect.m

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,13 @@ - (id)_initConnectWithURL:(WIURL *)url bookmark:(NSDictionary *)bookmark {
5050
_url = [url retain];
5151

5252
// check that bookmark password was loaded from keychain
53-
if (_url.password == nil) {
53+
if (_url.password == nil)
5454
[_url setPassword:[[WCKeychain keychain] passwordForBookmark:bookmark]];
55-
}
5655

5756
_connection = [[WCServerConnection connection] retain];
5857
[_connection setURL:url];
5958
[_connection setBookmark:bookmark];
60-
59+
6160
theme = [[WCSettings settings] themeWithIdentifier:[bookmark objectForKey:WCBookmarksTheme]];
6261

6362
if(!theme)

Sources/WCLinkConnection.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,9 @@ - (WIError *)linkDisconnectedError:(WIP7Link *)link {
351351

352352

353353
- (NSUInteger)linkCipher:(WIP7Link *)link {
354+
if(_bookmark && [_bookmark objectForKey:WCBookmarksEncryptionCipher])
355+
return [[_bookmark objectForKey:WCBookmarksEncryptionCipher] integerValue];
356+
354357
if([[WCSettings settings] objectForKey:WCNetworkEncryptionCipher])
355358
return [[[WCSettings settings] objectForKey:WCNetworkEncryptionCipher] integerValue];
356359

Sources/WCPreferences.m

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -118,34 +118,31 @@ - (void)_bookmarkDidChange:(NSDictionary *)bookmark {
118118
#pragma mark -
119119

120120
- (void)_updateTheme:(NSMutableDictionary *)theme {
121-
[theme setObject:WIStringFromColor([_themesChatTextColorWell color]) forKey:WCThemesChatTextColor];
122-
[theme setObject:WIStringFromColor([_themesChatBackgroundColorWell color]) forKey:WCThemesChatBackgroundColor];
123-
[theme setObject:WIStringFromColor([_themesChatEventsColorWell color]) forKey:WCThemesChatEventsColor];
124-
[theme setObject:WIStringFromColor([_themesChatTimestampEveryLineColorWell color]) forKey:WCThemesChatTimestampEveryLineColor];
125-
[theme setObject:WIStringFromColor([_themesChatURLsColorWell color]) forKey:WCThemesChatURLsColor];
126-
127-
[theme setObject:WIStringFromColor([_themesMessagesTextColorWell color]) forKey:WCThemesMessagesTextColor];
128-
[theme setObject:WIStringFromColor([_themesMessagesBackgroundColorWell color]) forKey:WCThemesMessagesBackgroundColor];
129-
[theme setObject:WIStringFromColor([_themesBoardsTextColorWell color]) forKey:WCThemesBoardsTextColor];
130-
[theme setObject:WIStringFromColor([_themesBoardsBackgroundColorWell color]) forKey:WCThemesBoardsBackgroundColor];
131-
132-
[theme setBool:[_themesShowSmileysButton state] forKey:WCThemesShowSmileys];
133-
134-
[theme setBool:[_themesChatTimestampEveryLineButton state] forKey:WCThemesChatTimestampEveryLine];
135-
136-
[theme setInteger:[_themesUserListIconSizeMatrix selectedTag] forKey:WCThemesUserListIconSize];
137-
[theme setBool:[_themesUserListAlternateRowsButton state] forKey:WCThemesUserListAlternateRows];
138-
139-
[theme setInteger:[_themesFileListIconSizeMatrix selectedTag] forKey:WCThemesFileListIconSize];
140-
[theme setBool:[_themesFileListAlternateRowsButton state] forKey:WCThemesFileListAlternateRows];
141-
142-
[theme setBool:[_themesTransferListShowProgressBarButton state] forKey:WCThemesTransferListShowProgressBar];
143-
[theme setBool:[_themesTransferListAlternateRowsButton state] forKey:WCThemesTransferListAlternateRows];
144-
145-
[theme setBool:[_themesTrackerListAlternateRowsButton state] forKey:WCThemesTrackerListAlternateRows];
146-
147-
[theme setInteger:[_themesMonitorIconSizeMatrix selectedTag] forKey:WCThemesMonitorIconSize];
148-
[theme setBool:[_themesMonitorAlternateRowsButton state] forKey:WCThemesMonitorAlternateRows];
121+
// [theme setObject:WIStringFromColor([_themesChatTextColorWell color]) forKey:WCThemesChatTextColor];
122+
// [theme setObject:WIStringFromColor([_themesChatBackgroundColorWell color]) forKey:WCThemesChatBackgroundColor];
123+
// [theme setObject:WIStringFromColor([_themesMessagesTextColorWell color]) forKey:WCThemesMessagesTextColor];
124+
// [theme setObject:WIStringFromColor([_themesMessagesBackgroundColorWell color]) forKey:WCThemesMessagesBackgroundColor];
125+
// [theme setObject:WIStringFromColor([_themesBoardsTextColorWell color]) forKey:WCThemesBoardsTextColor];
126+
// [theme setObject:WIStringFromColor([_themesBoardsBackgroundColorWell color]) forKey:WCThemesBoardsBackgroundColor];
127+
128+
[theme setObject:WIStringFromColor([_themesChatEventsColorWell color]) forKey:WCThemesChatEventsColor];
129+
[theme setObject:WIStringFromColor([_themesChatTimestampEveryLineColorWell color]) forKey:WCThemesChatTimestampEveryLineColor];
130+
[theme setObject:WIStringFromColor([_themesChatURLsColorWell color]) forKey:WCThemesChatURLsColor];
131+
[theme setBool:[_themesShowSmileysButton state] forKey:WCThemesShowSmileys];
132+
[theme setBool:[_themesChatTimestampEveryLineButton state] forKey:WCThemesChatTimestampEveryLine];
133+
[theme setInteger:[_themesUserListIconSizeMatrix selectedTag] forKey:WCThemesUserListIconSize];
134+
[theme setBool:[_themesUserListAlternateRowsButton state] forKey:WCThemesUserListAlternateRows];
135+
136+
[theme setInteger:[_themesFileListIconSizeMatrix selectedTag] forKey:WCThemesFileListIconSize];
137+
[theme setBool:[_themesFileListAlternateRowsButton state] forKey:WCThemesFileListAlternateRows];
138+
139+
[theme setBool:[_themesTransferListShowProgressBarButton state] forKey:WCThemesTransferListShowProgressBar];
140+
[theme setBool:[_themesTransferListAlternateRowsButton state] forKey:WCThemesTransferListAlternateRows];
141+
142+
[theme setBool:[_themesTrackerListAlternateRowsButton state] forKey:WCThemesTrackerListAlternateRows];
143+
144+
[theme setInteger:[_themesMonitorIconSizeMatrix selectedTag] forKey:WCThemesMonitorIconSize];
145+
[theme setBool:[_themesMonitorAlternateRowsButton state] forKey:WCThemesMonitorAlternateRows];
149146
}
150147

151148
- (NSInteger)_selectedThemeRow {

Sources/WCServerBookmarkController.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
#import "WCBookmarkController.h"
1010

1111
@interface WCServerBookmarkController : WCBookmarkController {
12-
IBOutlet NSPopUpButton *_bookmarksThemePopUpButton;
1312
IBOutlet NSButton *_bookmarksAutoConnectButton;
1413
IBOutlet NSButton *_bookmarksAutoReconnectButton;
1514
IBOutlet NSTextField *_bookmarksNickTextField;
1615
IBOutlet NSTextField *_bookmarksStatusTextField;
16+
IBOutlet NSPopUpButton *_bookmarksCipherPopUpButton;
1717
}
1818

1919
@end

Sources/WCServerBookmarkController.m

Lines changed: 32 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@interface WCServerBookmarkController (Private)
1616

1717
- (void)_savePasswordForBookmark:(NSArray *)arguments;
18-
- (void)_reloadThemes;
18+
- (void)_reloadCiphers;
1919

2020
@end
2121

@@ -41,24 +41,22 @@ - (void)_savePasswordForBookmark:(NSArray *)arguments {
4141

4242
#pragma mark -
4343

44-
- (void)_reloadThemes {
45-
// NSEnumerator *enumerator;
46-
// NSDictionary *theme;
47-
// NSMenuItem *item;
48-
// NSInteger index;
49-
//
50-
// while((index = [_bookmarksThemePopUpButton indexOfItemWithTag:0]) != -1)
51-
// [_bookmarksThemePopUpButton removeItemAtIndex:index];
52-
//
53-
// enumerator = [[[WCSettings settings] objectForKey:WCThemes] objectEnumerator];
54-
//
55-
// while((theme = [enumerator nextObject])) {
56-
// item = [NSMenuItem itemWithTitle:[theme objectForKey:WCThemesName]];
57-
// [item setRepresentedObject:[theme objectForKey:WCThemesIdentifier]];
58-
// [item setImage:[[WCPreferences preferences] imageForTheme:theme size:NSMakeSize(16.0, 12.0)]];
59-
//
60-
// [[_bookmarksThemePopUpButton menu] addItem:item];
61-
// }
44+
- (void)_reloadCiphers {
45+
NSMenuItem *item;
46+
NSDictionary *schemes;
47+
NSArray *schemeKeys;
48+
49+
[[_bookmarksCipherPopUpButton menu] removeAllItems];
50+
51+
schemes = [WCP7Spec encryptionSchemes];
52+
schemeKeys = [[schemes allKeys] sortedArrayUsingSelector:@selector(compare:)];
53+
54+
for(NSNumber *key in schemeKeys) {
55+
NSString *name = [WCP7Spec nameForEncryptionSchemeID:[key stringValue]];
56+
item = [NSMenuItem itemWithTitle:name tag:[key intValue]];
57+
58+
[[_bookmarksCipherPopUpButton menu] addItem:item];
59+
}
6260
}
6361

6462

@@ -69,10 +67,9 @@ @implementation WCServerBookmarkController
6967
#pragma mark -
7068

7169
- (void)load {
72-
NSDictionary *theme;
73-
NSInteger index;
70+
NSNumber *encryptionCipher;
7471

75-
[self _reloadThemes];
72+
[self _reloadCiphers];
7673

7774
if(_bookmark) {
7875
[_bookmarksNameTextField setStringValue:[_bookmark objectForKey:WCBookmarksName]];
@@ -87,12 +84,12 @@ - (void)load {
8784
else
8885
[_bookmarksPasswordTextField setStringValue:@""];
8986

90-
// theme = [_bookmark objectForKey:WCBookmarksTheme];
91-
//
92-
// if(theme && (index = [_bookmarksThemePopUpButton indexOfItemWithRepresentedObject:theme]) != -1)
93-
// [_bookmarksThemePopUpButton selectItemAtIndex:index];
94-
// else
95-
// [_bookmarksThemePopUpButton selectItemAtIndex:0];
87+
encryptionCipher = [_bookmark objectForKey:WCBookmarksEncryptionCipher];
88+
89+
if (encryptionCipher)
90+
[_bookmarksCipherPopUpButton selectItemWithTag:[encryptionCipher intValue]];
91+
else
92+
[_bookmarksCipherPopUpButton selectItemWithTag:[[WCSettings settings] intForKey:WCNetworkEncryptionCipher]];
9693

9794
[_bookmarksAutoConnectButton setState:[_bookmark boolForKey:WCBookmarksAutoConnect]];
9895
[_bookmarksAutoReconnectButton setState:[_bookmark boolForKey:WCBookmarksAutoReconnect]];
@@ -123,11 +120,6 @@ - (void)save {
123120
[_bookmark setObject:[_bookmarksAddressTextField stringValue] forKey:WCBookmarksAddress];
124121
[_bookmark setObject:[_bookmarksLoginTextField stringValue] forKey:WCBookmarksLogin];
125122

126-
// if([_bookmarksThemePopUpButton representedObjectOfSelectedItem])
127-
// [_bookmark setObject:[_bookmarksThemePopUpButton representedObjectOfSelectedItem] forKey:WCBookmarksTheme];
128-
// else
129-
// [_bookmark removeObjectForKey:WCBookmarksTheme];
130-
131123
[_bookmark setBool:[_bookmarksAutoConnectButton state] forKey:WCBookmarksAutoConnect];
132124
[_bookmark setBool:[_bookmarksAutoReconnectButton state] forKey:WCBookmarksAutoReconnect];
133125
[_bookmark setObject:[_bookmarksNickTextField stringValue] forKey:WCBookmarksNick];
@@ -149,6 +141,10 @@ - (void)save {
149141
passwordChanged = YES;
150142
}
151143

144+
if(([_bookmarksCipherPopUpButton selectedTag] != [[WCSettings settings] intForKey:WCNetworkEncryptionCipher]) ||
145+
([_bookmark integerForKey:WCBookmarksEncryptionCipher] != [_bookmarksCipherPopUpButton selectedTag]))
146+
[_bookmark setObject:[NSNumber numberWithInt:[_bookmarksCipherPopUpButton selectedTag]] forKey:WCBookmarksEncryptionCipher];
147+
152148
if(![_oldBookmark isEqualToDictionary:_bookmark] || passwordChanged) {
153149
[[WCSettings settings] replaceObjectAtIndex:row withObject:_bookmark inArrayForKey:WCBookmarks];
154150

@@ -167,16 +163,14 @@ - (void)save {
167163
[_bookmark setObject:[_bookmarksAddressTextField stringValue] forKey:WCBookmarksAddress];
168164
[_bookmark setObject:[_bookmarksLoginTextField stringValue] forKey:WCBookmarksLogin];
169165

170-
// if([_bookmarksThemePopUpButton representedObjectOfSelectedItem])
171-
// [_bookmark setObject:[_bookmarksThemePopUpButton representedObjectOfSelectedItem] forKey:WCBookmarksTheme];
172-
// else
173-
// [_bookmark removeObjectForKey:WCBookmarksTheme];
174-
175166
[_bookmark setBool:[_bookmarksAutoConnectButton state] forKey:WCBookmarksAutoConnect];
176167
[_bookmark setBool:[_bookmarksAutoReconnectButton state] forKey:WCBookmarksAutoReconnect];
177168
[_bookmark setObject:[_bookmarksNickTextField stringValue] forKey:WCBookmarksNick];
178169
[_bookmark setObject:[_bookmarksStatusTextField stringValue] forKey:WCBookmarksStatus];
179170

171+
if([[WCSettings settings] intForKey:WCNetworkEncryptionCipher] != [_bookmarksCipherPopUpButton selectedTag])
172+
[_bookmark setObject:[NSNumber numberWithInt:[_bookmarksCipherPopUpButton selectedTag]] forKey:WCBookmarksEncryptionCipher];
173+
180174
[[WCKeychain keychain] setPassword:password forBookmark:_bookmark];
181175

182176
[_bookmarksPassword release];

Sources/WCServerInfo.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
IBOutlet NSTextField *_protocolTextField;
4949
IBOutlet NSTextField *_cipherTitleTextField;
5050
IBOutlet NSTextField *_cipherTextField;
51+
IBOutlet NSTextField *_checksumTitleTextField;
52+
IBOutlet NSTextField *_checksumTextField;
5153
IBOutlet NSTextField *_serializationTitleTextField;
5254
IBOutlet NSTextField *_serializationTextField;
5355
IBOutlet NSTextField *_compressionTitleTextField;

Sources/WCServerInfo.m

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,28 @@ - (void)_updateServerInfo {
9696
} else {
9797
[_cipherTextField setStringValue:NSLS(@"None", @"Encryption disabled")];
9898
}
99+
100+
wi_p7_options_t options = wi_p7_socket_options([socket P7Socket]);
101+
102+
if (options & WI_P7_ENCRYPTION_RSA_AES128_SHA1 ||
103+
options & WI_P7_ENCRYPTION_RSA_AES192_SHA1 ||
104+
options & WI_P7_ENCRYPTION_RSA_AES256_SHA1 ||
105+
options & WI_P7_ENCRYPTION_RSA_BF128_SHA1 ||
106+
options & WI_P7_ENCRYPTION_RSA_3DES192_SHA1) {
107+
[_checksumTextField setStringValue:@"SHA1"];
108+
} else if (options & WI_P7_ENCRYPTION_RSA_AES128_SHA256 ||
109+
options & WI_P7_ENCRYPTION_RSA_AES192_SHA256 ||
110+
options & WI_P7_ENCRYPTION_RSA_AES256_SHA256 ||
111+
options & WI_P7_ENCRYPTION_RSA_BF128_SHA256 ||
112+
options & WI_P7_ENCRYPTION_RSA_3DES192_SHA256) {
113+
[_checksumTextField setStringValue:@"SHA256"];
114+
} else if (options & WI_P7_ENCRYPTION_RSA_AES128_SHA512 ||
115+
options & WI_P7_ENCRYPTION_RSA_AES192_SHA512 ||
116+
options & WI_P7_ENCRYPTION_RSA_AES256_SHA512 ||
117+
options & WI_P7_ENCRYPTION_RSA_BF128_SHA512 ||
118+
options & WI_P7_ENCRYPTION_RSA_3DES192_SHA512) {
119+
[_checksumTextField setStringValue:@"SHA512"];
120+
}
99121

100122
if([socket usesCompression]) {
101123
[_compressionTextField setStringValue:[NSSWF:NSLS(@"Yes, compression ratio %.2f", @"Compression enabled (ratio)"),
@@ -108,6 +130,7 @@ - (void)_updateServerInfo {
108130

109131
[self resizeTitleTextField:_compressionTitleTextField withTextField:_compressionTextField];
110132
[self resizeTitleTextField:_serializationTitleTextField withTextField:_serializationTextField];
133+
[self resizeTitleTextField:_checksumTitleTextField withTextField:_checksumTextField];
111134
[self resizeTitleTextField:_cipherTitleTextField withTextField:_cipherTextField];
112135
[self resizeTitleTextField:_protocolTitleTextField withTextField:_protocolTextField];
113136
[self resizeTitleTextField:_versionTitleTextField withTextField:_versionTextField];

Sources/WCSettings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ extern NSString * const WCBookmarksStatus;
114114
extern NSString * const WCBookmarksAutoConnect;
115115
extern NSString * const WCBookmarksAutoReconnect;
116116
extern NSString * const WCBookmarksTheme;
117+
extern NSString * const WCBookmarksEncryptionCipher;
117118

118119
extern NSString * const WCChatHistoryScrollback;
119120
extern NSString * const WCChatHistoryScrollbackModifier;

Sources/WCSettings.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
NSString * const WCBookmarksAutoConnect = @"AutoJoin";
133133
NSString * const WCBookmarksAutoReconnect = @"AutoReconnect";
134134
NSString * const WCBookmarksTheme = @"Theme";
135+
NSString * const WCBookmarksEncryptionCipher = @"EncryptionCipher";
135136

136137
NSString * const WCChatHistoryScrollback = @"WCHistoryScrollback";
137138
NSString * const WCChatHistoryScrollbackModifier = @"WCHistoryScrollbackModifier";

WiredClient.xcodeproj/project.pbxproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2344,7 +2344,7 @@
23442344
CODE_SIGN_IDENTITY = "Developer ID Application";
23452345
CODE_SIGN_STYLE = Manual;
23462346
COMBINE_HIDPI_IMAGES = YES;
2347-
CURRENT_PROJECT_VERSION = 49;
2347+
CURRENT_PROJECT_VERSION = 50;
23482348
DEVELOPMENT_TEAM = 7KTXA5Y36K;
23492349
ENABLE_HARDENED_RUNTIME = YES;
23502350
FRAMEWORK_SEARCH_PATHS = (
@@ -2598,7 +2598,7 @@
25982598
CODE_SIGN_IDENTITY = "Developer ID Application";
25992599
CODE_SIGN_STYLE = Manual;
26002600
COMBINE_HIDPI_IMAGES = YES;
2601-
CURRENT_PROJECT_VERSION = 49;
2601+
CURRENT_PROJECT_VERSION = 50;
26022602
DEVELOPMENT_TEAM = 7KTXA5Y36K;
26032603
ENABLE_HARDENED_RUNTIME = YES;
26042604
FRAMEWORK_SEARCH_PATHS = (
@@ -2700,7 +2700,7 @@
27002700
ALWAYS_SEARCH_USER_PATHS = NO;
27012701
CODE_SIGN_ENTITLEMENTS = "Wired Client.entitlements";
27022702
CODE_SIGN_IDENTITY = "-";
2703-
CURRENT_PROJECT_VERSION = 49;
2703+
CURRENT_PROJECT_VERSION = 50;
27042704
ENABLE_HARDENED_RUNTIME = YES;
27052705
FRAMEWORK_SEARCH_PATHS = (
27062706
"$(inherited)",

0 commit comments

Comments
 (0)