X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/Keychain/EditItemViewController.m diff --git a/Keychain/EditItemViewController.m b/Keychain/EditItemViewController.m new file mode 100644 index 00000000..6b743d17 --- /dev/null +++ b/Keychain/EditItemViewController.m @@ -0,0 +1,94 @@ +// +// EditItemViewController.m +// Security +// +// Created by john on 10/24/12. +// +// + +#import "EditItemViewController.h" +#import "MyKeychain.h" +//#import +//#import +#import +#import +#include "utilities.h" + +static const CFStringRef kAddItemKeyY = CFSTR("AddItem"); + + +@interface EditItemViewController () + +@end + +@implementation EditItemViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view. + NSLog(@"_itemDetailModel: %@", _itemDetailModel); + + dgroup = dispatch_group_create(); + xpc_queue = dispatch_queue_create("EditItemViewController", DISPATCH_QUEUE_CONCURRENT); + _itemName.text = [_itemDetailModel objectForKey:(__bridge id)(kSecAttrService)]; + _itemAccount.text = [_itemDetailModel objectForKey:(__bridge id)(kSecAttrAccount)]; +// _itemPassword.text = @"TODO";//[_itemDetailModel objectForKey:(__bridge id)(kSecValueData)]; + NSData *pwdData = [_itemDetailModel objectForKey:(__bridge id)(kSecValueData)]; + if (pwdData) + { + NSString *pwd = [[NSString alloc] initWithData:pwdData encoding:NSUTF8StringEncoding]; + _itemPassword.text = pwd; + } + else + _itemPassword.text = @""; + +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (void)postToCloud:(NSDictionary *)kcitem +{ + CFErrorRef error = NULL; + testPutObjectInCloud(kAddItemKeyY, (__bridge CFTypeRef)(kcitem), &error, dgroup, xpc_queue); + NSLog(@"NOT IMPLEMENTED: Sent new item to cloud: %@", kcitem); +} + +- (IBAction)handlePasswordEditDone:(id)sender +{ + NSLog(@"handlePasswordEditDone"); + + NSMutableDictionary *newItem = [NSMutableDictionary dictionaryWithCapacity:0]; + [newItem setObject:[_itemPassword text] forKey:kItemPasswordKey]; + [newItem setObject:[_itemAccount text] forKey:kItemAccountKey]; + [newItem setObject:[_itemName text] forKey:kItemNameKey]; + + [[MyKeychain sharedInstance] setItem:newItem]; + [self postToCloud:newItem]; +} + + +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender +{ + NSLog(@"prepareForSegue EditDone"); + if ([[segue identifier] isEqualToString:@"EditDone"]) + { + NSLog(@"seque EditDone"); + [self handlePasswordEditDone:NULL]; + } +} + +@end