Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

file 62 lines (53 sloc) 1.252 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
#import "PasswordStorage.h"
#import <Security/Security.h>

static NSString *kServer = @"BirthdaySync";
static NSString *kUser = @"BirthdaySync";

NSString* getBirthdaySyncPassword() {
void *passwordBuf = NULL;
UInt32 passwordLength;

OSStatus status = SecKeychainFindGenericPassword(
NULL,
[kServer length],
[kServer UTF8String],
[kUser length],
[kUser UTF8String],
&passwordLength,
&passwordBuf,
NULL);

if (status != noErr) {
return NULL;
}

NSData *data = [NSData dataWithBytes:passwordBuf length:passwordLength];
SecKeychainItemFreeContent(NULL, passwordBuf);

return [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
}

void saveBirthdaySyncPassword(NSString *password) {
SecKeychainItemRef item = 0;

SecKeychainFindGenericPassword(
NULL,
[kServer length],
[kServer UTF8String],
[kUser length],
[kUser UTF8String],
NULL,
NULL,
&item);

if (item) {
SecKeychainItemModifyAttributesAndData(
item,
NULL,
[password length],
[password UTF8String]);
}
else {
SecKeychainAddGenericPassword (
NULL,
[kServer length],
[kServer UTF8String],
[kUser length],
[kUser UTF8String],
[password length],
[password UTF8String],
NULL);
}
}
Something went wrong with that request. Please try again.