SecIdentitySearch.cpp [plain text]
#include <Security/SecIdentitySearch.h>
#include "SecBridge.h"
CFTypeID
SecIdentitySearchGetTypeID(void)
{
BEGIN_SECAPI
return gTypes().identityCursor.typeId;
END_SECAPI1(_kCFRuntimeNotATypeID)
}
OSStatus
SecIdentitySearchCreate(
CFTypeRef keychainOrArray,
CSSM_KEYUSE keyUsage,
SecIdentitySearchRef *searchRef)
{
BEGIN_SECAPI
Required(searchRef);
StorageManager::KeychainList keychains;
globals().storageManager.optionalSearchList(keychainOrArray, keychains);
RefPointer<IdentityCursor> identityCursor(new IdentityCursor (keychains, keyUsage));
*searchRef = gTypes().identityCursor.handle(*identityCursor);
END_SECAPI
}
OSStatus
SecIdentitySearchCopyNext(
SecIdentitySearchRef searchRef,
SecIdentityRef *identityRef)
{
BEGIN_SECAPI
RequiredParam(identityRef);
RefPointer<Identity> identityPtr;
if (!gTypes().identityCursor.required(searchRef)->next(identityPtr))
return errSecItemNotFound;
*identityRef = gTypes().identity.handle(*identityPtr);
END_SECAPI
}