5 // Created by Christopher Lloyd on 2/12/10.
6 // Copyright 2010 __MyCompanyName__. All rights reserved.
9 #import "SecKeychainSearch.h"
10 #import "SecKeychain.h"
12 @implementation SecKeychainSearch
15 -initWithKeychainOrArray:(CFTypeRef)keychainOrArray itemClass:(SecItemClass)itemClass attributeList:(const SecKeychainAttributeList *)attributeList {
16 if(keychainOrArray==NULL)
17 keychainOrArray=[SecKeychain defaultUserKeychain];
19 if(![(id)keychainOrArray isKindOfClass:[NSArray class]])
20 keychainOrArray=[NSArray arrayWithObject:(id)keychainOrArray];
22 _array=(CFArrayRef)CFRetain(keychainOrArray);
24 _attributeList=SecCopyAttributeList(attributeList);
33 SecFreeAttributeList(_attributeList);
34 [_keychainCursor release];
38 -(SecKeychainItemRef)copyNextItem {
39 ("%s %d",__FUNCTION__,__LINE__);
41 while(_arrayCursor<CFArrayGetCount(_array)){
42 SecKeychainRef keychain=(id)CFArrayGetValueAtIndex(_array,_arrayCursor);
43 ("%s %d",__FUNCTION__,__LINE__);
45 if(_keychainCursor==nil)
46 _keychainCursor=[keychain createCursorForItemClass:_itemClass];
47 ("%s %d",__FUNCTION__,__LINE__);
49 SecKeychainItemRef check=nil;
51 if(_keychainCursor!=nil)
52 check=[keychain createNextItemAtCursor:_keychainCursor attributeList:_attributeList];
58 [_keychainCursor release];
61 ("%s %d",__FUNCTION__,__LINE__);