This repository has been archived on 2025-08-18. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Bungloo/Mac/AccessToken.m
2013-02-13 00:25:02 +01:00

130 lines
2.8 KiB
Objective-C

//
// AccessToken.m
// bungloo
//
// Created by Jeena Paradies on 19/09/2011.
// Copyright 2011 __MyCompanyName__. All rights reserved.
//
#import "AccessToken.h"
#include <Security/Security.h>
@implementation AccessToken
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
d = [NSUserDefaults standardUserDefaults];
//[d removeObjectForKey:@"user_access_token"];
}
return self;
}
- (void)setString:(NSString *)string forKey:(NSString *)aKey
{
[d setObject:string forKey:aKey];
[d synchronize];
}
- (NSString *)stringForKey:(NSString *)aKey
{
return [d objectForKey:aKey];
}
- (void)setAccessToken:(NSString *)_accessToken
{
[d synchronize];
}
- (NSString *)accessToken
{
return [d objectForKey:@"accessToken"];
}
- (void)setSecret:(NSString *)_secret
{
UInt32 _passwordLength = 0;
char *_password = nil;
SecKeychainItemRef item = nil;
SecKeychainFindGenericPassword(NULL, 6, "Bungloo", 17, "BunglooUserAccount", &_passwordLength, (void **)&_password, &item);
OSStatus status;
void * passwordData = (void*)[_secret cStringUsingEncoding:NSUTF8StringEncoding];
UInt32 passwordLength = strlen((char*)passwordData);
if (!item)
{
status = SecKeychainAddGenericPassword(
NULL, // default keychain
6, // length of service name
"Bungloo", // service name
17, // length of account name
"BunglooUserAccount", // account name
passwordLength, // length of password
passwordData, // pointer to password data
NULL // the item reference
);
}
else
{
status = SecKeychainItemModifyContent(
item,
NULL,
passwordLength,
passwordData
);
}
NSLog(@"%@",(NSString *)SecCopyErrorMessageString (status,NULL));
}
- (NSString *)secret
{
UInt32 passwordLength = 0;
char *password = nil;
SecKeychainItemRef item = nil;
SecKeychainFindGenericPassword(NULL, 6, "Bungloo", 17, "BunglooUserAccount", &passwordLength, (void **)&password, &item);
if (!item) {
return nil;
}
//Get password
NSString *passwordString = [[[NSString alloc] initWithData:[NSData dataWithBytes:password length:passwordLength] encoding:NSUTF8StringEncoding] autorelease];
SecKeychainItemFreeContent(NULL, password);
return passwordString;
}
- (void)setUserId:(NSString *)_userId
{
[d setObject:_userId forKey:@"userId"];
[d synchronize];
}
- (NSString *)userId
{
return [d objectForKey:@"userId"];
}
- (void)setScreenName:(NSString *)_screenName
{
[d setObject:_screenName forKey:@"screenName"];
[d synchronize];
}
- (NSString *)screenName
{
return [d objectForKey:@"screenName"];
}
+ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector {
return NO;
}
+ (BOOL)isKeyExcludedFromWebScript:(const char *)name {
return NO;
}
@end