Merge branch 'master' of github.com:jeena/Tentia into image

This commit is contained in:
Jeena Paradies 2012-11-24 00:30:44 +01:00
commit 00e1f54636
8 changed files with 68 additions and 10 deletions

View file

@ -7,6 +7,7 @@
// //
#import "AccessToken.h" #import "AccessToken.h"
#include <Security/Security.h>
@implementation AccessToken @implementation AccessToken
@ -45,13 +46,32 @@
- (void)setSecret:(NSString *)_secret - (void)setSecret:(NSString *)_secret
{ {
[d setObject:_secret forKey:@"secret"]; OSStatus status;
[d synchronize]; void * passwordData = (void*)[_secret cStringUsingEncoding:NSUTF8StringEncoding];
UInt32 passwordLength = strlen((char*)passwordData);
status = SecKeychainAddGenericPassword (
NULL, // default keychain
6, // length of service name
"Tentia", // service name
17, // length of account name
"TentiaUserAccount", // account name
passwordLength, // length of password
passwordData, // pointer to password data
NULL // the item reference
);
//NSLog(@"%@",(NSString *)SecCopyErrorMessageString (status,NULL));
} }
- (NSString *)secret - (NSString *)secret
{ {
return [d objectForKey:@"secret"]; UInt32 passwordLength = 0;
char *password = nil;
SecKeychainItemRef item = nil;
SecKeychainFindGenericPassword(NULL, 6, "Tentia", 17, "TentiaUserAccount", &passwordLength, (void **)&password, &item);
//Get password
NSString *passwordString = [[[NSString alloc] initWithData:[NSData dataWithBytes:password length:passwordLength] encoding:NSUTF8StringEncoding] autorelease];
SecKeychainItemFreeContent(NULL, password);
return passwordString;
} }
- (void)setUserId:(NSString *)_userId - (void)setUserId:(NSString *)_userId

View file

@ -65,6 +65,8 @@
- (void)openURL:(NSString *)url; - (void)openURL:(NSString *)url;
- (void)setString:(NSString *)string forKey:(NSString *)aKey; - (void)setString:(NSString *)string forKey:(NSString *)aKey;
- (void)setSecret:(NSString *)string;
- (NSString *)secret;
- (NSString *)stringForKey:(NSString *)aKey; - (NSString *)stringForKey:(NSString *)aKey;
- (void)storeAccessToken:(NSString *)accessToken secret:(NSString *)secret userId:(NSString *)userId andScreenName:(NSString *)screenName; - (void)storeAccessToken:(NSString *)accessToken secret:(NSString *)secret userId:(NSString *)userId andScreenName:(NSString *)screenName;
- (void)loggedIn; - (void)loggedIn;

View file

@ -64,7 +64,13 @@
[self logout:self]; [self logout:self];
[accessToken setString:@"yes" forKey:@"version-0.2.0-new-login"]; [accessToken setString:@"yes" forKey:@"version-0.2.0-new-login"];
} }
if (![accessToken stringForKey:@"version-0.3.0-migrated"]) {
[accessToken setString:@"yes" forKey:@"version-0.3.0-migrated"];
if ([accessToken stringForKey:@"user_mac_key"]){
[accessToken setSecret:[accessToken stringForKey:@"user_mac_key"]];
[accessToken setString:nil forKey:@"user_mac_key"];
}
}
if (![accessToken stringForKey:@"user_access_token"]) { if (![accessToken stringForKey:@"user_access_token"]) {
[timelineViewWindow performClose:self]; [timelineViewWindow performClose:self];
[mentionsViewWindow performClose:self]; [mentionsViewWindow performClose:self];
@ -72,7 +78,7 @@
} else { } else {
[timelineViewWindow makeKeyAndOrderFront:self]; [timelineViewWindow makeKeyAndOrderFront:self];
[self initWebViews]; [self initWebViews];
} }
} }
# pragma mark Init # pragma mark Init
@ -232,6 +238,15 @@
[self.accessToken setString:string forKey:aKey]; [self.accessToken setString:string forKey:aKey];
} }
- (void)setSecret:(NSString *)string
{
[self.accessToken setSecret:string];
}
- (NSString *)secret
{
return [self.accessToken secret];
}
- (NSString *)stringForKey:(NSString *)aKey - (NSString *)stringForKey:(NSString *)aKey
{ {
return [self.accessToken stringForKey:aKey]; return [self.accessToken stringForKey:aKey];
@ -364,7 +379,6 @@
self.accessToken.secret = secret; self.accessToken.secret = secret;
self.accessToken.userId = userId; self.accessToken.userId = userId;
self.accessToken.screenName = screenName; self.accessToken.screenName = screenName;
[timelineViewWindow makeKeyAndOrderFront:self]; [timelineViewWindow makeKeyAndOrderFront:self];
[[NSNotificationCenter defaultCenter] postNotificationName:@"authentificationSucceded" object:nil]; [[NSNotificationCenter defaultCenter] postNotificationName:@"authentificationSucceded" object:nil];

View file

@ -42,7 +42,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.3.0</string> <string>0.3.1</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleURLTypes</key> <key>CFBundleURLTypes</key>
@ -57,7 +57,7 @@
</dict> </dict>
</array> </array>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.3.0</string> <string>0.3.1</string>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
<string>public.app-category.lifestyle</string> <string>public.app-category.lifestyle</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>

View file

@ -29,6 +29,7 @@
1FFA36D71177D879006C8562 /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FFA36D31177D879006C8562 /* Controller.m */; }; 1FFA36D71177D879006C8562 /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FFA36D31177D879006C8562 /* Controller.m */; };
1FFA36D81177D879006C8562 /* ViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FFA36D51177D879006C8562 /* ViewDelegate.m */; }; 1FFA36D81177D879006C8562 /* ViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FFA36D51177D879006C8562 /* ViewDelegate.m */; };
1FFA37071177DAF4006C8562 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FFA37061177DAF4006C8562 /* WebKit.framework */; }; 1FFA37071177DAF4006C8562 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FFA37061177DAF4006C8562 /* WebKit.framework */; };
6B68359B166015C4004F4732 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B68359A166015C4004F4732 /* Security.framework */; };
8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; }; 8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; };
8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; }; 8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; };
8D15AC310486D014006FF6A4 /* NewMessageWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* NewMessageWindow.m */; settings = {ATTRIBUTES = (); }; }; 8D15AC310486D014006FF6A4 /* NewMessageWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* NewMessageWindow.m */; settings = {ATTRIBUTES = (); }; };
@ -88,6 +89,7 @@
2A37F4BAFDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; }; 2A37F4BAFDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
6B68359A166015C4004F4732 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
8D15AC360486D014006FF6A4 /* Tentia-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Tentia-Info.plist"; sourceTree = "<group>"; }; 8D15AC360486D014006FF6A4 /* Tentia-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Tentia-Info.plist"; sourceTree = "<group>"; };
8D15AC370486D014006FF6A4 /* Tentia.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tentia.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8D15AC370486D014006FF6A4 /* Tentia.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Tentia.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@ -97,6 +99,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
6B68359B166015C4004F4732 /* Security.framework in Frameworks */,
1F2D79BD165E8C6B000E8428 /* CoreLocation.framework in Frameworks */, 1F2D79BD165E8C6B000E8428 /* CoreLocation.framework in Frameworks */,
1FDEF722164EFE9100F927F3 /* Growl.framework in Frameworks */, 1FDEF722164EFE9100F927F3 /* Growl.framework in Frameworks */,
1FA09847144602530079E258 /* libicucore.dylib in Frameworks */, 1FA09847144602530079E258 /* libicucore.dylib in Frameworks */,
@ -114,6 +117,7 @@
1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */ = { 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
6B68359A166015C4004F4732 /* Security.framework */,
1F2D79BC165E8C6B000E8428 /* CoreLocation.framework */, 1F2D79BC165E8C6B000E8428 /* CoreLocation.framework */,
1FDEF721164EFE9100F927F3 /* Growl.framework */, 1FDEF721164EFE9100F927F3 /* Growl.framework */,
1FE2FC92117A818D000504B0 /* Sparkle.framework */, 1FE2FC92117A818D000504B0 /* Sparkle.framework */,

View file

@ -146,7 +146,7 @@ function(HostApp, Paths, Hmac) {
var access = JSON.parse(responseBody); var access = JSON.parse(responseBody);
HostApp.setStringForKey(access["access_token"], "user_access_token"); HostApp.setStringForKey(access["access_token"], "user_access_token");
HostApp.setStringForKey(access["mac_key"], "user_mac_key"); HostApp.setSecret(access["mac_key"]);
HostApp.setStringForKey(access["mac_algorithm"], "user_mac_algorithm"); HostApp.setStringForKey(access["mac_algorithm"], "user_mac_algorithm");
HostApp.setStringForKey(access["token_type"], "user_token_type"); HostApp.setStringForKey(access["token_type"], "user_token_type");

View file

@ -10,6 +10,23 @@ define(function() {
controller.setStringForKey(string, key); controller.setStringForKey(string, key);
} }
} }
HostApp.setSecret = function(string) {
if (OS_TYPE == "mac") {
controller.setSecret_(string);
} else {
controller.setStringForKey(string, "user_mac_key");
}
}
HostApp.secret = function() {
if (OS_TYPE == "mac") {
return controller.secret();
} else {
return controller.stringForKey("user_mac_key");
}
}
HostApp.stringForKey = function(key) { HostApp.stringForKey = function(key) {

View file

@ -40,7 +40,8 @@ function(jQuery, HostApp, Hmac) {
auth_header = Hmac.makeAuthHeader( auth_header = Hmac.makeAuthHeader(
url, url,
http_method, http_method,
HostApp.stringForKey("user_mac_key"), //HostApp.stringForKey("user_mac_key"),
HostApp.secret(),
user_access_token user_access_token
); );
xhr.setRequestHeader("Authorization", auth_header); xhr.setRequestHeader("Authorization", auth_header);